Logo GH

Gözlemlenebilirlik ve telemetri

(Bölüm: Teknoloji ve Altyapı)

Kısa Özet

Gözlemlenebilirlik, "neden böyle çalışıyor?" Sorusuna cevap verme yeteneğidir Yeni yapıların serbest bırakılması olmadan. IGaming'de bu çok önemlidir: zirve turnuvaları, ödeme zirveleri, çok bölgesellik ve sorumlu kumar/PII gereksinimleri. Temel - SLO sözleşmeleri, gürültüye dayanıklı uyarı ve maliyet kontrolü ile ortak tanımlayıcılar ve standartlar (OpenTelemetry) tarafından birleştirilen metrikler, günlükler, izler.

1) Gözlemlenebilirlik çerçevesi: nelerden oluştuğu

Metrikler (zamana göre sayılar): KIRMIZI/KULLANIM, iş KPI, SLI. TSDB'de depolanır.
Günlükler (metin/JSON'daki olaylar): denetim, hatalar, iş gerçekleri, güvenlik.
İzler (sprans): Hizmetler, gecikmeler, gecikmelerin nedenleri aracılığıyla yol isteyin.
Profil oluşturma: CPU/bellek/eBPF akışları, yığın/kilit içeriği.
RUM ve sentetikler: gerçek kullanıcılar (web/uygulama) + robot kontrolleri.
Telemetri kataloğu: şemalar, PII politikaları, saklama süreleri, maliyet etiketleri.

2) Sinyal taksonomisi ve ilkeleri

RED для API: Oran, Hatalar, Süre.
Altyapı için KULLANIM: Kullanım, Doygunluk, Hatalar (CPU, diskler, ağ, kuyruklar).
SLI/SLO: ölçülebilir göstergeler (örn. Başarılı istekler/tüm, p95 gecikme), erişilebilirlik hedefleri (örn. "99. 9 % in 30 days"), hata bütçesi - süreç tetikleyicileri.
Akıllıca yüksek kardinalite: etiketler kesintilerde (bölge/kiracı/sağlayıcı) faydalı olmalı, ancak TSDB'yi havaya uçurmamalıdır.

3) Standartlar ve uçtan uca korelasyon

OpenTelemetry (OTel): Metrikler, günlükler ve izler için tek bir SDK/protokol.
Tanımlayıcılar: 'trace _ id', 'span _ id', 'correlation _ id', 'player _ id' (takma adlı), 'payment _ route'.
Flow ID: giriş ağ geçidi - tüm mikro hizmetler - ödemeler/PSP - kuyruklar/işler - günlükler/metrikler/yayılma alanları.

Örnek: Korelasyon Başlıkları


traceparent: 00-<trace_id>-<span_id>-01 x-request-id: <correlation_id>

4) Metrikler: neyi ve nasıl ölçüyoruz

Adlandırma/Etiketler

'service =' payments-api ',' env = 'prod', 'region =' eu-west ',' tenant ',' provider = 'pspX' '.

Prometheus Örnekleri

prometheus
RED http_requests_total{service="api",route="/deposit",method="POST",status="200"}
http_request_duration_seconds_bucket{service="api",le="0. 25",route="/deposit"} 1234 http_request_errors_total{service="api",route="/deposit"}

USE cpu_utilization_ratio{node="n1"} 0. 71 queue_depth{queue="withdrawals"} 128

Бизнес payments_success_total{psp="X",currency="EUR"} 4521 payment_conversion_ratio{route="pspX"} 0. 948

Histogramlar ve örnekler

Gecikme histogramlarını (native-histograms/ β uckets) saklayın ve "yavaş kovadan" belirli bir parçaya atlamak için örneği 'trace _ id'ile bağlayın.

5) Günlükler: yapılandırılmış ve güvenli

Sadece JSON (prod'da "serbest form" yok).
Поля: 'zaman damgası', 'önem derecesi', 'hizmet', 'trace _ id', 'korelasyon _ id', 'player _ id _ hash','olay ',' miktar ',' para birimi ',' ip _ hash '.
PII maskeleme/karma, ayrı indeksler/hassas için tutma.
Log boru hatları: ayrıştırma, normalleştirme, zenginleştirme (geo/ASN), PII düzenleme, indeksleme.

Bir JSON olayı örneği

json
{
"ts":"2025-11-05T10:42:31Z",
"sev":"ERROR",
"service":"payments-api",
"event":"psp_timeout",
"trace_id":"9c5e...e2",
"route":"pspX",
"duration_ms": 3100,
"attempt":2,
"player_id_hash":"p:1b7f...",
"pii_redacted":true
}

6) İzler: zamanın kaybolduğu yer

