GH GambleHub

Ենթակառուցվածքի իրականացումը

Ենթակառուցվածքի իրականացումը

1) Նպատակներն ու շրջանակները

Ենթակառուցվածքի իրականացումը ազդանշանների համակարգ է պլատֆորմի առողջության, արտադրողականության և հասանելիության մասին։ Նա պետք է

Նախազգուշացնել օգտագործողի ձախողումների մասին (վաղ դետեկտիվ)։

Ցույց տալ առաջինի ախտորոշումը (from pt.ru to cause)։

Աջակցել SLO-geiting and Auto-antates։

Կերակրել հետպատերազմյան վերլուծությունը (evidence as)։

Օժանդակ սկզբունքները ՝ Observable by design, ավելի քիչ աղմուկ 'ավելի շատ ազդանշաններ, ռեակցիաների ավտոմատացում, մեկ ճշմարտության վահանակ։

2) Դիտարկման եռյակը

Մետրիկները (timeseries) 'արագություն/պահանջարկ/սխալներ/հագեցում (USE/RED)։

Լոգներ 'իրադարձական մանրամասն համատեքստով։ չի պարունակում գաղտնիքներ/PII։

Թրեյզներ 'դասակարգված բողոքներ պատճառահետևանքային կապերի հետ։

Գումարած

Ավելացումը (CPU/heap/www.k/io), eBPF-ը մակարդակի բարձրացման համար։

Իրադարձություններ/աուդիտ (K8s Events, գենդերային/գաղտնիքների փոփոխություններ)։

3) SLI/SLO/SLA - որակի լեզուն

SLI (ցուցանիշը) ՝ «availability», «error _ rate», «p95 _ latency», «queue _ lag»։

SLO (նպատակը) '"հաջողակ հարցումներ թիվ 99։ 9 տոկոսը 30 օրվա ընթացքում"։

Error Budget 'թույլատրելի շեղում; օգտագործվում է ածխաջրածինների մեքենայի ոտքի համար։

SLO (YAML) օրինակը

yaml service: "api-gateway"
slis:
- name: success_rate query_good: sum(rate(http_requests_total{status!~"5.."}[5m]))
query_total: sum(rate(http_requests_total[5m]))
slo: 99. 9 window: 30d

4) Մոնիտորինգի շերտերի քարտեզը

1. Հանրակացարանները/VM/2019: CPU/Load/Steal, RAM/Swap, Drok IOPS/Latency, Disesystem։

2. / LB/RTT: RTT, փաթեթներ/drops, backlog, MSN/Timeout, health-probes։

3. Kubernetes/Orchestram: API սերվերը, etcd, վերահսկիչները, scheduler; pods/pending/evicted, throttling, kube events։

4. Ծառայություններ/բեռնարկղեր ՝ RED (Rate/Errors/Duration), readiness/liveness։

5. Տվյալների հիմքերը: QPS, wait, replation lag, buffer hit, slow queries։

6. Հերթեր/անվադողեր 'consumer lag, requeue/dead-letter, throughput։

7. S3/Blob սխալները և latency, 429/503 պրովայդերներից։

8. Պարագծի սահմանները ՝ WAF/Rate Limits, 4xx/5xx երթուղով, CDN։

9. Սինթետիկա 'HTTP ստուգումներ տերմինալ (դեպոզիտ/եզրակացություն), TSA/հավաստագրեր։

10. Տնտեսությունը/հզորությունը 'cost per per, utilization, headrope։

5) Whitebox и Blackbox

Whiteba.ru: WHK բաժնետերերը ծառայությունների ներսում (Prometheus, OpenTelemetry)։

Blackbox: արտաքին նմուշները տարբեր տարածաշրջաններից (availability, latency, TMS expiry)։

Ֆեդնիրու '«նշանը դրսում» + «ներսից ախտորոշում»։

«Blackbox _ exporter» -ի օրինակ

