GH GambleHub

Dystrybucja sygnałów i mierników

(Sekcja: Ekosystem i sieć)

1) Cel i obszar

Dystrybucja sygnału i metryki jest spójnym sposobem zbierania, normalizacji i dostarczania telemetrii (wydarzenia, metryki, kłody, ślady, statusy zdrowotne) wszystkim zainteresowanym uczestnikom: operatorom, dostawcom treści, usługom płatniczym/CCM, mostom, węzłom sieciowym, jednostkom stowarzyszonym i zespołom SRE/BI/Compliance. Cele:
  • Jednolity język telemetrii i umowy o dane.
  • Zarządzane kanały QoS: priorytet sygnałów krytycznych.
  • Przejrzyste SLI/SLO i przewidywalne ostrzeganie.
  • Prywatność, izolacja i wskaźniki oszczędności budżetowych.

2) Taksonomia sygnału

1. Wydarzenia biznesowe: wejście na pokład, wpłaty/płatności, imprezy gier, przypisanie.
2. Parametry techniczne: kod opóźnienia/przepustowości/błędu, kolejka, użycie procesora/pamięci RAM/IO.
3. Dzienniki: ustrukturyzowane wpisy dotyczące operacji i błędów.
4. Ślady: zakres zapytania/tematu, korelacja hop-to-hop.
5. Statusy zdrowotne: sondy syntetyczne, gotowość/pobudzenie, węzły bicia serca.
6. Sygnały o ryzyku/zgodności: KYC/KYB/AML, wydarzenia sanacyjne.

Każda klasa ma własny poziom krytyki i zasady przechowywania/dostarczania.

3) Architektura dystrybucji (odniesienie)

Kolektory krawędzi (SDK/agenci) → Ingress (HTTP/OTLP/gRPC/QUIC) → Autobus (Kafka/Pulsar) → Procesory (stream-jobs) → Przechowywanie (TSDB dla mierników, obiektów/kolumn - do logów/wydarzenia, znacznik) → Prezentacje/deski rozdzielcze/wpisy.
Wielopoziomowość: przestrzeń nazw/lokator-id w klawiszach, indywidualny kontyngent/limity/ACL.
Segmentacja QoS: krytyczna (P0), ważna (P1), tło (P2).
Egress: abonenci (Ops/BI/Third-party) poprzez subskrypcje tematów i zmaterializowane poglądy.

4) Umowy i programy (wydarzenia/mierniki/ścieżki)

4. 1 Wydarzenia (uproszczone, 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 mierniki (OpenMetrics/OTLP)

Skrajnia/licznik/histogram ze stabilnymi etykietami (ograniczona kardynalność).
Identyfikatory: 'metric _ name {service, region, najemca, wersja, route}'.
Histogramy dla opóźnień/wymiarów zamiast p99 w kodzie.

4. 3 Szlaki

Wymagane pola to 'trace _ id',' span _ id', 'parent _ id',' service ',' peer ',' route ',' qos '.
Powiązania między domenami (konsumenci/producenci) a chmielem sieciowym (przekaźnik/most).

5) QoS i ustalanie priorytetów

P0 (krytyczne): płatności/płatności SLI, statusy mostów/węzłów, prędkość spalania SLO → ścisła dostawa (akki, ponowne próby, idempotencja), minimalne czasy.
P1 (ważne): wydarzenia produktu/kluczowe wskaźniki → gwarantowana dostawa w ramach SLO.
P2 (tło): szczegółowe dzienniki, debugowanie → najlepszy wysiłek, można upuścić po przeciążeniu.

Politycy: różne kolejki, kwota dla producentów, ciśnienie zwrotne, limity stawek, dziadek przez „idempotency _ key”.

6) Kardynalność i budżet metryczny

Reguła 6 etykiet: nie więcej niż 6 klawiszy na metrykę, stałe słowniki wartości.
Kardynalność ≤ 10k seria czasowa/metryczna/najemca.
Pobieranie próbek: na podstawie głowy/ogona dla śladów; downsampling 10s → 1m → 5m → 1h metryki.
Kwoty: limity punktów/s i bajtów/s na namiot i na klasę QoS.
Schematy Lintera: odrzuca mierniki z „eksplodującymi” etykietami (id, e-mail, ip, itp.).

