Syn edilişi: loglar, metrikler, yzarlamalar
Syn edilişi: loglar, metrikler, yzarlamalar
1) Bu näme üçin zerur?
Gözegçilik etmek - ulgamyň öz ýagdaýy barada meýilleşdirilmedik soraglara jogap bermek ukyby. Ol üç sany esasy signala esaslanýar:- Metrikler - SLI/SLO we alamatlar boýunça alerting üçin ykjam agregatlar.
- Yzarlamalar - haýyşlaryň sebäpler-netijeler zynjyry (end-to-end).
- Loglar - barlaglar we audit üçin jikme-jik wakalar.
Maksat: çalt RCA, öňüni alyş aladalary we error budget-iň çäginde dolandyrylýan ygtybarlylyk.
2) Binagärlik ýörelgeleri
Bir kontekst: hemme ýerde 'trace _ id', 'span _ id', 'tenant _ id', 'request _ id', 'user _ agent', 'client _ ip _ hash'.
Standartlar: SDK/agentler üçin OpenTelemetry (OTel), JSON-log formaty (kanoniki, shema bilen).
Alamatlar> sebäpler: CPU däl-de, ulanyjy alamatlary (gizlinlik/ýalňyşlyk) boýunça alertim.
Signallaryň baglanyşygy: metrikadan → spana (exemplars) → anyk loglere 'trace _ id'.
Howpsuzlyk we gizlinlik: PII-ni ýazgylarda gizlemek, in transit/at rest şifrlemek, audit üçin üýtgemeýän magazinesurnallar.
Köp kärende: atlaryň/açarlaryň/syýasatlaryň giňişliklerini bölmek.
3) Signallaryň taksonomiýasy we shemalary
3. 1 Metrikler
Hyzmatlar üçin RED (Rate, Errors, Duration) we infrastruktura üçin USE (Utilization, Saturation, Errors).
Типы: counter, gauge, histogram/summary. Latentlik üçin - bucket's sabit histogram.
Exemplars: "gyzgyn" gistogramma bölümlerinde 'trace _ id' baglanyşygy.
name: http_server_duration_seconds labels: {service, route, method, code, tenant}
type: histogram buckets: [0. 01, 0. 025, 0. 05, 0. 1, 0. 25, 0. 5, 1, 2, 5]
exemplar: trace_id
3. 2 Yzarlamalar
Span = 'name', 'start/end', 'attributes', 'events', 'status' bilen amal.
Çydamlylyk üçin W3C Trace Context.
Sample: esasy (head) + dinamiki (tail) + "möhüm" düzgünler (ýalňyşlyklar, ýokary p95).
3. 3 Bloglar
Diňe gurluşly JSON; derejeler: DEBUG/INFO/WARN/ERROR.
Hökmany meýdanlar: 'ts _ utc', 'level', 'message', 'trace _ id', 'span _ id', 'tenant _ id', 'env', 'service', 'region', 'host', 'labels {}'.
Gadagan: syrlar, bellikler, PAN-lar, parollar. PII - diňe bellikli/gizlenen.
json
{"ts":"2025-10-31T12:05:42. 123Z","level":"ERROR","service":"checkout","env":"prod",
"trace_id":"c03c...","span_id":"9ab1...","tenant_id":"t-42","route":"/pay",
"code":502,"msg":"payment gateway timeout","retry":true}
4) Ýygnamak we ulag
Agentler/eksportçylar (daemonset/sidecar) → düwündäki bufer → teker/ingest (TLS/mTLS) → signallary saklamak.
Talaplar: back-pressure, retrailer, de-duplikasiýa, kardinallygy çäklendirmek (labels!), "log storms" -dan goramak.
Metrikler: pull (Prometheus-gabat gelýär) ýa-da OTLP arkaly push.
Yzarlamalar: OTLP/HTTP (gRPC), kollektordaky tail-samplerler.
Logy: lokal ýygnamak (journald/docker/stdout) → parser → normalizator.
5) Saklamak we retensiýa (tiered)
Metrikler: gyzgyn TSDB 7-30 gün (downsample bilen), agregatlar has uzak wagtlap (90-365 gün).
Yşyklandyryş: 1-7 gün doly, soňra "möhüm" hyzmatlaryň aggregatlary/spanlary; indeksleri 'service', 'status', 'error' boýunça saklamak.
Logi: gyzgyn indeks 7-14 gün, ýyly 3-6 aý, arhiw 1-7 ýyla çenli (complayens). Audit - WORM.
Çykdajylary optimizirlemek: downsampling, önümdäki DEBUG süzgüçleri, bellikler üçin kwotalar, ýollar üçin sampling.
6) SLI/SLO, alerting we nobatçylyk
SLI: elýeterlilik (üstünlikli haýyşlaryň%), gizlinlik (p95/p99), 5xx paýy, maglumatlaryň täzeligi, üstünlikli job paýy.
SLO: SLI-de maksat (mysal üçin 99. 9% üstünlikli ≤ 400 ms).
Error budget: 0. % 1 "ýalňyşlyk hukugy" → fiçfriz/synag düzgünleri.
- `ALERT HighLatency` если `p99(http_server_duration_seconds{route="/pay"}) > 1s` 5мин.
- `ALERT ErrorRate` если `rate(http_requests_total{code=~"5.."}[5m]) / rate(http_requests_total[5m]) > 0. 02`.
- Silos-alertler (CPU/Disk) - paging bolmazdan, diňe kömekçi hökmünde.
7) Signallaryň baglanyşygy
"Gyzyl" metrika → exemplara basýarys → anyk 'trace _ id' → "haýal" spana seredýäris → şol 'trace _ id' -de loglary açýarys.
Relizler bilen baglanyşyk: 'version', 'image _ sha', 'feature _ flag' atributlary.
Maglumat/ETL üçin: 'dataset _ urn', 'run _ id', lineage bilen baglanyşyk (degişli makala serediň).
8) Semplemek we kardinallyk
Metrikler: bellikleri çäklendirýäris ('user _ id', 'session _ id'); hasaba alnanda kwotalar/tassyklama.
Yzarlamalar: baş-sample (girelgede) we tail-sample (kollektorda) düzgünleri bilen birleşdirýäris: "5xx, p99, ýalňyşlyklar - 100%".
Loglar: derejeler we drossellemek; ýygy-ýygydan gaýtalanýan ýalňyşlyklar üçin - jemleýji wakalar (dedupe açary).
yaml processors:
tailsampling:
decision_wait: 2s policies:
- type: status_code status_code: ERROR rate_allocation: 1. 0
- type: latency threshold_ms: 900 rate_allocation: 1. 0
- type: probabilistic hash_seed: 42 sampling_percentage: 10
9) Howpsuzlyk we gizlinlik
In Transit/At Rest: şifrlemek (TLS 1. 3, AEAD, KMS/HSM).
PII/syrlar: iberilmezden öň arassalaýjylar, bellik etmek, gizlemek.
Giriş: Okamak üçin ABAC/RBAC; rollary bölmek producers/readers/admins.
Audit: ýazgylara/ýollara girmegiň üýtgemeýän sanawy; eksport - şifrlenen görnüşde.
Köp kärende: syýasatçylar bilen namespaces/tenant-labels; şifrlemek açarlaryny izolirlemek.
10) Konfigurasiýa profilleri (bölekler)
Prometheus (HTTP + alerting metrikleri):yaml global: { scrape_interval: 15s, evaluation_interval: 30s }
scrape_configs:
- job_name: 'app'
static_configs: [{ targets: ['app-1:8080','app-2:8080'] }]
rule_files: ['slo. rules. yaml']
slo. rules. yaml (RED mysaly):
yaml groups:
- name: http_slo rules:
- record: job:http_request_duration_seconds:p99 expr: histogram_quantile(0. 99, sum(rate(http_server_duration_seconds_bucket[5m])) by (le,route))
- alert: HighLatencyP99 expr: job:http_request_duration_seconds:p99{route="/pay"} > 1 for: 5m
OpenTelemetry SDK (psevdokod):
python provider = TracerProvider(resource=Resource. create({"service. name":"checkout","service. version":"1. 8. 3"}))
provider. add_span_processor(BatchSpanProcessor(OTLPExporter(endpoint="otel-collector:4317")))
set_tracer_provider(provider)
with tracer. start_as_current_span("pay", attributes={"route":"/pay","tenant":"t-42"}):
business logic pass
Programma ýazgylary (stdout JSON):
python log. info("gw_timeout", extra={"route":"/pay","code":502,"trace_id":get_trace_id()})
11) Maglumatlar/ETL we akym
Maglumatlar üçin SLI: täzelik (max lag), doly (rows vs expectation), "hil" (walidatorlar/duplikatlar).
Alertler: penjireden geçmek, konsumer yzy, DLQ beýikligi.
Baglanyşyk: 'run _ id', 'dataset _ urn', lineage wakalary; payplayns üçin yzarlamalar (batch/partition üçin span).
Kafka/NATS: metrikler prodýuser/konsumer, lag/ret; headers boýunça yzarlamalar (şol sanda 'traceparent').
12) Profillemek we eBPF (goşmaça signal)
Pes derejeli gyzgyn ýollar CPU/alloc/IO; Wakanyň profilleri.
eBPF-telemetriýa (tor gijikdirmeleri, DNS, ulgam jaňlary) 'trace _ id '/PID bilen baglanyşdyrylýar.
13) Synlanylyşy barlamak
Signallaryň şertnamasy: CI-e metrikleriň/bellikleriň/gistogrammalaryň eksportyny barlamak.
Synthetic probes: RUM ssenarileri/daşarky SLI üçin simulirlenen müşderiler.
Chaos/Fire drills: endikleriň öçürilmegi, pese gaçmagy - aladalaryň we nobatçylaryň nähili reaksiýa görkezýändigine seredýäris.
Önümdäki smoke: Täze endpointleriň metrikleriniň we yzarlamalarynyň barlanmagyndan soňky barlag.
14) Çykdajy we göwrümlere gözegçilik
Signal/buýruk boýunça býujetler; dashboard "cost per signal".
Býudjetiň aşagyndaky kardinallyk (cardinality SLO), täze belliklere çäklendirmeler.
Downsampling, maglumat synplary, "sowuk" arhiwler we audit üçin WORM.
15) Gözegçilik platformasynyň işleýşi we SLO
SLO platformalary: 99. 9% üstünlikli ingestler; metrikler indeksine çenli gijä galmak ≤ 30 s, log ≤ 2 minut, ýol ≤ 1 minut.
Platformanyň aladalary: lag injest, damjalaryň ösüşi, gol/şifrlemek ýalňyşlygy, buferleriň aşa köp bolmagy.
DR/HA: köp zolakly, köpeldilen, konfigurasiýalaryň/düzgünleriň ätiýaçlyk nusgalary.
16) Çek-listler
Önümden öň:- Hemme ýerde 'trace _ id '/' span _ id'; JSON-logi shema bilen.
- Histogramlar bilen RED/USE metrikleri; exemplar → trassalar.
- Tail-sampling goşuldy; düzgünler 5xx/p99 = 100%.
- Alamatlar boýunça alertler + Runibuki; asuda sagat/anti-flap.
- PII sanitizatorlary; şifrlemek at rest/in transit; Audit üçin WORM.
- Göwrümler/kardinallyk üçin retensler we býudjetler.
- Alertleriň her aýda gözden geçirilmegi (ses/takyklyk), bosagalaryň sazlanmagy.
- Error budget boýunça hasabat we görülýän çäreler (fiçfriz, hardening).
- Möhüm ýollar üçin daşbordlaryň/çukurlaryň/ýollaryň örtüklerini barlamak.
- Okuw hadysalary we runbook täzelenmeleri.
17) Runbook’и
RCA: p99/pay
1. 'checkout' üçin RED dashboard açyň.
2. exemplar → haýal ýol → "dar span" (mysal üçin, 'gateway. call`).
3. 'trace _ id' → arkaly loglary aç
4. Yza gaýdyp geliş fiç baýdagyny/RPS çägini açyň, garaşlylygyň eýelerine habar beriň.
5. Durnuklaşandan soň - RCA, optimizasiýa biletleri, oýnamak synagy.
1. SLI "täzelik" Gyzyl → Job ýollary → Falling ädim.
2. Broker/DLQ, konnektor ýalňyşlyklaryny barla.
3. Status kanaly arkaly sarp edijilere (BI/önüm) habar bermek üçin reprocess-i başla.
18) Ýygy-ýygydan ýalňyşlyklar
Diagrammasyz we 'trace _ id' -siz girişler. Derňewler birnäçe gezek yza süýşürilýär.
Alamatlaryň ýerine infrastruktura aladalary. Paging "süýte" gidýär.
Metrikleriň çäksiz kardinallygy. Çykdajylaryň partlamasy we durnuksyzlyk.
Ähli ýollar 100%. Gymmat we gerek däl; akylly semplemegi açyň.
PII/syr ýazgylarda. Arassalaýjylary we "gyzyl sanawlary" goşuň.
"Dilsiz" çitler. Metriksiz täze kod.
19) FAQ
S: Loglaryň çig tekstini saklamak zerurmy?
O: Hawa, ýöne retensiýa we arhiwler bilen; alertler we SLO üçin ýeterlik agregatlar bar. Audit - WORM-de.
S: Ýollar üçin näme saýlamaly - head ýa-da tail sampling?
O: Kombinasiýa: esasy örtük üçin head-probabilistic + ýalňyşlyklar we anomaliýalar üçin tail-rules.
S: Ulanyjy metrikleri we tehniki ölçegleri nädip baglanyşdyrmaly?
O: Umumy 'trace _ id' we iş bellikleri ('route', 'tenant', 'plan'), şeýle hem önümiň wakalary (öwrülişikleri) arkaly ýollara baglanyşyk.
S: Alertlerde nädip gark bolmaly däl?
A: Alamatlara görä uruň, asuda sagatlary, duplikasiýany, toparlanmagy, SLO-nyň ileri tutulmagyny we her bir alert üçin standart eýesini giriziň.
- "Audit we üýtgemeýän žurnallar"
- "In Transit/At Rest şifrlemek"
- "Syr dolandyryşy"
- "Maglumatlaryň gelip çykyşy (Lineage)"
- «Privacy by Design (GDPR)»
- "Webhuklary eltmegiň kepillikleri"