Summary
Bu regex üretici, host, yol, sürüm, e-posta alan adı veya HTTP durum kodlarından oluşan bir listeyi; rollout hedefleme kuralları, Prometheus eşleştiricileri ve log filtreleri için kaçışlı bir desene dönüştürür. Arama eşleşmesi (JavaScript, Go, grep) ve tam eşleşme (Prometheus, Alertmanager, Envoy) anlambilimi arasından seçim yapar, ardından satırları tarayıcıda test edersiniz. Hiçbir veri makinenizden çıkmaz.
Rollout hedefleme ve log filtreleri için regex oluşturucu
Eşleştirmek istediğiniz host, yol, sürüm veya durum kodlarını yapıştırın. Regex motorunuz için kaçışlanmış bir desen alın, ardından üretime göndermeden önce gerçek satırlarla test edin.

Üretici değerlerinizle ne yapar
Her sabit değeri kaçışlar
Değerlerinizdeki noktalar, eğik çizgiler, parantezler ve artı işaretleri kaçışlanır; böylece api.internal.example.com, api-internal-example-com ile eşleşemez. Elle yazılan izin listeleri en çok burada başarısız olur.
Kullandığınız motor için yazar
Arama motorları eşleşmeyi sabitlemek için ^ ve $ ister. Prometheus, Alertmanager ve Envoy tüm dizeyi eşleştirir ve önek ile sonek kuralları için .* ister. Motoru siz seçersiniz, üretici deseni buna göre uyarlar.
Yayına almadan önce test eder
Her test satırı, kopyalayacağınız deseni kullanarak Eşleşme veya Eşleşmez rozeti alır. Yakın örnekleri bilerek ekleyin: checkout-v2 yanına checkout-v22, example.com yanına example.com.evil.io.
İncelemeden geçen ama yine de birini uyandıran regex
Rollout ve alarm yapılandırmasındaki regex olaylarının çoğu egzotik değildir. Üç iç host için yazılmış bir hedefleme kuralı, benzer bir host adını da kapsadı. Prometheus'un ihtiyaç duymadığı çapalarla yazılmış bir alarm eşleştiricisi sessizce bir servisi düşürdü. Bir log filtresi alt dizeye göre eşleşti ve saymayı amaçladığı hataları gizledi. Desen nadiren fazla akıllıca olur. Neredeyse her zaman fazla gevşektir ya da yalnızca eşleşmesi gereken satırlarda test edilmiştir. Kademeli yayılımı kontrol eden bir kural, önce eşleşmemesi gereken satırlarda test edilmelidir.
- Her host adındaki noktaları kaçışlayın
- Motorunuzun çapaları kendisinin koyup koymadığını bilin
- Yalnızca eşleşenleri değil, yakın eşleşmeleri de test edin
- Küme küçük ve sabitse regex yerine sabit bir liste tercih edin
Değer listesinden güvendiğiniz bir desene
-
1
Eşleşme türünü seçin
Host ve bayrak anahtarı izin listeleri için tam değerler, yol grupları için önek, alarm kuralları için durum kodları, uygulama sürümüne göre hedefleme için sürüm aileleri.
-
2
Motoru seçin
Kod ve grep için arama eşleşmesi kullanın. Prometheus eşleştiricileri, Alertmanager yönlendirmeleri ve Envoy için tam eşleşme kullanın. Bu tek seçim en yaygın çapa hatasını ortadan kaldırır.
-
3
Test kutusuna yakın eşleşmeleri yapıştırın
Benzer bir host, yan sürüm ve aralığın hemen dışındaki bir durum kodu ekleyin. Bunlardan herhangi biri eşleşme gösterirse, deseni kopyalamadan önce değerleri sıkılaştırın.
Sık sorulan sorular
Bu regex üretici ücretsiz mi, değerlerimi bir yere gönderiyor mu?
Çıktı hangi regex motorunu hedefler?
Prometheus neden ^ ve $ çapalarımı yok sayıyor?
Desen aşırı geri izlemeden (catastrophic backtracking) kaçınır mı?
Özel karakterler nasıl ele alınır?
Bunu bir bayrak hedefleme kuralında kullanabilir miyim?
Neleri yapmaz?
Yayılımı tahmine değil SLO eşiğine bağlayın
Hedefleme kuralları bir değişikliğin kimlere ulaşacağına karar verir. upstreamapi'nin AI Pilot'u ise sürecin devam edip etmeyeceğine karar verir ve hata oranı SLO eşiğini aştığında kendiliğinden geri alır.