7) Zbieraj i dostarczaj: push vs pull

Push (OTLP/StatsD/HTTP): elastyczność, klienci mobilni/krawędzie, kanały P0.
Pull (Prometeusz): infrastruktura wewnętrzna, przewidywalne cele.
Hybryda: eksporterzy → brama → TSDB; sfederowane skrawki dla regionów.
Transport: QUIC/HTTP/2, kompresja, masowanie, TLS/mTLS, retrai z jitter.

8) SLI/SLO i ostrzeganie

8. 1 Podstawowe SLIs

Dostępność% Punkty końcowe/Bramy,

Latency p50/p95/p99 na trasach krytycznych,

Błąd (5xx/timeout/abort),

Opóźnienie dostawy autobusem, głębokość kolejki,

Świeżość okien sklepowych (spożycie → służyć opóźnienie).

8. 2 przykłady SLO

Rurociągi P0: Dostępność ≥ 99. 95%, p99 latency ≤ 400 м, Delivery lag p95 ≤ 2 μ.
P1: Dostępność ≥ 99. 9%, świeżość p95 ≤ 3 min.
P2: Świeżość p95 ≤ 15 мий, bez strony.

8. 3 Wpisy o szybkości spalania (przykład)

2-godzinne okno: 'error _ budget _ burn ≥ 2 ×' → strona.
6-godzinne okno: 'error _ budget _ burn ≥ 1 ×' → strona/eskalacja.
Połączyć z 'queue _ lag' i 'drop _ rate' P0.

9) Sklepienia i retencje

Metryka TSDB: wysoka częstotliwość - 7-14 dni; kruszywa - 6-12 miesięcy

Zdarzenia/dzienniki: hot storage 7-30 dni, zimno (obiekt) 6-24 miesięcy.
Ślady: pobieranie próbek 1-10%; zapisywanie „wolnych/błędnych” przęseł (oparty na ogonie).
Polityka usuwania/rewizji PII i wniosków osób, których dane dotyczą.

10) Prywatność, bezpieczeństwo i izolacja

Minimalizacja PII: tokenizacja/pseudonimizacja pól, zakaz „surowych” identyfikatorów w metrykach.
Podpisy mTLS/event, spinanie klucza producenta.
ACL/ABAC na tematy/usługi/najemcy, oddzielne klucze do pisania/czytania.
Piaskowanie najemcy: logiczne/fizyczne rozdzielenie, limity i ograniczenie stawki na najemcę.
Ścieżka audytu: niezmienne dzienniki dostępu/zmiany konfiguracji.

11) Przetwarzanie strumieni (praca strumieniowa)

Wzbogacenie: normalizacja, klasa geo/wersja/ruch.
Kruszywo: okna 10s/1m/5m, histogramy, szkice ilościowe.
Wykryć: anomalie (EWMA/ESD), dryf dystrybucji, wybuchy kolejek.
Trasa: fan-out do zaprezentowania/alert/webhooks partners.
Guard: „czerwony przycisk” - throttling/kill-switch według źródła/tematu.

12) Deski rozdzielcze (układ odniesienia)

Ops Core (godzina/czas rzeczywisty): opóźnienie p95, szybkość błędów, opóźnienie dostawy, głębokość kolejki, szybkość przyjmowania sukcesu.
Rurociągi Zdrowie: świeżość na rurociągu, szybkość spadku, ciśnienie wsteczne, szybkość spalania SLO.
Najemca Użycie: wiersze/sec, bajty/sec, kardynalność, top-labels.
Bezpieczeństwo/Zgodność: statusy mTLS, klucze wygaśnięcia, dostęp, wersje PII.
Obiektywy biznesowe: konwersja/wypłaty/mostek SLIs obok mierników technicznych.

13) Przykłady konfiguracji

Klasy i limity QoS (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

Etykiety metryczne (polityka)

yaml metrics_policy:
allowed_labels: [service, route, code, region, tenant, version]
forbidden_labels: [user_id, email, ip, session_id]
max_label_value_count: 1000

Wskaźnik spalania wpisów

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) Schematy danych i zapytania

