Сигналдар мен метриканы бөлу
(Бөлім: Экожүйе және Желі)
1) Мақсаты және саласы
Сигналдар мен метриктерді бөлу - бұл телеметрияны (оқиғалар, метриктер, логтер, трассировкалар, денсаулық мәртебелері) барлық мүдделі қатысушыларға: операторларға, контент провайдерлеріне, төлемдік/ҚҰС-сервистеріне, көпірлерге, желі тораптарына, SRE/BI/аффилиаттарына және командаларына жинаудың, қалыпқа келтірудің және жеткізудің келісілген тәсілі Compliance. Мақсаттары:- Телеметрияның бірыңғай тілі және деректер келісімшарттары.
- Басқарылатын QoS арналары: сындарлы сигналдардың басымдығы.
- Мөлдір SLI/SLO және болжамды алертинг.
- Жекешелендiру, оқшаулау және бюджеттi үнемдеу Өлшемдер.
2) Сигналдардың таксономиясы
1. Бизнес-оқиғалар: онбординг, депозиттер/төлемдер, ойын оқиғалары, атрибуция.
2. Техникалық өлшемдер: latency/throughput/қате коды, кезек, CPU/RAM/IO пайдалану.
3. Логи: операциялар мен қателер туралы құрылымдалған жазбалар.
4. Трассировкалар: сұраулар/топиктер, hop-to-hop корреляциясы.
5. Денсаулық мәртебесі: synthetic probes, readiness/liveness, heartbeat түйіндері.
6. Тәуекел/комплаенс сигналдары: KYC/KYB/AML хит, санкциялық оқиғалар.
Әрбір сыныптың өзінің сындылық деңгейі және сақтау/жеткізу саясаты бар.
3) Бөлу архитектурасы (референс)
Edge-коллекторлар (SDK/агенттер) → Ingress (HTTP/OTLP/gRPC/QUIC) → Шина (Kafka/Pulsar) → Өңдеушілер (stream-jobs) → Сақтау орындары (TSDB метриктер үшін, объектілік/баған - үшін → Сөрелер/дашбордтар/алерта.
Көп теңгерімділік: кілттердегі namespace/tenant-id, жеке quota/limits/ACL.
QoS бойынша сегментация: сыни (P0), маңызды (P1), фондық (P2).
Egress: жазылушылар (Ops/BI/Third-party) топиктер мен materialized views жазылымдары арқылы.
4) Келісімшарттар мен схемалар (оқиғалар/метрика/трейстер)
4. 1 оқиғалар (оңайлатылған, 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 өлшемдері (OpenMetrics/OTLP)
Тұрақты лейблдері бар Gauge/Counter/Histogram (шектелген түбегейлілік).
Идентификаторлар: 'metric _ name {service, region, tenant, version, route}'.
Кодтағы p99 орнына латенттілік/өлшемдерге арналған гистограммалар.
4. 3 Трейдерлер
Міндетті өрістер: 'trace _ id', 'span _ id', 'parent _ id', 'service', 'peer', 'route', 'qos'.
Домендер (consumer/producer) мен желілік хоптар (relay/bridge) арасындағы сілтемелер.
5) QoS және басымдылығы
P0 (критикалық): төлемдер/төлемдер SLI, көпірлер/тораптар мәртебесі, burn-rate SLO → қатаң жеткізу (acks, retries, теңсіздік), ең аз таймауттар.
P1 (маңызды): азық-түлік оқиғалар/негізгі өлшемдер → SLO шегінде кепілдендірілген жеткізу.
P2 (фон): егжей-тегжейлі логтар, баптау → best-effort, артық жүктеу кезінде шашуға болады.
Саясаткерлер: әр түрлі кезектер, продюсерлерге quota, backpressure, rate-limits, дедуп бойынша 'idempotency _ key'.
6) Метриканың түбегейлілігі және бюджеті
6-ереже: метрикаға 6 кілттен артық емес, белгіленген мағынадағы сөздіктер.
Түбегейлі ≤ 10k уақыт қатары/метрика/тенант.
Семплеу: трассалау үшін head-/tail-based; downsampling метрик 10s → 1m → 5m → 1h.
Quotas: тентантқа және QoS класына нүктелер/сек және байттар/сек лимиттері.
Сызбалар линтері: «жарылғыш» лейблдері бар метриктерді қабылдамайды (id, email, ip және т.б.).
7) Жинау және жеткізу: push vs pull
Push (OTLP/StatsD/HTTP): икемділік, мобильді/edge-клиенттер, P0 арналары.
Pull (Prometheus): ішкі инфрақұрылым, болжамды таргеттер.
Гибрид: exporters → gateway → TSDB; аймақтар үшін federated scrapes.
Көлік: QUIC/HTTP/2, компрессия, батчинг, TLS/mTLS, джиттермен ретра.
8) SLI/SLO және алертинг
8. 1 Негізгі SLI
Availability% эндпоинттер/шлюздер,
Критикалық бағыттар бойынша Latency p50/p95/p99,
Error-rate (5xx/timeout/abort),
Шина бойынша Delivery lag, Queue depth,
Freshness витриналар (ingest → serve кідірісі).
8. 2 SLO мысалдары
P0 pipelines: Availability ≥ 99. 95%, p99 latency ≤ 400 мс, Delivery lag p95 ≤ 2 с.
P1: Availability ≥ 99. 9%, Freshness p95 ≤ 3 мин.
P2: Freshness p95 ≤ 15 мин, no-page.
8. 3 Burn-rate алерта (мысал)
2 сағаттық терезе: 'error _ budget _ burn ≥ 2 ×' → пейдж.
6 сағаттық терезе: 'error _ budget _ burn ≥ 1 ×' → пейдж/эскалация.
'queue _ lag' және 'drop _ rate' P0.
9) Сақтау орындары мен ретенциялар
TSDB метрик: жоғары жиілікті - 7-14 күн; агрегаттар - 6-12 ай.
Оқиғалар/оқиғалар: ыстық сақтау орны 7-30 күн, суық (объектілік) 6-24 ай.
Трейдерлер: сэмплинг 1-10%; «баяу/қате» спандарды сақтау (tail-based).
PII және деректер субъектілерінің сұраулары үшін жою/редакциялау саясаты.
10) Жекелік, қауіпсіздік және оқшаулау
PII-минимизация: өрістерді токенизациялау/псевдонимизациялау, метрикадағы «шикі» сәйкестендіргіштерге тыйым салу.
mTLS/оқиға қолтаңбалары, продюсерлердің кілттерінің пиннингі.
Тақырыптарға арналған ACL/ABAC/сервистер/тенанттар, write/read үшін жеке кілттер.
Tenant sandboxing: логикалық/физикалық бөліну, лимиттер және rate-limit per tenant.
Audit trail: өзгертілмейтін қатынау/пішім өзгертулер журналы.
11) Өңдеу ағындары (stream jobs)
Enrich: қалыпқа келтіру, гео/нұсқа/трафик класы.
Aggregate: терезелер 10s/1m/5m, гистограммалар, квантильді нобайлар.
Detect: аномалиялар (EWMA/ESD), бөлу дрейфі, кезектердің жарылысы.
Route: витриналарға/алертерлерге/серіктестердің вебхоктарына фан-аут.
Guard: «қызыл түймешік» - көз/тақырып бойынша throttling/kill-switch.
12) Дашбордтар (референс-макеттер)
Ops Core (сағат/нақты-уақыт): p95 latency, error-rate, delivery lag, queue depth, success-rate ingest.
Pipelines Health: freshness per pipeline, drop-rate, backpressure, burn-rate SLO.
Tenant Usage: қатарлар/сек, байты/сек, түбегейлілік, top-labels.
Security/Compliance: mTLS мәртебесі, аяқталу кілті, қолжетімділік, PII редакциясы.
Business Lens: конверсия/төлемдер/техметрлердің жанында SLI көпірлері.
13) Конфигурация мысалдары
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
Метрик (саясат) лейблдері
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 алерттері
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) Деректер схемалары және сұрау салулар
Метриктер тіркелгісі (каталог)
sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);
Кезектер мен артта қалу
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;
Тентант бойынша түбегейлі
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) Процестер мен рөлдер
Telemetry Owner - схемалар/саясат/квоталар, түбегейлілікті бақылау.
SRE/Ops - SLO, тәуекелдер, оқиғалар, масштабтау.
Security/Compliance - кілттер, рұқсаттар, PII, аудиттер.
Product/BI - KPI, аналитика, A/B-метрика витриналары.
Tenants (серіктестер) - SDK дұрыс интеграциясы, келісімшарттарды сақтау.
16) Playbook оқиғалар
A. түбегейлі жарылысы
1. Продюсер/метриктің авто-блогы; 2) «нашар» лейблдерді кесіп тастаймыз; 3) ретро-агрегация; 4) пост-мортем және линтер-ережелер.
B. queue lag P0 өсуі
1. Басымдықты қосу; 2) партияларды/консьюмерлерді кеңейту; 3) P2 sampling уақытша төмендету; 4) тар орындарды талдау.
C. Freshness витриналарының құлауы
1. Резервтік коннекторға ауысу; 2) тозу режимін қосу («соңғы аяқталған»); 3) көздердің иелерін хабардар ету.
D. метрде PII ағуы
1. Ағынды дереу бұғаттау; 2) ыстық қабатта redaction; 3) DPO/Compliance хабарламасы; 4) таспаларды/SDK жаңарту.
E. Массалық 5хх/трассировка қателері
1. Пейдж, 2) сэмплинг tail-based ↑ қателер үшін; 3) критикалық маршрутты трейс-диагностикалау; 4) релизді/фича-жалауды қайтару.
17) Енгізу чек-парағы
1. Оқиғалар/метриктер/трейстер келісімшарттары және рұқсат етілетін лейблдер тізімі бекітілсін.
2. QoS-сыныптарын, топиктерді/кезектерді, quotas және бюджет метрикаларын құру.
3. ingest (push/pull), TLS/mTLS, ретра және іспеттілікті баптау.
4. Метрика/оқиға каталогтарын және схемалар линтерін қосу.
5. SLI/SLO, burn-rate алерты мен эскалациясын анықтау.
6. Ops/Pipelines/Tenant/Security дашбордтарын құру.
7. Телеметрия (жоғалту/джиттер/дәнекерлеу) chaos-тесттерін іске қосу.
8. Кардиналдылықты, ретенцияны және сақтау құнын үнемі тексеріп отыру.
18) Глоссарий
QoS - сапа сыныбы/жеткізу басымдығы.
Freshness - витринада деректердің пайда болуын кідірту.
Burn-rate - SLO-ға қатысты қателер бюджетін жұмсау жылдамдығы.
Cardinality - метрикалардың (лейбл-комбинацияларының) бірегей қатарларының саны.
Tail-based sampling - «баяу/қате» трассировкаларды таңдау.
Idempotency key - оқиғаның қайталануын қайталаудың кілті.
Қорытынды: сигналдар мен метриктерді бөлу - жай ғана «кестелерді жинау және көрсету» емес, келісім-шарттардың, QoS-арналар мен бюджеттердің тәртібі. Осы фреймворкқа сүйене отырып, экожүйе жарылысқа төзімді, деректерге жеке және операциялық және бизнес-контурдағы шешімдер үшін пайдалы болжамды бақылауға ие болады.