Sinyallerin ve metriklerin dağılımı
(Bölüm: Ekosistem ve Ağ)
1) Amaç ve alan
Sinyal ve metrik dağıtımı, telemetriyi (olaylar, metrikler, günlükler, izler, sağlık durumları) ilgili tüm katılımcılara toplamak, normalleştirmek ve sunmak için tutarlı bir yoldur: operatörler, içerik sağlayıcılar, ödeme/CCM hizmetleri, köprüler, ağ düğümleri, bağlı kuruluşlar ve SRE/BI/Uyumluluk ekipleri. Hedefler:- Birleşik telemetri dili ve veri sözleşmeleri.
- Yönetilen QoS kanalları: kritik sinyallerin önceliği.
- Şeffaf SLI/SLO ve öngörülebilir uyarı.
- Gizlilik, izolasyon ve bütçe tasarrufu metrikleri.
2) Sinyal taksonomisi
1. İş etkinlikleri: onboarding, para yatırma/ödeme, oyun etkinlikleri, atıf.
2. Teknik metrikler: gecikme/verim/hata kodu, kuyruk, CPU/RAM/IO kullanımı.
3. Günlükler: işlemler ve hatalar hakkında yapılandırılmış girişler.
4. İzler: sorgu/konu aralıkları, hop-to-hop korelasyonu.
5. Sağlık durumları: sentetik problar, hazırlık/canlılık, kalp atışı düğümleri.
6. Risk/uyumluluk sinyalleri: KYC/KYB/AML isabetleri, yaptırım olayları.
Her sınıfın kendi kritiklik seviyesi ve depolama/teslim politikası vardır.
3) Dağıtım mimarisi (referans)
Kenar toplayıcılar (SDK/agent) - Giriş (HTTP/OTLP/gRPC/QUIC) - Veri Yolu (Kafka/Pulsar) - İşlemciler (stream-jobs) - Depolama (TSDB for metrics, object/column - for logs/events, tracer) - Vitrinler/gösterge tabloları/uyarılar.
Çoklu kiracılık: anahtarlarda ad alanı/kiracı kimliği, bireysel kota/limitler/ACL.
QoS segmentasyonu: kritik (P0), önemli (P1), arka plan (P2).
Çıkış: Aboneler (Ops/BI/Third-party) konulara ve materyalize görünümlere abonelikler yoluyla.
4) Sözleşmeler ve şemalar (olaylar/metrikler/yollar)
4. 1 Olaylar (basitleştirilmiş, YAML)
yaml event:
id: uuid kind: business ops risk ts: timestamp # ISO8601 tenant: string # org_id/namespace source: string # service/peer-id trace_id: string type: string # deposit. created payout. failed probe. ok...
attrs: object # semantic fields (no PII)
severity: info warn error critical qos: P0 P1 P2
4. 2 Metrikler (OpenMetrics/OTLP)
Stabil etiketli Gauge/Counter/Histogram (sınırlı kardinalite).
Tanımlayıcılar: 'metric _ name {service, region, tenant, version, route}'.
Kodda p99 yerine gecikme/boyutlar için histogramlar.
4. 3 Trails
Gerekli alanlar 'trace _ id', 'span _ id', 'parent _ id', 'service', 'peer', 'route', 'qos'dur.
Etki alanları (tüketici/üretici) ve ağ şerbetçiotu (röle/köprü) arasındaki bağlantılar.
5) QoS ve önceliklendirme
P0 (kritik): SLI ödemeleri/ödemeleri, bridge/node durumları, burn-rate SLO - sıkı teslimat (acks, yeniden denemeler, idempotency), minimum zaman aşımları.
P1 (önemli): ürün etkinlikleri/anahtar metrikler - SLO içinde garantili teslimat.
P2 (arka plan): ayrıntılı günlükler, hata ayıklama - en iyi çaba, aşırı yüklendiğinde düşebilirsiniz.
Politikacılar: farklı kuyruklar, üreticiler için kota, geri basınç, oran sınırları, 'idempotency _ key'ile büyükbaba.
6) Kardinalite ve metrik bütçesi
Kural 6 etiketleri: metrik başına en fazla 6 anahtar, değerlerin sabit sözlükleri.
Kardinalite ≤ 10k zaman serisi/metrik/kiracı.
Örnekleme: izler için kafa/kuyruk tabanlı; Altörnekleme 10s - 1m - 5m - 1h metrikleri.
Kotalar: Çadır başına ve QoS sınıfı başına puan/sn ve bayt/sn sınırları.
Linter şemaları: "Patlayan" etiketli metrikleri reddeder (id, e-posta, ip, vb.).
7) Topla ve teslim et: itme ve çekme
Push (OTLP/StatsD/HTTP): esneklik, mobil/uç istemciler, P0 kanalları.
Pull (Prometheus): iç altyapı, öngörülebilir hedefler.
Hibrid: ihracatçılar - ağ geçidi - TSDB; Bölgeler için federe kazıma.
Taşıma: QUIC/HTTP/2, sıkıştırma, butching, TLS/mTLS, jitter ile retrai.
8) SLI/SLO ve uyarı
8. 1 Temel SLI'lar
Kullanılabilirlik % Uç Noktalar/Ağ Geçitleri,
Kritik rotalarda gecikme p50/p95/p99,
Hata oranı (5xx/timeout/abort),
Otobüsle teslimat gecikmesi, Kuyruk derinliği,
Vitrinlerin tazeliği (yutmak - servis gecikmesi).
8. 2 SLO örneği
P0 boru hatları: Kullanılabilirlik ≥ 99. %95, p99 gecikme süresi ≤ 400 мс, Teslimat gecikmesi p95 ≤ 2 с.
P1: 99 ≥ kullanılabilirlik. %9, Tazelik p95 ≤ 3 dk.
P2: Tazelik p95 ≤ 15 мин, sayfa yok.
8. 3 Yanma oranı uyarıları (örnek)
2 saatlik pencere: 'error _ budget _ burn ≥ 2 ×' - sayfa.
6 saatlik pencere: 'error _ budget _ burn ≥ 1 ×' - sayfa/eskalasyon.
'Queue _ lag've' drop _ rate 'P0 ile birleştirin.
9) Kasalar ve retentions
TSDB metrikleri: yüksek frekanslı - 7-14 gün; Agregatlar - 6-12 ay
Olaylar/günlükler: sıcak depolama 7-30 gün, soğuk (nesne) 6-24 ay.
Yollar: %1-10 örnekleme; "Yavaş/hatalı" yayılma alanlarını kaydetme (kuyruk tabanlı).
PII ve veri konusu istekleri için silme/revizyon politikaları.
10) Gizlilik, güvenlik ve izolasyon
PII minimizasyonu: Alanların tokenizasyonu/takma adı, metriklerde "ham" tanımlayıcıların yasaklanması.
mTLS/olay imzaları, üretici anahtar sabitleme.
ACL/ABAC konular/hizmetler/kiracılar, yazmak/okumak için ayrı anahtarlar.
Kiracı sanal alanı: mantıksal/fiziksel ayırma, kiracı başına sınırlar ve oran sınırı.
Denetim izi: Yapılandırmalara erişim/değişiklik günlüklerinin değiştirilmemesi.
11) Akışların işlenmesi (akış işleri)
Enrich: normalleştirme, coğrafi/sürüm/trafik sınıfı.
Agregat: pencereler 10s/1m/5m, histogramlar, nicel eskizler.
Algılama: Anomaliler (EWMA/ESD), dağılımların sürüklenmesi, kuyruk patlamaları.
Rota: Vitrin/uyarı/webhooks ortaklarına fan çıkışı.
Guard: "Kırmızı düğme" - kaynak/konuya göre kısma/öldürme anahtarı.
12) Gösterge Panoları (referans düzenleri)
Ops Core (saat/gerçek zamanlı): p95 gecikme, hata oranı, teslimat gecikmesi, kuyruk derinliği, başarı oranı alımı.
Boru Hatları Sağlığı: Boru hattı başına tazelik, damla oranı, geri basınç, yanma oranı SLO.
Kiracı Kullanımı: satırlar/sn, baytlar/sn, kardinalite, üst etiketler.
Güvenlik/Uyumluluk: mTLS durumları, son kullanma anahtarları, erişimler, PII revizyonları.
İş Lensi: dönüşüm/ödemeler/köprü SLI'ları teknik metriklerin yanında.
13) Yapılandırma örnekleri
QoS Sınıfları ve Sınırları (YAML)
yaml telemetry:
qos:
P0:
topics: [payout. sli, bridge. finality, gateway. availability]
delivery: guaranteed retry:
attempts: 3 backoff_ms: [100, 400, 800]
max_queue_lag_ms: 2000
P1:
topics: [product. events, api. metrics]
delivery: at-least-once sampling: 1. 0
P2:
topics: [debug. logs, verbose. traces]
delivery: best-effort sampling: 0. 1 quotas:
tenant_default:
metrics_points_per_sec: 50_000 logs_mb_per_hour: 500 traces_spans_sampled_pct: 5
Metrik Etiketler (Politika)
yaml metrics_policy:
allowed_labels: [service, route, code, region, tenant, version]
forbidden_labels: [user_id, email, ip, session_id]
max_label_value_count: 1000
Uyarılar yanma oranı
yaml alerts:
- name: "p0_error_burn_2h"
expr: burn_rate_p0_2h > 2 action: [page_oncall, open_incident]
- name: "queue_lag_p0"
expr: queue_lag_ms_p95 > 2000 action: [page_oncall]
14) Veri şemaları ve sorguları
Metrik kayıt (dizin)
sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);
Kuyruklar ve gecikme
sql
SELECT topic,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY lag_ms) AS lag_p95,
SUM(dropped) AS drops
FROM queue_metrics
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY topic;
Çadır kardinalitesi
sql
SELECT tenant, metric_name, COUNT(DISTINCT series_id) AS series
FROM tsdb_series
WHERE day = current_date
GROUP BY tenant, metric_name
ORDER BY series DESC
LIMIT 50;
15) Süreçler ve roller
Telemetri Sahibi - şemalar/politikalar/kotalar, kardinalite kontrolü.
SRE/Ops - SLO, uyarılar, olaylar, ölçeklendirme.
Güvenlik/Uyumluluk - anahtarlar, erişimler, PII, denetimler.
Ürün/BI - KPI vitrinleri, analizler, A/B metrikleri.
Kiracılar (ortaklar) - doğru SDK entegrasyonu, sözleşme uyumu.
16) Playbook olayları
A. kardinalite patlaması
1. Otomatik blok üreticisi/metrikleri, 2) "kötü" etiketleri kesin, 3) retro-toplama, 4) post-mortem ve linter kuralları.
B. Kuyruk gecikmesinin yükselişi P0
1. Önceliği dahil etme, 2) tarafları/tüketicileri genişletme, 3) P2 örneklemesini geçici olarak azaltma, 4) darboğaz analizi.
C. Tazeliğin Düşüşü Vitrinleri
1. Yedekleme konektörüne geçin, 2) bozunma modunu açın ("son sonlandırılmış"), 3) kaynak sahiplerini bilgilendirin.
D. metriklerde PII sızıntısı
1. Anında akış engelleme, 2) sıcak katmanda redaksiyon, 3) DPO/Uyumluluk bildirimi, 4) mercek/SDK güncellemesi.
E. büyük 5xx/izleme hataları
1. Sayfa, 2) hatalar için kuyruk tabanlı örnekleme ↑, 3) kritik rota izleme tanılama, 4) geri alma/özellik bayrağını serbest bırakın.
17) Uygulama kontrol listesi
1. Olay/metrik/izleme sözleşmelerini ve kabul edilebilir etiketlerin bir listesini onaylayın.
2. QoS sınıfları, konular/kuyruklar, kotalar ve metrikler bütçesi oluşturun.
3. Ingest (push/pull), TLS/mTLS, retrai ve idempotency ayarlarını yapın.
4. Metrikleri/olay dizinlerini ve şema dizinlerini dahil edin.
5. SLI/SLO, yanma oranı uyarıları ve yükselmeleri tanımlayın.
6. Panolar oluşturun Ops/Boru Hatları/Kiracı/Güvenlik.
7. Telemetri kaos testleri (kayıp/jitter/adezyonlar) çalıştırın.
8. Düzenli olarak kardinalite, saklama ve depolama maliyetlerini yeniden değerlendirin.
18) Sözlük
QoS - teslimat kalitesi/öncelik sınıfı.
Tazelik - vitrindeki verilerin görünümünde gecikme.
Yakma oranı - SLO'ya göre hata bütçesi tüketim oranı.
Kardinalite - benzersiz metrik satırlarının sayısı (etiket kombinasyonları).
Kuyruk tabanlı örnekleme - "yavaş/hatalı" izlerin bir seçimi.
Idempotency key - olay tekrarlama veri tekilleştirme için anahtar.
Alt satır: Sinyallerin ve metriklerin dağılımı sadece "grafikleri toplamak ve göstermek'değil, sözleşmelerin, QoS kanallarının ve bütçelerin disiplinidir. Bu çerçeveyi izleyerek, ekosistem öngörülebilir gözlemlenebilirlik, dalgalanmaya dayanıklı, veri-özel ve hem operasyonel hem de iş hatlarındaki kararlar için yararlı olur.