yaml modules:
https_2xx:
prober: http http:
method: GET preferred_ip_protocol: "ip4"

6) Kubernetes: հիմնական ազդանշաններ

Кластер: `apiserver_request_total`, `etcd_server_has_leader`, etcd fsync.
Узлы: `container_cpu_cfs_throttled_seconds_total`, `node_pressure`.

Պոդներ ՝ Pending/CroopBackOff, OOMKilled, restarts։

Պլաններ/լիմիտներ ՝ Requesensvs Limits, PodExpert Budget, HPA/SNA։

Ցանցը ՝ NetworkPolicy drops, contrack exhaustion։

Дашборды: «Cluster health», «Workload saturation», «Top erroring services».

7) BD և հերթերը

PostgreSQL/MySQL: replication lag, deadlocks, slow query %, checkpoint I/O.
Redis/Memcached: hit ratio, evictions, rejected connections.
Kafka/RabbitMQ: consumer lag, unacked, requeue, broker ISR, disk usage.

8) Metriks RED/USE և բիզնես հարաբերակցություն

RED: `rate` (RPS), `errors` (4xx/5xx), `duration` (p95/p99).

USE (ռեսուրսների համար) 'Utilization, Saturation, Errors։

Կապեք ապրանքի հետ 'դեպոզիտներ/վճարումներ հաջողություն, ֆրոդ դրոշներ, կոնվերսիաներ, դրանք «պահապաններ» են կանարյան խառնուրդում։

9) Ալերտինգի կառուցվածքը

Tier-1 (լանդշաֆտ) 'SLO-ի վրա ազդող միջադեպեր (հասանելիություն, 5xx, լատենտ, կլաստերային քննադատական բաղադրիչների մերժում)։

Tier-2 (tiket) 'տարաների քայքայումը, սխալների աճը առանց SLO ազդեցության։

Tier-3 (inform) 'միտումներ, նախատիպային կարողություններ, որոնք ավարտվում են հավաստագրերով։

Էսկալացիայի կանոնները 'լռության ժամանակը/կրկնօրինակների սեղմումը, on-call-ը, «follow-the-sun»։

Alertmanager routes-ի օրինակ

yaml route:
group_by: ["service","severity"]
receiver: "pager"
routes:
- match: { severity: "critical" }
receiver: "pager"
- match: { severity: "warning" }
receiver: "tickets"

10) Prometheus կանոնների օրինակներ

10. 1 Սխալներ 5xx c SLO-prom

yaml groups:
- name: api rules:
- alert: HighErrorRate expr:
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m])) > 0. 005 for: 10m labels: { severity: "critical", service: "api-gateway" }
annotations:
summary: "5xx > 0. 5% 10m"
runbook: "https://runbooks/api-gateway/5xx"

10. 2 Այրումը error-budget (multi-burn)

yaml
- alert: ErrorBudgetBurn expr:
(1 - (
sum(rate(http_requests_total{status!~"5.."}[1m])) /
sum(rate(http_requests_total[1m]))
)) > (1 - 0. 999) 14 for: 5m labels: { severity: "critical", slo: "99. 9" }
annotations: { summary: "Fast burn >14x for 5m" }

10. 3 Համակարգային հագուստ (CPU Throttling)

yaml
- alert: CPUThrottlingHigh expr: rate(container_cpu_cfs_throttled_seconds_total[5m]) > 0. 1 for: 10m labels: { severity: "warning" }
annotations: { summary: "CPU throttling >10%" }

11) Լոգի 'հավաքում, նորմալացում, ռենտենշն։

Ստանդարտացում ՝ JSON-logs: 'ts', «level», «www.ru», «trace _ id», «user/ten.ru»։

Propline: գործակալ (Fluent Bit/Vector) wwww.bufer ww.ind/պահեստ։

Խմբագրություն 'PII/գաղտնիքները եզրին։

Retenshn 'արագ պահպանման դասը (7-14 օր), «սառը» արխիվը (30-180 օր)։