Spans: giriş isteği, sağlayıcı çağrıları (PSP/oyun sağlayıcıları), veritabanı/önbellek, servisler arası RPC'ler.
Özellikler: 'db. Sistem ', net. akran. İsim ',' mesajlaşma. Sistem ',' psp. route ',' oyunu. Sağlayıcı '.

Örnekleme:
  • Hacim için kafa tabanlı,
  • Kuyruk tabanlı (koşullara göre: hatalar, p95 +, VIP segmenti),
  • Ödeme için garantili tutma/PII açısından kritik.

7) Ön ve mobil cihazların gözlemlenebilirliği

RUM: TTFB, FCP/LCP/CLS/INP, JS hataları, ağlar ve SPA yönlendirmesi.
Çökme raporları: sembolizm, deobfuscation, yapı sürümü, cihaz/işletim sistemi.
Sentetikler: giriş/depozito/oran senaryoları; Coğrafi dağıtılmış kontroller.

8) SLO, SLI ve hata bütçesi

SLO Örneği (Pseudo-YAML)

yaml service: payments-api sli:
- name: availability expr: sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))
- name: latency_p95 expr: histogram_quantile(0. 95, rate(http_request_duration_seconds_bucket[5m]))
targets:
availability: "99. 9%/30d"
latency_p95: "<=250ms/30d"
error_budget_policy:
fast_burn: 5% for 1h -> page, freeze deploy slow_burn: 20% for 24h -> incident, improvement plan

Hata bütçesiyle uyarı,'her metrikle'değil.
Bütçe yanması için prosedürleri dondurun: limit bültenleri/kanaryalar.

9) Gürültü olmadan uyarı

Çok pencereli, çok yanmalı kurallar: kısa/uzun pencere.
Veri tekilleştirme/köklendirme: hizmet/bölge/kritik duruma göre.
Runbook URL ve bağlam otomatik toplama (en son gönderimler, yapılandırma değişiklikleri, bağımlılık grafiği).
Zamanlanmış çalışma sırasında sessiz saatler ve bastırma.

Örnek kural (PromQL fikri)

promql alert: PaymentsSLOFastBurn expr: slo_error_rate_5m > 2 slo_budget_rate for: 15m labels: { severity="page", service="payments-api" }
annotations:
summary: "SLO fast burn"
runbook: "https://runbooks/payments/slo"

10) Profilleme ve eBPF

EBpf/profiler: CPU/alloc alev grafikleri, I/O gecikmesi, ağ damlaları, Syscall anomalileri.
P99 darboğazları, titreme ve nadir donmalar için kullanışlıdır.

11) İş gözlenebilirliği (ürün ve risk)

Finans/para kazanma: mevduat dönüşümü, TTW (time-to-wallet), yazar ./settle, cancellations/chargebacks.
Oyun aktivitesi: tutma/çizgi, canlı bahislerin payı, sağlayıcıların "yapışkanlığı".
Antifraud/kötüye kullanım: hareket hızı, cihaz/IP eşleşmeleri, korelasyonlar.
RG göstergeleri: uzun seanslar, "dogon", biftek büyümesi.
İş metrikleri teknik metrikler ve açıklama olayları ile ilişkilidir.

12) Güvenlik, PII ve uyumluluk

Veri bölgeleri: veri kümesi/günlük etiketleri ('pii = true', 'bölge = AB').
İndekslemeden önce maskeleme, tanımlayıcıların aliasing.
Denetim için WORM mağazaları; Rol tabanlı günlük erişimi.
Saklama süreleri: Teknoloji blogları/denetimler/işletmeler için farklıdır.
Günlüklerde ham sırların yasaklanması; CI'da tarama kontrolleri.

13) Değer Yönetimi (FinOps)

Kardinalite sınırı: 'user _ id', 'session _ id' konusunda dikkatli olun.
Katılım/tutma: sıcak (7-14 gün), sıcak (30-90), soğuk (arşiv).
Kuyruk tabanlı örnekleme ve altörnekleme metrikleri.
"Takım", "hizmet", "kiracı" etiketlerine göre faturalandırma: "gözlemlenebilirliği yakan" raporlar.

14) Araçlar (referans yığını)

