GH GambleHub

Դիտարկումը 'լոգներ, մետրեր, հետքեր

Դիտարկումը 'լոգներ, մետրեր, հետքեր

1) Ինչո՞ ւ է դա անհրաժեշտ

Դիտողությունն այն է, որ համակարգը կարող է պատասխանել իր վիճակի վերաբերյալ չնախատեսված հարցերին։ Այն հիմնված է երեք հիմնական ազդանշանի վրա

Մետրիկները SLI/SLO-ի համար կոմպակտ ագրեգատներ են և ալերտինգը ախտանիշներով։

Հետքերը հարցումների պատճառահետևանքային շղթաներ են (end-to-end)։

Լոգները մանրամասն իրադարձություններ են հետաքննությունների և գործողությունների համար։

Նպատակը 'արագ RCA, ինդուկտիվ ալերտներ և կառավարվող կոմպոզիա error budget-ում։

2) Ճարտարապետության սկզբունքները

Միակ կոնտեքստը 'ամենուրեք մենք գնում ենք «trace _ id», «բանաձև _ id», «tenom _ id», «request _ id», «user _ agent», «client _ ip _ hash»։

Ստանդարտները ՝ OpenTelemetry (OTel) MSK/գործակալների համար, JSON-լոգարանների ձևաչափը (կանոնական, սխեմայով)։

Ախտանիշները> պատճառները 'ալերտիմը օգտագործողի ախտանիշներով (լատենտ/սխալ), ոչ թե CPU-ով։

Ազդանշանների կապը 'մետրից դեպի սպան (exemplars) նշված է հատուկ լույսերի մեջ' «trace _ id»։

Անվտանգությունն ու գաղտնիությունը 'PII-ի դիմակավորում լոգարաններում, ծածկագրում in transit/at rest, անփոփոխ ամսագրեր զբոսաշրջիկների համար։

Բազմաբնույթ 'անունների տարածությունների բաժանումը/2019/քաղաքական։

3) Ազդանշանների և սխեմաների տաքսոնոմիա

3. 1 Մետրիկա

RED (Rate, Errors, Duration) ծառայությունների և USE (Utilization, Saturation, Errors) համար ենթակառուցվածքի համար։

Типы: counter, gauge, histogram/summary. Լատենտության համար 'histogram ֆիքսված bucket' ami։

Exemplars: Հղում '«trace _ id» -ը հիստոգրամի «տաք» բիններում։

Մետրիկայի մինի-սխեման (տրամաբանություն)։ մոդել)։


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 Հետքեր

Span = վիրահատություն '«name», «start/end», «attributes», «events», «status»։

W3C Trace Exprest-ը փոխակերպման համար։

Սեմպլացիա 'հիմնական (head) + դինամիկ (tail) + «կարևորության» կանոնները (սխալներ, բարձր p95)։

3. 3 Լոգներ

Միայն կառուցվածքային JSON-ը։ մակարդակները ՝ DEBUG/IV/WARN/ERROR։

Պարտադիր դաշտերը ՝ «ts _ utc», «level», «windows», «trace _ id», «tenium _ id», «env», «region», «host», «labels +»։

Արգելվում է ՝ գաղտնիքներ, հոսանքներ, PAN, գաղտնաբառեր։ PII-ը միայն թունիզացված/դիմակավորված է։

Լոգարի տողի (JSON) օրինակ

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) Հավաքումը և տրանսպորտը

Express/Express (daemonset/sidecar) bufer է ռուսական անվադողերի/ingest (TMS/mTSA) վրա ռուսական ազդանշաններ։

Պահանջները ՝ back-pressure, retrai, deduplication, կարդինալության սահմանափակում (labels!), Պաշտպանություն «log storts» -ից։

Մետրիկները ՝ pox (Prometheus-միասին) կամ push OTLP-ի միջոցով։

Հետքերը ՝ OTLP/HTP (gRPC), tail-semplers կոլեկտորի վրա։