Rejestr metryczny (katalog)

sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);

Kolejki i opóźnienia

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;

Kardynalność namiotu

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) Procesy i role

Właściciel telemetrii - programy/polityki/kwoty, kontrola kardynalności.
SRE/Ops - SLO, wpisy, incydenty, skalowanie.
Bezpieczeństwo/Zgodność - klucze, dostęp, PII, audyty.
Produkt/BI - prezentacje KPI, analityka, mierniki A/B.
Najemcy (partnerzy) - poprawna integracja SDK, zgodność z umową.

16) Incydenty Playbook

A. Wybuch kardynalności

1. Auto-blok producent/mierniki, 2) odciąć „złe” etykiety, 3) retro-agregacja, 4) pośmiertne i linter zasady.

B. Wzrost opóźnienia kolejki P0

1. Uwzględnienie priorytetu, 2) rozszerzenie partii/konsumentów, 3) tymczasowe ograniczenie pobierania próbek P2, 4) analiza wąskich gardeł.

C. Upadek świeżości sklepów

1. Przełączyć do złącza zapasowego, 2) włączyć tryb degradacji („ostatni finalizowany”), 3) powiadomić właścicieli źródła.

D. Wyciek PII w metrykach

1. Natychmiastowe blokowanie przepływu, 2) redakcja na gorącej warstwie, 3) zgłoszenie DPO/zgodność, 4) aktualizacja transmisji/SDK.

E. Ogromne błędy 5xx/śladowe

1. Strona, 2) pobieranie próbek na podstawie ogona na błędy, 3) krytyczna diagnostyka śladu trasy, 4) zwolnienie flagi rollback/feature.

17) Lista kontrolna wdrażania

1. Zatwierdzenie umów dotyczących zdarzeń/metrycznych/śladowych oraz wykaz dopuszczalnych etykiet.
2. Tworzenie klas QoS, tematów/kolejek, kwot i budżetu metrycznego.
3. Skonfiguruj połknięcie (push/pull), TLS/mTLS, retrai i idempotencja.
4. Zawiera katalogi mierników/zdarzeń i linterów schematów.
5. Zdefiniuj SLI/SLO, alerty spalania i eskalacje.
6. Budowa desek rozdzielczych Operacje/Rurociągi/Najemca/Bezpieczeństwo.
7. Uruchom testy chaosu telemetrycznego (utrata/jitter/przyczepność).
8. Regularnie zmieniaj koszty kardynalności, zatrzymywania i przechowywania.

18) Słownik

QoS - jakość dostawy/klasa priorytetowa.
Świeżość - opóźnienie w pojawieniu się danych w prezentacji.
Wskaźnik spalania - wskaźnik zużycia w budżecie błędu w stosunku do SLO.
Kardynalność - liczba unikalnych rzędów metryk (kombinacje etykiet).
Pobieranie próbek na podstawie ogona - wybór „powolnych/błędnych” śladów.
Klucz idempotencji - klucz do deduplikacji powtarzania zdarzeń.

Bottom line: dystrybucja sygnałów i metryk to nie tylko „zbieranie i pokazywanie wykresów”, ale dyscyplina kontraktów, kanałów QoS i budżetów. Stosując się do tych ram, ekosystem zyskuje przewidywalną obserwowalność, odporność na gwałtowne zmiany, dane prywatne i przydatne do podejmowania decyzji zarówno w kontekście operacyjnym, jak i biznesowym.

Contact

Skontaktuj się z nami

Napisz do nas w każdej sprawie — pytania, wsparcie, konsultacje.Zawsze jesteśmy gotowi pomóc!

Telegram
@Gamble_GC
Rozpocznij integrację

Email jest wymagany. Telegram lub WhatsApp są opcjonalne.

Twoje imię opcjonalne
Email opcjonalne
Temat opcjonalne
Wiadomość opcjonalne
Telegram opcjonalne
@
Jeśli podasz Telegram — odpowiemy także tam, oprócz emaila.
WhatsApp opcjonalne
Format: kod kraju i numer (np. +48XXXXXXXXX).

Klikając przycisk, wyrażasz zgodę na przetwarzanie swoich danych.