Metrikler: Metrikler için Prometheus/lake, Grafana panoları.
Günlükler: Loki/ELK; Yutma kuralları, azaltma/ayrıştırma.
Yollar: Tempo/Jaeger/OTel koleksiyoncuları; Metriklerden örnekler-bağlantılar.
Sentetikler: Blackbox ihracatçısı, tarayıcı robotları.
Uyarı: Alertmanager/sohbet entegrasyonu, çağrı üzerine rotasyon.
Profilleme: eBPF/sürekli profilleme.

15) Örnekler: Vakfı hızlı bir şekilde uygulayın

(a) API için RED ihracatçısı (sözde kod):
python from prometheus_client import Counter, Histogram, start_http_server reqs = Counter('http_requests_total','', ['route','method','status'])
lat = Histogram('http_request_duration_seconds','', ['route'])
def handle(req):
with lat. labels(route=req. route). time():
status = app(req)
reqs. labels(route=req. route,method=req. method,status=str(status)). inc()
(b) trace_id günlüklere gömülmesi (ara katman fikri):
go tid:= ctx. Value("trace_id")
logger = logger. With("trace_id", tid)
logger. Info("deposit-accepted", "amount", amt, "route", route)
(c) Metriklerdeki örnekler:
prometheus http_request_duration_seconds_bucket{..., le="0. 25"} 1023 # exemplar: trace_id=9c5e...

16) Süreçler ve işletim sistemi

Birleşik metrik/etiket sözlüğü (adlandırma kılavuzu) ve gösterge tablosu şablonu.
Serbest bırakma ek açıklamaları sütunlarda otomatik olarak.
Olaylar: kart, zaman çizelgesi, RCA hiçbir ücret, eylem öğeleri.
Eğitim alarmları ("oyun günü"): simüle edilmiş düşüşler, PSP gecikmeleri, önbellek aşırı ısınması.
Runbooks: adım adım talimatlar ve uyarılardan otomatik bağlantılar.

17) Olgunluk kontrol listesi

1. OTel SDK/collector - metriklerin/günlüklerin/izlerin tek dışa aktarımı.
2. RED/USE, tüm hizmetleri + SLI/SLO by key API'yi kapsar.
3. Korelasyon 'trace _ id' ⇄ günlükleri ⇄ metrikleri (örnekler, atlama bağlantıları).
4. Çoklu yakma ve runabook bağlantıları ile bütçe hataları hakkında uyarılar.
5. "Depozito/oran/para çekme" için RUM + sentetikleri.
6. Beyaz liste satışında profilleme (eBPF).
7. PII politikaları: maskeleme, bölgeler, erişim, saklama süreleri.
8. Telemetri maliyetine ilişkin finansal rapor ('ekip/hizmet' etiketleri).
9. "En yüksek yük için hazırlık": test planı, ısınma önbellekleri, uyarı şablonları.
10. Düzenli RCA'lar ve SLO/eşik revizyonları.

18) Antipatterns

Yapı ve 'trace _ id' olmadan "sayfaları" kaydeder.
Her metrik için uyarılar - FAT uyarısı.
Doğru kovalar olmadan histogramlar - "düz" p95.
Etiketlerin sınırsız kardinalitesi - bir değer patlaması.
RUM/sentetiklerin eksikliği'tamam'dır, ancak kullanıcı değildir.
PII'yi teknoloji uzmanlarıyla karıştırma, süresiz tutma.
İş KPI'larından telemetri izolasyonu - "gecikme, gelir de düşüyor".

Özet

Güçlü gözlemlenebilirlik, ürün, SRE, güvenlik ve ödemeler arasında ortak bir dildir. OTel için metrikleri, günlükleri, parçaları bağlayarak, hata bütçesiyle SLO'yu tanıtarak, akıllı ve maliyet yönetilebilir hale getirerek, sorunları daha erken fark eden, daha hızlı iyileşen ve tahmin edilebilir bir şekilde trafik zirvelerini ve turnuva yüklerini geçen bir sistem elde edersiniz.

Contact

Bizimle iletişime geçin

Her türlü soru veya destek için bize ulaşın.Size yardımcı olmaya her zaman hazırız!

Telegram
@Gamble_GC
Entegrasyona başla

Email — zorunlu. Telegram veya WhatsApp — isteğe bağlı.

Adınız zorunlu değil
Email zorunlu değil
Konu zorunlu değil
Mesaj zorunlu değil
Telegram zorunlu değil
@
Telegram belirtirseniz, Email’e ek olarak oradan da yanıt veririz.
WhatsApp zorunlu değil
Format: +ülke kodu ve numara (örneğin, +90XXXXXXXXX).

Butona tıklayarak veri işlemenize onay vermiş olursunuz.