Siqnalların və metriklərin paylanması
(Bölmə: Ekosistem və Şəbəkə)
1) Məqsəd və sahə
Siqnalların və metriklərin paylanması bütün maraqlı iştirakçılara: operatorlara, məzmun provayderlərinə, ödəniş/KUS xidmətlərinə, körpülərə, şəbəkə qovşaqlarına, affiliatlara və SRE/BI/komandalarına telemetriya (hadisələr, metriklər, loglar, izlər, sağlamlıq statusları) toplamaq, normallaşdırmaq və çatdırmaq üçün razılaşdırılmış yoldur Compliance. Məqsədlər:- Vahid telemetriya dili və məlumat müqavilələri.
- Idarə olunan QoS kanalları: kritik siqnalların prioriteti.
- Şəffaf SLI/SLO və proqnozlaşdırıla bilən alertinq.
- Gizlilik, təcrid və büdcə qənaət metrik.
2) Siqnalların taksonomiyası
1. Biznes hadisələri: onbording, depozitlər/ödənişlər, oyun hadisələri, atributlar.
2. Tech Metrics: latency/throughput/səhv kodu, növbə, CPU/RAM/IO istifadə.
3. Qeydlər: əməliyyatlar və səhvlər haqqında strukturlaşdırılmış qeydlər.
4. Tracking: span sorğular/topics, hop-to-hop korrelyasiya.
5. Sağlamlıq vəziyyətləri: synthetic probes, readiness/liveness, heartbeat düyünləri.
6. Risk/uyğunluq siqnalları: KYC/KYB/AML hitləri, sanksiya hadisələri.
Hər sinifin öz kritik səviyyəsi və saxlama/çatdırılma siyasəti var.
3) Paylama arxitekturası (istinad)
Edge-kollektorlar (SDK/agentlər) → Ingress (HTTP/OTLP/gRPC/QUIC) → Şina (Kafka/Pulsar) → Emalçılar (stream-jobs) → Storage (TSDB üçün metrik, obyekt/sütun - üçün → Vitrinlər/daşbordlar/alertlər.
Multi-tenant: açarlarda namespace/tenant-id, fərdi quota/limits/ACL.
QoS seqmentasiyası: kritik (P0), vacib (P1), fon (P2).
Egress: abunəçilər (Ops/BI/Third-party) topik abunə və materialized views vasitəsilə.
4) Müqavilələr və sxemlər (hadisələr/metriklər/treyslər)
4. 1 Hadisələr (sadələşdirilmiş, 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)
Sabit etiketlərlə Gauge/Counter/Histogram (məhdud kardinallıq).
Identifikatorları: 'metric _ name {service, region, tenant, version, route}'.
Kodda p99 əvəzinə latentlik/ölçülər üçün histoqramlar.
4. 3 Treys
Məcburi sahələr: 'trace _ id', 'span _ id', 'parent _ id', 'service', 'peer', 'route', 'qos'.
Domenlər (consumer/producer) və şəbəkə hopları (relay/bridge) arasında linklər.
5) QoS və prioritetləşdirmə
P0 (kritik): ödənişlər/ödənişlər SLI, körpü/düyün statusu, burn-rate SLO → ciddi çatdırılma (acks, retries, idempotentlik), minimum vaxt.
P1 (vacib): məhsul hadisələri/əsas metriklər → SLO daxilində zəmanətli çatdırılma.
P2 (fon): ətraflı log, hata → best-effort, həddindən artıq yükləmə zamanı ləkələnə bilər.
Siyasətçilər: müxtəlif növbələr, prodüserlərə quota, backpressure, rate-limits, dedup 'idempotency _ key'.
6) Metriklərin kardinallığı və büdcəsi
6 etiket qaydası: metrika üçün 6-dan çox açar, sabit məna lüğətləri.
Kardinallıq ≤ 10k vaxt sıraları/metrika/tenant.
Sempling: izlər üçün head-/tail-based; downsampling metrik 10s → 1m → 5m → 1h.
Quotas: tentant və QoS sinfi üçün nöqtə/san və bayt/san limitləri.
Sxemlərin linteri: «partlayan» etiketli metrikləri (id, email, ip və s.) rədd edir.
7) Toplama və çatdırılma: push vs pull
Push (OTLP/StatsD/HTTP): çeviklik, mobil/edge-müştərilər, P0 kanalları.
Pull (Prometheus): daxili infrastruktur, proqnozlaşdırıla bilən hədəflər.
Hibrid: exporters → gateway → TSDB; regionlar üçün federated scrapes.
Nəqliyyat: QUIC/HTTP/2, sıxılma, batching, TLS/mTLS, jitter ilə retrailer.
8) SLI/SLO və alertinq
8. 1 Əsas SLI
Availability% end-point/şlüz,
kritik marşrutlar üzrə Latency p50/p95/p99,
Error-rate (5xx/timeout/abort),
Lastik Delivery lag, Queue depth,
Freshness vitrin (gecikmə ingest → serve).
8. 2 SLO nümunələri
P0 pipelines: Availability ≥ 99. 95%, p99 latency ≤ 400 мс, Delivery lag p95 ≤ 2 с.
P1: Availability ≥ 99. 9%, Freshness p95 ≤ 3 dəq.
P2: Freshness p95 ≤ 15 мин, no-page.
8. 3 Burn-rate alert (nümunə)
2 saatlıq pəncərə: 'error _ budget _ burn ≥ 2 ×' → peyc.
6 saatlıq pəncərə: 'error _ budget _ burn ≥ 1 ×' → peyc/eskalasiya.
'queue _ lag' və 'drop _ rate' P0 ilə birləşdirin.
9) Anbarlar və retensiyalar
TSDB metrik: yüksək tezlik - 7-14 gün; aqreqatlar - 6-12 ay.
Hadisələr/qeydlər: isti saxlama 7-30 gün, soyuq (obyekt) 6-24 ay.
Treys: 1-10% sampling; «yavaş/səhv» span (tail-based) saxlamaq.
PII və data subyektlərinin sorğuları üçün silinmə/redaksiya siyasəti.
10) Gizlilik, təhlükəsizlik və izolyasiya
PII-minimallaşdırma: sahələrin tokenizasiyası/təxəllüsləşdirilməsi, metriklərdə «xam» identifikatorların qadağan edilməsi.
mTLS/imza hadisələri, pinning açarları istehsalçıları.
ACL/ABAC mövzular/xidmətlər/tenantlar, write/read.
Tenant sandboxing: məntiqi/fiziki bölünmə, limitlər və rate-limit per tenant.
Audit trail: dəyişməz giriş/konfiqurasiya dəyişikliyi jurnalları.
11) Emal axını (stream jobs)
Enrich: normallaşma, geo/versiya/trafik sinfi.
Aggregate: pəncərələr 10s/1m/5m, histoqramlar, kvantil eskizləri.
Detect: anomaliyalar (EWMA/ESD), paylanma sürüklənməsi, növbə partlayışları.
Route: vitrinlərdə fan-out/alerters/veb-hook partnyorları.
Guard: «qırmızı düymə» - mənbə/mövzu üzrə throttling/kill-switch.
12) Daşbordlar (referens-maketlər)
Ops Core (saat/real vaxt): p95 latency, error-rate, delivery lag, queue depth, success-rate ingest.
Pipelines Health: freshness per pipeline, drop-rate, backpressure, burn-rate SLO.
Tenant Usage: sıra/san, bayt/san, kardinallıq, top-labels.
Security/Compliance: mTLS statusları, sona çatma açarları, giriş, PII redaksiyaları.
Business Lens: konvertasiya/ödənişlər/tex-metrlərin yanında SLI körpü.
13) Konfiqurasiya nümunələri
QoS sinifləri və limitləri (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 etiketlər (siyasət)
yaml metrics_policy:
allowed_labels: [service, route, code, region, tenant, version]
forbidden_labels: [user_id, email, ip, session_id]
max_label_value_count: 1000
Burn-rate alertləri
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) Məlumat sxemləri və sorğular
Metrik registr (kataloq)
sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);
Növbələr və gecikmə
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 kardinallığı
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) Proseslər və rollar
Telemetry Owner - sxemlər/siyasətlər/kvotalar, kardinallığa nəzarət.
SRE/Ops - SLO, risklər, insidentlər, miqyas.
Security/Compliance - açarlar, girişlər, PII, auditlər.
Product/BI - KPI vitrinləri, analitika, A/B-metrika.
Tenants (partnyorlar) - SDK-nın düzgün inteqrasiyası, müqavilələrə əməl olunması.
16) Playbook hadisələr
A. Kardinallığın partlaması
1. Avtomatik istehsal/metrika bloku, 2) «pis» etiketləri kəsin, 3) retro-aqreqasiya, 4) post-mortem və linter qaydaları.
B. Böyümə queue lag P0
1. prioriteti daxil edin, 2) partiyalar/konsumerləri genişləndirin, 3) P2 sampling müvəqqəti azaldın, 4) dar yerlərin təhlili.
C. düşmə Freshness vitrinlər
1. Ehtiyat konnektoruna keçin, 2) deqradasiya rejimini işə salın («son yekunlaşdırılmış»), 3) mənbə sahiblərinə məlumat verin.
D. metrik PII sızması
1. Dərhal axın bloklanması, 2) isti təbəqədə redaction, 3) DPO/Compliance bildirişi, 4) Lenter/SDK yeniləmə.
E. kütləvi 5xx/tracking səhvləri
1. Page, 2) sampling tail-based ↑ xətalar üçün, 3) kritik marşrutun treys-diaqnostikası, 4) relizin geri çəkilməsi/fiç bayrağı.
17) Giriş çek siyahısı
1. Hadisələrin/metriklərin/treyslərin müqavilələrini və icazə verilən etiketlərin siyahısını təsdiq edin.
2. QoS-siniflər, topiklər/növbələr, quotas və büdcə metrik başlayın.
3. ingest (push/pull), TLS/mTLS, retray və idempotentlik.
4. Metrik/hadisə kataloqlarını və sxem linterlərini daxil edin.
5. SLI/SLO, burn-rate alert və eskalasiya müəyyən edin.
6. Ops/Pipelines/Tenant/Security dashboard qurmaq.
7. Chaos telemetriya testlərini çalıştırın (itkilər/jitter/spikes).
8. Kardinallıq, retensiya və saxlama xərclərini mütəmadi olaraq reviziya edin.
18) Lüğət
QoS - keyfiyyət/prioritet çatdırılma sinfi.
Freshness - vitrində məlumatların görünməsinin gecikməsi.
Burn-rate - SLO ilə bağlı büdcə xərclərinin sürəti.
Cardinality - metriklərin unikal sıralarının sayı.
Tail-based sampling - «yavaş/səhv» izlərin seçimi.
Idempotency key - hadisələrin təkrarlanması üçün açardır.
Nəticə: siqnalların və metriklərin paylanması sadəcə «qrafikləri toplamaq və göstərmək» deyil, müqavilələrin, QoS kanallarının və büdcələrin intizamıdır. Bu çərçivəni izlədikdən sonra ekosistem həm əməliyyat, həm də biznes sxemindəki həllər üçün faydalı və məlumatlara qarşı davamlı proqnozlaşdırıla bilən görünürlük əldə edir.