Լոգի 'տեղական հավաքումը (journald/docker/stdout) ռուսական պարսեր է։

5) Պահպանումը և վերականգնումը (tiered)

Մետրիկները ՝ տաք TSDB 7-30 օր (downsample-ից), ագրեգատները ավելի երկար ժամանակով (90-365 օր)։

Ուղիներ ՝ 1-7 օր լի է, ապա ագրեգատները/« կարևոր »ծառայություններից։ պահել ինդեքսները '0,5, «status», «error»։

Լոգի '7-14 օրվա տաք ինդեքսը, տաք 3-6 մեզ, արխիվը մինչև 1-7 տարեկան (կոմպլեքս)։ Աուդիտը WORM է։

Ծախսերի օպտիմիզացումը 'downsampling, DEBUG ֆիլտրը վաճառքում, պիտակների քվոտաները, հետքերի համար sampling։

6) SLI/SLO, alerting և հերթապահություն

SLI 'հասանելիությունը (հաջողակ հարցումների տոկոսը), լատենտությունը (p95/p99), 5xx-ի մասնաբաժինը, տվյալների թարմությունը, հաջողակ ջոյի մասնաբաժինը։

SLO 'SLI-ի նպատակը (օրինակ ՝ 99։ Հաջողության 9 տոկոսը 400 մզ է)։

Error budget: 0. 1% «սխալի իրավունքները» ֆիչֆրիզի/փորձերի կանոնները։

Ալերտինգը ախտանիշներով (օրինակ)

`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`.

Սիլոս Ալերտները (CPU/Prok) միայն որպես ֆուտբոլիստ, առանց paging։

7) Ազդանշանների հարաբերակցությունը

Փոխաբերությունը «կարմիր» է exemplar-ում հատուկ «trace _ id» է նայում «դանդաղ» սպանը, որը ցույց է տալիս նույն «trace _ id» -ի միջոցով։

Հաղորդագրությունների հարաբերակցությունը '«version», «image _ sha», «feature _ flag»։

Տվյալների համար/ETL: , «run _ id», կապը lineage հետ (տե՛ ս ռուսական հոդվածը)։

8) Սեմպլյացիան և կարդինալությունը

Պիտակները սահմանափակվում են պիտակներով (առանց «user _ id», «session _ id»); քվոտաներ/վալիդացիա գրանցման ժամանակ։

Հետքեր ՝ մենք փակցնում ենք head-sample (մուտքի) և tail-sample (կոլեկցիոների վրա) կանոններով. <<ամեն ինչ 5xx, p99, սխալները '100%>։

Լոգներ 'մակարդակներ և drosselling; հաճախակի կրկնվող սխալների համար 'համախմբող իրադարձություններ (deduae բանալին)։

Tail-sampling (հայեցակարգային, OTel Collector)։

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) Անվտանգությունն ու գաղտնիությունը

In Transit/At Rest: կոդավորումը (TFC 1։ 3, AEAD, KMS/HSM).

PII/գաղտնիքները 'altizers մինչև ուղարկումը, թունավորումը, դիմադրությունը։

Հասանելիություն 'ABAC/RBAC կարդալու համար; դերերի բաժանումը www.ers/readers/admins։

Աուդիտ 'անփոփոխ հասանելիության ամսագիր լոգարաններին/հետքերով։ արտահանումը ծածկագրված տեսքով է։

Բազմաբնույթ ՝ namespaces/tenault-labels քաղաքական գործիչների հետ։ մեկուսացում։

10) Միգրացիայի պրոֆիլները (բեկորները)

Prometheus (HTTP + alerting)

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)

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 MSK (կեղծ)

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

Ծրագրի լոգները (stdout JSON)

python log. info("gw_timeout", extra={"route":"/pay","code":502,"trace_id":get_trace_id()})

11) Տվյալները/ETL և սթրիմինգը