Սեմանտիկան 'error budgets/դեպրեքսները առանձին ջրանցքներ են։

12) Թրեյսները և OpenTelemetry-ը

Օգտագործեք մուտքային կետերը (gateway), հաճախորդը նկարագրում է զանգերի ծառայությունը, BD/kashi/հերթը։

Կապեք փոխաբերությունները թրեյսի էքսպլարներին (Exemplars) արագ նավիգացիայի համար։

OTel Collector-ը որպես կենտրոնական նավակ 'ֆիլտրում, սեմպլինգ, էքսպորտը ընտրված բեկենդներում։

OTel Collector (հատված)։

yaml receivers: { otlp: { protocols: { http: {}, grpc: {} } } }
processors: { batch: {}, tail_sampling: { policies: [ { name: errors, type: status_code, status_codes: [ERROR] } ] } }
exporters: { prometheus: {}, otlp: { endpoint: "traces. sink:4317" } }
service:
pipelines:
metrics: { receivers: [otlp], processors: [batch], exporters: [prometheus] }
traces: { receivers: [otlp], processors: [tail_sampling,batch], exporters: [otlp] }

13) Սինթետիկ և արտաքին ստուգումներ

HTTP-փորձարկումներ բիզնես (լոգին, դեպոզիտ, եզրակացություն, գնումներ)։

TFC/Domain: հավաստագրերի/CAA/MSHealth։

Կայունություն 'փորձարկումներ հիմնական երկրներից/պրովայդերներից (միկրոօրգանիզացիա/բլոկային թերթեր)։

Սինթեզիկան պետք է ալտերի, եթե օգտագործողը անհասանելի է, նույնիսկ կանաչ ներքին հեռաչափության դեպքում։

14) Ավելացում և eBPF

Intinus profiling-ը 'տաք գործառույթների հայտնաբերումը, արգելափակումը։

EBPF: Ռուսական իրադարձություններ (wwww.scalls, TCP retransmits), նվազագույն overhead։

Պրոֆիլային ալերտները առանց ստրոնիզինգի (տիկետներ), իսկ ռեգրեսիայի համար, թողարկումից հետո, որպես արձագանքման ազդանշան։

15) Դաշբորդները և «ճշմարտության վահանակը»

Նվազագույն հավաքածու

1. Platform Overview: SLI/SLO հիմնական ծառայություններով, error-budget, ալերտներ։

2. API RED: RPS/ERRORS/DURATION երթուղիներով։

3. K8s Cluster: control-plane, узлы, capacity headroom.
4. DB/Cache: lag/locks/slow query %, hit ratio.

5. Queues: backlog/lag, ձախողված/կրկնվող։

6. Per-rele.ru: Համեմատել մետրը մինչև/հետո (kanareech պատուհաններ)։

7. FinOps: cost per namespace/service, idle/oversized ресурсы.

16) Պատահարներ, ալերտ աղմուկ և էսկալացիա

Deduplication: Ծառայության խմբավորում/պատճառով, կասկադների ճնշումը։

Tishina/maintena.ru: Alts/2019 չպետք է «ներկեն» ամեն ինչ կարմիր է։

Runbooks: Յուրաքանչյուր կրիտիկական ալերտ ախտորոշման քայլերով և «կոճակով»։

Postmortem: Timline, թե ինչ են սովորել, ինչ ազդանշաններ են ավելացրել/հարգել։

17) Անվտանգությունը մոնիտորինգի մեջ

RBAC կարդալու/կանոնների/ուղղության վրա։

Գաղտնիքները 'բաժնետերերի/գործակալների հոսքերը Secret Express-ի միջոցով։

Մեկուսացում 'հաճախորդների/տենանտների մետրերը' առանձին տարածություններում/պիտակում։

Ամբողջականությունը 'գործակալների/տոմսերի ստորագրումը, GitOps-ի միջոցով (մերջ-ռևե)։

18) Ֆինանսներ և հզորություն (FinOps)

