Signallar va metriklarni taqsimlash
(Bo’lim: Ekotizim va Tarmoq)
1) Maqsad va viloyat
Signallar va metriklarni taqsimlash - telemetriyani (hodisalar, metriklar, loglar, trassalar, salomatlik holatlari) barcha manfaatdor ishtirokchilarga: operatorlar, kontent provayderlari, to’lov/KS-servislar, ko’priklar, tarmoq uzellari, affiliatlar va SRE/BI/jamoalariga to’plash, normallashtirish va yetkazib berishning kelishilgan usuli Compliance. Maqsadlar:- Yagona telemetriya tili va ma’lumotlar kontraktlari.
- Boshqariladigan QoS kanallari: tanqidiy signallarning ustuvorligi.
- Shaffof SLI/SLO va oldindan aytib bo’ladigan alerting.
- Xususiy, izolyatsiya va tejamkor byudjet metrikalari.
2) Signallar taksonomiyasi
1. Biznes tadbirlari: onbording, depozitlar/to’lovlar, o’yin tadbirlari, atributsiya.
2. Texnik metriklar: latency/throughput/xato kodi, navbat, CPU/RAM/IO dan foydalanish.
3. Logi: operatsiyalar va xatolar to’g "risidagi tuzilmaviy yozuvlar.
4. Izlash: soʻrovlar/topiklar spani, hop-to-hop korrelyatsiyasi.
5. Salomatlik maqomi: synthetic probes, readiness/liveness, heartbeat tugunlari.
6. Xavf/komplayens signallari: KYC/KYB/AML xitlari, sanksiya hodisalari.
Har bir sinf o’zining tanqidiy darajasiga va saqlash/yetkazib berish siyosatiga ega.
3) Taqsimlash arxitekturasi (referens)
Edge-kollektorlar (SDK/agentlar) → Ingress (HTTP/OTLP/gRPC/QUIC) → Shina (Kafka/Pulsar) → Qayta ishlovchilar (stream-jobs) → Omborlar (TSDB metriklar uchun, obyekt/kolonochnoy - → Vitrinalar/dashbordlar/alertlar.
Ko’p tenantlik: kalitlarda namespace/tenant-id, alohida quota/limits/ACL.
QoS segmentatsiyasi: tanqidiy (P0), muhim (P1), fon (P2).
Egress: obunachilar (Ops/BI/Third-party) topiklar va materialized views obunalari orqali.
4) Kontraktlar va sxemalar (voqealar/metrika/treyslar)
4. 1 Voqealar (soddalashtirilgan, 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 Metrika (OpenMetrics/OTLP)
Barqaror yorliqli Gauge/Counter/Histogram (cheklangan kardinallik).
Identifikatorlari:’metric _ name {service, region, tenant, version, route}’.
Kodda p99 o’rniga latentlik/o’lchamlar uchun gistogrammalar.
4. 3 Treyslar
Majburiy maydonlar:’trace _ id’,’span _ id’,’parent _ id’,’service’,’peer’,’route’,’qos’.
Domenlar (consumer/producer) va tarmoq xoplari (relay/bridge) orasidagi linkalar.
5) QoS va ustuvorlik
P0 (tanqidiy): to’lovlar/to’lovlar SLI, ko’priklar/uzellar maqomi, burn-rate SLO → qat’iy yetkazib berish (acks, retries, idempotentlik), minimal taymautlar.
P1 (muhim): mahsulot hodisalari/asosiy metriklar → SLO doirasida kafolatlangan yetkazib berish.
P2 (fon): batafsil loglar, tuzatish → best-effort, siz ortiqcha yuklash paytida to’kish mumkin.
Siyosatchilar: turli navbatlar, prodyuserlar uchun quota, backpressure, rate-limits, dedup’idempotency _ key’.
6) Metrikalarning kardinalligi va budjeti
6 ta leybl qoidasi: metrikaga 6 tadan ko’p bo’lmagan kalit, qat’iy belgilar lug’atlari.
Kardinalligi ≤ 10k vaqt qatorlari/metrika/tenant.
Semplash: izlash uchun head-/tail-based; downsampling metrik 10s → 1m → 5m → 1h.
Quotas: tentant uchun va QoS klassi uchun nuqta/sek va bayt/sek limitlari.
Sxemalar linteri: «portlovchi» yorliqli metrikalarni (id, email, ip va h.k.) rad etadi.
7) To’plash va yetkazib berish: push vs pull
Push (OTLP/StatsD/HTTP): moslashuvchanlik, mobil/edge-mijozlar, P0 kanallar.
Pull (Prometheus): ichki infratuzilma, bashorat qilinadigan maqsadlar.
Gibrid: exporters → gateway → TSDB; mintaqalar uchun federated scrapes.
Transport: QUIC/HTTP/2, siqish, batchirish, TLS/mTLS, jitter bilan retraylar.
8) SLI/SLO va alerting
8. 1 Bazaviy SLI
Availability% endpoint/shlyuzlar,
kritik yo’nalishlar bo’yicha Latency p50/p95/p99,
Error-rate (5xx/timeout/abort),
Shina boʻyicha delivery lag, Queue depth,
Freshness vitrin (kechikish ingest → serve).
8. 2 SLO misollari
P0 pipelines: Availability ≥ 99. 95%, p99 latency ≤ 400 мс, Delivery lag p95 ≤ 2 с.
P1: Availability ≥ 99. 9%, Freshness p95 ≤ 3 min.
P2: Freshness p95 ≤ 15 мин, no-page.
8. 3 Burn-rate alerta (misol)
2 soatlik oyna:’error _ budget _ burn ≥ 2 ×’→ peyj.
6 soatlik oyna:’error _ budget _ burn ≥ 1 ×’→ peyj/eskalatsiya.
’queue _ lag’ va’drop _ rate’P0 bilan qoʻshish.
9) Omborlar va retensiyalar
TSDB metrik: yuqori chastotali - 7-14 kun; agregatlar - 6-12 oy.
Voqealar/loglar: issiq saqlash 7-30 kun, sovuq (ob’ekt) 6-24 oy.
Treyslar: sampling 1-10%; «sekin/xato» spanlarni saqlash (tail-based).
PII uchun olib tashlash/tahrirlash siyosati va ma’lumotlar subyektlarining so’rovlari.
10) Maxfiylik, xavfsizlik va izolyatsiya
PII-minimallashtirish: maydonlarni tokenlashtirish/taxalluslashtirish, metriklarda «xom» identifikatorlarni taqiqlash.
mTLS/voqealar imzosi, ishlab chiqaruvchilar kalitlari pinning.
Mavzular/xizmatlar/tenantlar uchun ACL/ABAC, write/o’qish uchun alohida kalitlar.
Tenant sandboxing: mantiqiy/jismoniy bo’linish, limitlar va rate-limit per tenant.
Audit trail: fayllarni oʻzgartirish/kirish uchun oʻzgarmas jurnallar.
11) Ishlov berish oqimlari (stream jobs)
Enrich: normallashuv, geo/versiya/trafik sinfi.
Aggregate: oynalar 10s/1m/5m, gistogrammalar, kvantil eskizlar.
Detect: anomaliyalar (EWMA/ESD), taqsimot drifti, navbat portlashlari.
Route: fan-out vitrinalar/allerterlar/vebxuklar hamkorlar.
Guard: «qizil tugma» - manba/mavzu boʻyicha throttling/kill-switch.
12) Dashbordlar (referens-maketlar)
Ops Core (soat/real-taym): p95 latency, error-rate, delivery lag, queue depth, success-rate ingest.
Pipelines Health: freshness per pipeline, drop-rate, backpressure, burn-rate SLO.
Tenant Usage: qator/sek, bayt/sek, kardinallik, top-labels.
Security/Compliance: mTLS maqomi, tugash kaliti, kirish imkoniyati, PII tahriri.
Business Lens: konvertatsiya/to’lovlar/texnometrlar yonidagi ko’prik SLI.
13) Konfiguratsiya namunalari
QoS klasslari va limitlari (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 yorliqlar (siyosat)
yaml metrics_policy:
allowed_labels: [service, route, code, region, tenant, version]
forbidden_labels: [user_id, email, ip, session_id]
max_label_value_count: 1000
Alertlar burn-rate
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) Ma’lumotlar sxemalari va so’rovlar
Metrik registr (katalog)
sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);
Navbatlar va lag
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;
Tentant bo’yicha kardinallik
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) Jarayonlar va rollar
Telemetry Owner - sxemalar/siyosatlar/kvotalar, kardinallikni nazorat qilish.
SRE/Ops - SLO, alertlar, hodisalar, masshtablash.
Security/Compliance - kalitlar, kirishlar, PII, auditlar.
Product/BI - KPI, analitik, A/B-metrika vitrinalari.
Tenants (sheriklar) - SDKni to’g "ri integratsiyalash, kontraktlarga rioya qilish.
16) Hodisalar Playbook
A. Kardinallikning portlashi
1. Prodyuser/metrikaning avto-bloki, 2) «yomon» yorliqlarni kesib tashlang, 3) retro-agregatsiya, 4) post-mortem va linter-qoidalar.
B. O’sish queue lag P0
1. Ustuvorlikni kiritish, 2) partiyalar/konsumerlarni kengaytirish, 3) P2 sampling vaqtincha kamaytirish, 4) tor joylarni tahlil qilish.
C. Freshness vitrinasining qulashi
1. Zaxira konnektorga oʻtish; 2) degradatsiya rejimini yoqish («oxirgi tugallangan»); 3) manbalar egalarini xabardor qilish.
D. metriklarda PII oqishi
1. Oqimni darhol blokirovka qilish, 2) issiq qatlamda redaction, 3) DPO/Compliance xabarnomasi, 4) lenterlarni/SDKni yangilash.
E. ommaviy 5xx/trastirovka xatolari
1. Peyj, 2) sampling tail-based ↑ xatolar uchun, 3) kritik yo’nalishning treys-diagnostikasi, 4) reliz/fich-bayroq orqaga qaytishi.
17) Joriy etish chek-varaqasi
1. Hodisalar/metrik/treyslar kontraktlari va yo’l qo’yiladigan yorliqlar ro’yxati tasdiqlansin.
2. QoS-sinflar, topiklar/navbatlar, kotirovkalar va byudjet metrikalari yaratish.
3. ingest (push/pull), TLS/mTLS, retray va idempotentlikni moslash.
4. Metrika/hodisa kataloglari va sxema linterlarini yoqish.
5. SLI/SLO, burn-rate alertlari va eskalatsiyalarini aniqlash.
6. Ops/Pipelines/Tenant/Security dashbordlarini qurish.
7. Telemetriya (yoʻqotish/jitter/payki) chaos-testlarini ishga tushirish.
8. Kardinallik, retensiya va saqlash narxini muntazam revizsiya qilib borsin.
18) Glossariy
QoS - yetkazib berish sifati/ustuvorligi darajasi.
Freshness - oynada ma’lumotlar paydo bo’lishining kechikishi.
Burn-rate - SLOga nisbatan xatolar byudjetini sarflash tezligi.
Cardinality - metriklarning noyob qatorlari (leybl-kombinatsiyalar) soni.
Tail-based sampling - «sekin/notoʻgʻri» trassirovkalarni tanlash.
Idempotency key - voqealarning takrorlanishini aniqlashning kalitidir.
Xulosa: signallar va metrikalarni taqsimlash shunchaki «jadvallarni yig’ish va ko’rsatish» emas, balki kontraktlar, QoS kanallari va byudjetlar intizomidir. Ushbu freymvorga amal qilgan holda, ekotizim portlashlarga chidamli, ma’lumotlarga chidamli va operatsion va biznes konturida yechimlar uchun foydali bo’ladi.