SLI տվյալների համար 'թարմ (max lag), ամբողջական (rows vs expectation), «որակ» (vailidators/duplicates)։

Alerta: wwwwinds պատուհաններ, condumer lag, DLQ աճը։

Հարաբերակցություն ՝ «run _ id», «contaset _ urn», lineage իրադարձությունները։ սլայնների համար ուղիներ (տեղադրված է batch/part.ru)։

Kafka/NATS: չափումներ արտադրողը/կոնսյումերը, լագը/մերժումը; headers-ի հետքերը (ներառյալ 'traceparent')։

12) Ավելացում և eBPF (ազդանշան)

CPU/alloc/IO ցածր մակարդակի տաք ճանապարհները։ ավելացրեցին պատահականության վրա։

EBPF-telemetria (ցանցային ուշացումներ, MSO, ռուսական զանգեր), որը կապված է «trace _ id »/PID-ի հետ։

13) Դիտարկման փորձարկումը

Ազդանշանների պայմանագիրը 'մեթրիկի/պիտակների/հիստոգրամի արտահանման ստուգումը CI-ում։

Inthetic probes: RUM/սիմուլյացված հաճախորդներ արտաքին SLI-ի համար։

Chaos/Fire medills: Կախվածության անջատումը, դեգրադացիան, մենք նայում ենք, թե ինչպես են ալերտները և հերթապահները արձագանքում։

Smoke-ը վաճառում է. Հետպատերազմյան ստուգում, որ նոր էնդպոինտները ունեն մետրեր և հետքեր։

14) Արժեքի և վերահսկման արժեքը

Ազդանշանի/թիմի բյուջեները; Դեշբորդ «cost per signal»։

Կարդինալիզմը բյուջեի տակ (SLO cardinality), նոր պիտակների սահմանները։

Downsampling, վերականգնումներ տվյալների դասարաններում, «սառը» արխիվները և WORM-ը։

15) Վիրահատություն և SLO դիտարկման պլատֆորմներ

SLO պլատֆորմները ՝ 99։ Հաջողակ ինգեստերի 9 տոկոսը։ ձգձգումը մինչև մետրիկի ինդեքսը 30 c, logs 242 րոպե, trass 361 մգ։

Պլատֆորմի ալտերտերը 'ինժեներական լագը, դրոպների աճը, ստորագրության/սխալը, ածխաջրածինների լցումը։

DR/HA 'բազմազանություն, կրկնօրինակում, գենդերային/կանոնների պահեստային պատճեններ։

16) Չեկ թերթերը

Մինչ վաճառքը

  • Ամենուրեք պտտվում է «trace _ id »/« բանաձև _ id»; JSON-լոգները սխեմայով։
  • RED/USE մետրերը գիստոգրամներով; exemplar ռուսական ուղին։
  • Tail-sampling ներառվում է; կանոնները 5xx/p99 = 100%։
  • Alerts ըստ ախտանիշների + runibuki; հանգիստ ժամացույց/anti-flap։
  • Altaizers PII; կոդավորումը at rest/in transit; WORM-ի համար։
  • Ռետենցիա և բյուջեներ ծավալների/կարդինալության համար։

Վիրահատություն

  • Ալերտերի ամսական ակնարկ (աղմուկ/ճշգրտություն), շեմերի թյունինգ։
  • Error budget-ի զեկույցը և ֆինանսական միջոցները (ֆիչֆրիզ, hardening)։
  • Dashbords/logs/հետքեր կրիտիկական ճանապարհների համար։
  • Դասավորություններ և թարմացումներ runbook 's.

17) Runbook’и

RCA 'p99/2019 աճը

1. Բացել dashbord RED-ը «www.kout» -ի համար։