Քվոտաներ և բյուջեներ; ալերտները աննորմալ աճի վրա։

Right-sizing: Հարցումների/սահմանների վերլուծություն, CPU/RAM հեռացում, spot-instans ոչ կրիտիկական խնդիրների համար։

«Cost per request/tenae» -ը որպես KPI արդյունավետություն։

19) Anti-patterna

Միայն ենթակառուցվածքային մետրերը առանց օգտագործողների SLI-ի։

100 + ալտեր «բոլորի մասին» կույր on-call է։

Լոգը միակ աղբյուրն է (առանց մետրի և թրեյսինգի)։

Մուտաբելային դաշբորդները առանց տարբերակման/ռևոյի։

Սինթետիկայի բացակայությունը '«բոլոր կանաչ», բայց ճակատը անհասանելի է։

Մասունքների հետ կապ չկա. Դուք չեք կարող պատասխանել «ինչ փոխվել է X-ի պահին»։

20) Ներդրման թուղթ (0-60 օր)

0-15 օր

Որոշեք SLI/SLO 3-5 հիմնական ծառայությունների համար։

Միացրեք հիմնական ակցիոնատորները/կոդերը, ստանդարտացնել JSON-լոգները։

Տեղադրել Tier-1 ալերտները (availability, 5xx, p95)։

16-30 օր

Ավելացնել սինթեզիկան կրիտիկական սցենարներով։

Միացրեք թրեյսները (OTel) մուտքային/քննադատական ծառայություններում։

Dashbords «Per-releae» և error-budget burn կանոնները։

31-60 օր

Ծածկել BD/հերթը/kash առաջադեմ ազդանշաններով։

Ներդրել eBPF/ավելացում high-CPU ծառայությունների համար։

GitOps-ը կանոնների/dashbords/alerts-ի համար, աղմուկի կամայական մաքրումը։

21) Հասունության մետրերը

SLO հիմնական ծառայությունների ծածկումը 95 տոկոսն է։

MTTA/MTTR (նպատակը ՝ րոպե/տասնյակ րոպե)։

Tier-1 ալերտների մասը, որոնք փակված են մեքենայական գործողությամբ կամ արագ արձագանքով։

«Օգտակար «/» աղմկոտ »ալերտների հարաբերությունը> 3:

Բոլոր «փողի» ճանապարհների սինթետիկ ծածկումը = 100 տոկոսը։

22) Ծրագրեր ՝ մինի ձևանմուշներ

Prometheus-ը դասարանների կարգավիճակի հասանելիությունն է

yaml
- record: job:http:availability:ratio_rate5m expr: sum(rate(http_requests_total{status!~"5.."}[5m])) / sum(rate(http_requests_total[5m]))

Grafana - կանանցների համար հուշում


expr: histogram_quantile(0. 95, sum(rate(http_request_duration_seconds_bucket{version=~"stable    canary"}[5m])) by (le,version))

Alertmanager - հերթապահություն և լռություն

yaml receivers:
- name: pager slack_configs:
- channel: "#oncall"
send_resolved: true inhibit_rules:
- source_match: { severity: "critical" }
target_match: { severity: "warning" }
equal: ["service"]

23) Եզրակացություն

Մոսկվան գծապատկերների հավաքածու չէ, այլ SNE վիրահատական համակարգը ՝ SLI/SLO, որպես որակի պայմանագիր, չափումներ/թրեյզներ/լոգներ որպես ճշմարտության աղբյուրներ, ալտերտերը, որպես կառավարվող ազդանշան, սինթեզիկան որպես «օգտագործողի ձայն», GitOps-ը որպես փոփոխությունների կարգապահություն։ Դուք կկառուցեք մեկ տերմինալ հոստից մինչև API-ը, տեղադրեք այն օրինագծերի և արձագանքների վրա, և պլատֆորմը կլինի կանխատեսելի, արագ և տնտեսական։

Contact

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

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

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

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

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

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