2. Exemplar-ի միջով անցնելը բացատրվում է «նեղ սպան» (օրինակ ՝ «gateway»)։ call`).

3. Բացեք «trace _ id» -ի լոգները, որոնք ցույց են տալիս թայմաուտներ/ռետրաններ։

4. Միացրեք fich-դրոշը RPS-ի սահմանաչափը, տեղեկացրեք կախվածության սեփականատերերին։

5. Դեպքից հետո RCA-ն, օպտիմիզացման հյուսետները, վերարտադրման թեստը։

Անոմալիան տվյալների մեջ (lag MSH)

1. SLI-ն «թարմ» կարմիր գիծ է ջոբի ուղու համար։

2. Ստուգել բրոքեր/DLQ լագը, կոնեկտորի սխալները։

3. Սկսել reprocess, տեղեկացնել սպառողներին (BI/ապրանք) կարգավիճակի ալիքի միջոցով։

18) Հաճախակի սխալներ

Լոգները առանց սխեմայի և առանց «trace _ id»։ Հետազոտությունները մի քանի անգամ հետաձգվում են։

Ենթակառուցվածքի ալերտները ախտանիշների փոխարեն։ Paging-ը գնում է «կաթի մեջ»։

Անսահման կարդինալություն։ Ծախսերի պայթյունը և անկայունությունը։

Բոլոր ճանապարհները 100 տոկոսն են։ Թանկ և անհրաժեշտ չէ. միացրեք խելացի սերմնացանը։

PII/գաղտնիքները լոգարաններում։ Միացրեք Altaizers-ը և կարմիր ցուցակները։

«Լուռ» ֆիչին։ Նոր կոդը առանց մետրիկ/trass/logs։

19) FAQ

Իսկ արդյո՞ ք պետք է հում պահենք լոգարանների տեքստը։

Օ 'Այո, բայց վերականգնման և արխիվների հետ։ Ալերտների և SLO-ի համար բավականին ագրեգատներ կան։ Աուդիտը WORM-ում է։

Ի՞ նչ ընտրել ուղիների համար 'head կամ tail sampling։

Օ 'Համակցեք' head-probabilistic-ը հիմնավորման համար + tail-rules սխալների և անոմալիաների համար։

Ինչպե՞ ս կապել օգտագործողի մետրերը և տեխնիկան։

Օ 'Ընդհանուր «trace _ id» և բիզնես պիտակների միջոցով («rope», «tenault», «plan»), ինչպես նաև ապրանքի (փոխադարձության) իրադարձությունների միջոցով, որոնք կապված են ուղիների հետ։

Ինչպե՞ ս չթուլանալ ալերտներում։

Օ 'Բիթեն ըստ ախտանիշների, տեղադրեք հանգիստ ժամացույց, deduplication, խումբը, SLO-ի գերակայությունը և լռելյայն տերը յուրաքանչյուր ալերտի վրա։

Կապված նյութեր

«Աուդիտ և անփոփոխ ամսագրեր»

«In Transit/At Rest»

«Գաղտնիքների կառավարում»

«Տվյալների ծագումը (Lineage)»

«Privacy by Design (GDPR)»

«Վեբհուկի առաքման երաշխիքները»

Contact

Կապ հաստատեք մեզ հետ

Կապ հաստատեք մեզ հետ ցանկացած հարցի կամ աջակցության համար։Մենք միշտ պատրաստ ենք օգնել։

Սկսել ինտեգրացիան

Email-ը՝ պարտադիր է։ Telegram կամ WhatsApp — ըստ ցանկության։

Ձեր անունը ըստ ցանկության
Email ըստ ցանկության
Թեմա ըստ ցանկության
Նամակի բովանդակություն ըստ ցանկության
Telegram ըստ ցանկության
@
Եթե նշեք Telegram — մենք կպատասխանենք նաև այնտեղ՝ Email-ի дополнение-ով։
WhatsApp ըստ ցանկության
Ձևաչափ՝ երկրի կոդ և համար (օրինակ՝ +374XXXXXXXXX)։

Սեղմելով կոճակը՝ դուք համաձայնում եք տվյալների մշակման հետ։