Վիրահատություններ և Alerta ձեռնարկության կառավարման համակարգեր
1) Ինչո՞ ւ է դա անհրաժեշտ
Մկանային ալերտները նախազգուշացնում են Ռուսաստանի սահմաններին մոտենալու մասին շատ առաջ. <<Մենք առաստաղից 80 տոկոսով, ժամանակն է մեծանալ>>։ Ապրանքային բիզնեսների համար դա ուղղակի փողի մասին է 'բաց թողնված տոկոսադրույքներ/ավանդներ, նստաշրջաններ, խաղերի ձգձգումներ և պրովայդերների մերժումներ = կորցրած եկամուտներ, հեղինակություն, տուգանքներ և տուգանքներ։
Նպատակները
Կանխատեսելիորեն դիմակայել պիցցային բեռներին (եբենտներ, կիսագնդեր, սթրիմներ, մեծ արշավներ)։
Միացրեք մեքենայի սկեյլինգը ժամանակին և պլանավորեք capacity uplift-ը։
Նվազեցնել աղմուկը և «գործի մեջ», երբ SLO/փողը վտանգում են։
Ինժեներներին ճշգրիտ առաջարկություններ տալ runbook-ի միջոցով։
2) Հիմնական հասկացությունները
Հզորությունը (Capacity) 'առավելագույն կայուն թողունակություն (RPS/TPS, կոննեկտներ, IOPS, throughput)։
Headrope-ը ընթացիկ բեռի և լիմիտների միջև է։
SLO/SLA 'միջին հասանելիության/արձագանքման ժամանակի մակարդակները; ալերտները պետք է լինեն SLO-aert։
Burn-rate: SLO-բյուջեի սխալների/լատենտության արագությունը։
High/Low Watermark: Վերին/ստորին մակարդակները աշխատանքի և մեքենայի վերականգնման համար։
3) Ազդանշանների ճարտարապետությունը և տվյալների աղբյուրները
Հեռուստացույց ՝ մետրիկներ (Prometheus/OTel), լոգներ (ELK/ClickHouse), հետքեր (OTel/Jaeger)։
Սլաքային մոտեցումը 'շերտերի ալտերտերը (Edge no API) ռուսական հերթերի/strims/BD/kashi-ի բիզնես ծառայություններն են։
Համատեքստը 'ֆիչեֆլագներ, օրինագծեր, մարքեթինգի քարոզարշավներ, մրցույթներ, գեո-դասավորություններ։
Դեպքը 'Alertmanager/PagerDuty/Opsgenie/Slack; կապում է runbook-ի և շարժասանդուղքների մատրիցի հետ։
4) Շերտերի հիմնական չափումները (ինչ վերահսկել և ինչու)
Edge / L7
RPS, 95-/99-պերցենտիլ latency, error rate (5xx/4xx), բաց connections։
Rate-limits/quotas, drops на CDN/WAF/Firewall.
API-шлюз / Backend-for-Frontend
Saturation/work-pula, հարցումների հերթը, timeouts-ը dounstriams-ին։
Քայքայման մասը (fallbacks, circuit-breakers)։
Հերթեր/Striming (Kafka/Rabbit/Pulsar)
Lag/consumer delay, backlog growth rate, throughput (msg/s, MB/s).
Parterskew, rebalancing churn, ISR (Kafka), retray/պապի լեյտեր։
Asinhrone workers
Առաջադրանքների սպասման ժամանակը, գծի երկարությունը, SLA-ի ժամկետանց խնդիրների տոկոսը։
Saturation CPU/Memory/FD գնդակների մոտ։
Քեշի (Redis/Memcached)
Hit ratio, latency, evictions, used memory, միացված հաճախորդները/ops/s։
Կլաստերներ 'արցունքներ/կրկնօրինակներ, failover events։
БД (PostgreSQL/MySQL/ClickHouse)
Active connections vs max, lock waits, replication lag, buffer/cache hit.
IOPS, read/write latency, checkpoint/flush, bloat/fragmentation.
Օբյեկտի/ալյումինի պահեստ
PUT/GET latency, 4xx/5xx, egress, հարցումներ/վայրկյան, պրովայդերի սահմանները։
Արտաքին պրովայդերներ (վճարումներ/KUS/պրովայդերներ)
TPS limits, QPS պատուհաններ, error rate/timeout, գետերի հերթը, «cost per call»։
Ենթակառուցվածքը
CPU/Memory/FD/IOPS/Network saturation հանգույցներում/ASG։
HPA/MSA իրադարձությունները, pending pods, OFC/Throttling բեռնարկղերը։
5) Էկրանի ալտերտերի տեսակները
1. Ստատիկ շեմեր
Պարզ և հասկանալի ՝ «db _ connections> 80% max»։ Լավ է որպես «ազդանշան-փարոս»։
2. Հարմարվողական (դինամիկ) շեմեր
Հիմնված են սեզոնայնության և տենդենցիայի վրա (rolling windows, STL-դեկպոզիցիա)։ Թույլ են տալիս բռնել «անսովոր բարձր այս ժամ/շաբաթվա օր»։
3. SLO կողմնորոշված (burn-rate)
Նրանք աշխատում են, երբ error-budget արագությունը կդնի SLO հարվածի տակ X ժամի հորիզոնում։
4. Պրոգնոստիկ (forecom-alerae)
«20 րոպե անց ներկայիս միտումով հերթը կհասնի 90 տոկոսին»։ Օգտագործվում են գծային/Robust/Prophet նման կանխատեսում կարճ պատուհանների վրա։
5. Բաղադրիչները (multi-signal)
Trigerration-ը համադրվում է '«queue _ lag no' +» consumer _ cpu 85% + + autoscaling at max '07 «անհրաժեշտ է ձեռքով միջամտություն»։
6) Շեմի քաղաքականությունները և հակա-աղմուկը
High/Low Watermark:- Վեր '70-75 տոկոսը, քրիտը 85-90 տոկոսը։ Ներքև 'histereae 5-10 p.p. Որպեսզի չփչացնեք շեմին։
Ժամանակավոր պատուհաններ և ճնշումներ
"for: 5m 'քննադատների համար," for: 10-15m "նախազգուշացման համար։ Night-mode: շփոթել ոչ ռիթմիկ չաթում առանց լանդշաֆտի։
Իրադարձությունների խմբավորումը
Խմբավորել ծառայության/կլաստերի/գեոյի միջոցով, որպեսզի չօգտագործեք քարտերը։
Dependency-aware suppression:- Եթե KYC-ի պրովայդերը դուրս է գալիս և API-ի սխալները հետևյալն են 'ընկերության սեփականատիրոջ լանդշաֆտը, ոչ բոլոր սպառողները։
Մարքեթինգի ժամանակավոր պատուհանները
Ակցիայի ժամանակ բարձրացրեք աղմուկի շեմերը «սպասվող աճի» համար, բայց թողեք SLO-alerta-ը անուղղակի։
7) Կանոնների օրինակներ (կեղծ-Prometheus)
BD կոննեկտներ
ALERT PostgresConnectionsHigh
IF (pg_stat_activity_active / pg_max_connections) > 0. 85
FOR 5m
LABELS {severity="critical", team="core-db"}
ANNOTATIONS {summary="Postgres connections >85%"}
Kafka lag + Auto-scailing սահմանով
ALERT StreamBacklogAtRisk
IF (kafka_consumer_lag > 5_000_000 AND rate(kafka_consumer_lag[5m]) > 50_000)
AND (hpa_desired_replicas == hpa_max_replicas)
FOR 10m
LABELS {severity="critical", team="streaming"}
Burn-rate SLO (API լատենտ)
ALERT ApiLatencySLOBurn
IF slo_latency_budget_burnrate{le="300ms"} > 4
FOR 15m
LABELS {severity="page", team="api"}
ANNOTATIONS {runbook="wiki://runbooks/api-latency"}
Redis հիշողությունը և էվիկշենը
ALERT RedisEvictions
IF rate(redis_evicted_keys_total[5m]) > 0
AND (redis_used_memory / redis_maxmemory) > 0. 8
FOR 5m
LABELS {severity="warning", team="caching"}
Վճարման պրովայդերը լիմիտներ են
ALERT PSPThroughputLimitNear
IF increase(psp_calls_total[10m]) > 0. 9 psp_rate_limit_window
FOR 5m
LABELS {severity="warning", team="payments", provider="PSP-X"}
8) SLO մոտեցումը և բիզնեսի գերակայությունը
Ազդանշանից բիզնեսի վրա ազդելու համար ալտերտերը պետք է հղում լինեն risk to SLO (կոնկրետ խաղեր/geo/metric GGR, դեպոզիտի փոխակերպում)։
Բազմազանություն 'նախազգուշացումներ on-call-ի համար։ Քրիտը տիրույթի սեփականատիրոջ բնապատկերն է։ SLO-նվազումը մաժորային դեպքն է և թիմային «համախմբված» ալիքը։
Դեգրադացիայի ֆիչեֆլագները 'ծանրության ավտոմատ նվազումը (մասնակի read-only, ծանր ֆիչի կրճատումը, ջեքպոտ-բրոդկաստների հաճախության նվազումը, «ծանր» անիմացիայի անջատումը խաղերում)։
9) Auto-scailing և «ճիշտ» ձգումներ
HPA/WPA: Target ոչ միայն CPU/Memory-ով, այլ նաև բիզնես մետրերով (RPS, queue lag, p99 latency)։
Warm-up timings: հաշվի առնել սառը մեկնարկը և պրովայդերի լիմիտները (ASG spin-up, բեռնարկղային տոմսեր, տաքացնելով քեշը)։
Guardrails: stop-պայմաններ սխալների լավատեսական աճի դեպքում։ պաշտպանություն «սայթաքում ենք խնդիրը»։
Capacity-playbooks: Որտեղ և ինչպես ավելացնել գնդակը/կուսակցությունը/կրկնօրինակը, ինչպես վերաբաշխել տարածքները։
10) Գործընթացը 'նախագծից մինչև շահագործումը
1. Լիմիտների քարտ 'հավաքել «իրական» bottleneck-limits յուրաքանչյուր շերտով (max conns, IOPS, TPS, sportas)։
2. Փոխաբերական-նախատիպերի ընտրությունը, թե ինչ ազդանշաններ են ցույց տալիս «համընկնում N րոպեների ընթացքում»։
3. Շեմերի դիզայնը 'high/low + SLO-burn + բաղադրիչները։
4. Runbook-ը յուրաքանչյուր քրիտի վրա 'ախտորոշման քայլերը («ինչ բացել», «ինչ թիմեր», «որտեղ ուղեկցել»), գործողությունների երեք տարբերակ' արագ շրջանցումը, մեծացումը, քայքայումը։
5. Փորձարկումը 'սիմվոլային բեռը (chaos/game days), Ալերտների «չոր գործարկումները», անտիի աղմուկի ստուգումը։
6. Նախանձը և որդեգրումը 'ազդանշանի սեփականատերը = շարժիչի սեփականատերը։ Առանց սեփականատիրոջ 'ոչ մի լանդշաֆտ։
7. Հետադարձ հայացք և թյունինգ ՝ շաբաթական վերլուծություն կեղծ/բաց թողնված։ «MTTA (ack), MTTD, MTTR, Medise/Signal ratio»։
11) Anti-patterna
CPU> 90% ռուսական խուճապի 'առանց latency/queues հարաբերության, դա կարող է նորմալ լինել։
«Մեկ շեմն բոլորի վրա», տարբեր տարածաշրջաններ/թայմ գոտիներ, տարբեր պրոֆիլներ։
Alert-ը առանց runbook-ի, առանց հստակ գործողությունների, ոչնչացնում է on-call-ը։
Կուրությունը պրովայդերների համար 'արտաքին քվոտաները/լիմիթները հաճախ առաջին անգամ «կոտրում են» սցենարները (PMS, KYC, հակաֆրոդ, խաղերի պրովայդերներ)։
Ոչ հիստերեզիս '«սղոց» 80 %/79 տոկոսը սահմանին։
12) iGaming/finplatform հատկությունները
Պիկի ժամանակացույցով '108 մ, մրցույթների ֆինալներ, մեծ խաղեր։ նախապես բարձրացնել կրկնօրինակները և լցնել քեշերը։
Մոսկվա-սթրիմ և ջեկպոտներ 'լայնաշերտ լիմիտներ բարձրացնելը բրոկերների/կայքերի վրա։
Վճարումները և KYC 'պրովայդերների պատուհանները, հակաֆրոդ սկորինգը։ պահել պահեստային երթուղիները և «grace-ռեժիմը» ավանդները։
Geo-հավասարակշռություն 'տեղական պրովայդերի ձախողումները' տեղափոխումը հարևան տարածաշրջանին, որտեղ կա headrome։
Պատասխանատվությունը 'պարտքերի/ջեքպոտների կորստի ռիսկի դեպքում' մետրոպոլիտենի թիմի ակնթարթային լանդշաֆտը + բիզնես ծանուցում։
13) Dashbords (նվազագույն հավաքածու)
Capacity Overview: headrope շերտերով, լավագույն 3 ռիսկային հատվածները, burn-rate SLO-ն։
Stream & Queues: lag, backlog growth, consumer saturation, HPA state.
DB & Cache: Կոնեկտներ, repl-lag, p95/p99 latency, hit ratio, evictions։
Providers: TPS/պատուհաններ/քվոտաներ, timeouts/errors, զանգերի արժեքը։
Releault/Feature ext: Alts/ficheflagy կորերի մոտ։
14) Ներդրման չեկի ցուցակ
- Մոսկվան «իրական» սահմաններ և տերեր է։
- Գծապատկերների քարտեզը + շերտերի միջև կապը։
- Ստատիկ շեմեր + հիստերե)։
- SLO-burn-alerts կրիտիկական ճանապարհների վրա (դեպոզիտ, տոկոսադրույքը, խաղի մեկնարկը)։
- Gropnostic alerts հերթում/strimes/connects։
- Suppression/mainten.ru պատուհանը; անտի աղմուկը։
- Runbook "և թիմերի, գրաֆիկների, դեգրադացիայի ֆենչիֆլագների հետ։
- Կեղծ գործի և թյունինգի շաբաթական վերլուծություն։
- Մարքեթինգային քարոզարշավների իրականացումը և լիվենտների օրացույցը։
15) runbook ձևանմուշների օրինակ (կրճատ)
Ազդանշան ՝ «StreamBacklogAtRisk»
Նպատակը 'թույլ չտալ, որ lag> 10 միլիոն աճը և վերամշակման հետաձգումը> 5 ռուբլիա
Ախտորոշումը (3-5 րոպե)
1. Ստուգել 'hpa _ desired/max ", throttle/ope-ում։
2. Տեսեք 'rate (lag)', կուսակցության բաշխումը (skew)։
3. Ստուգել բրոքերը (ISR, under replicated, network)։
Գործողությունները
Ավելացնել consumer-replicas + N, բարձրացնել max-in-flight։
Ներառել գերակայական փամփուշտը «կրիտիկական տոպիկների» վրա։
Ժամանակավորապես նվազեցնել հիբրիդային բուժման հաճախությունը/enrichae։
Եթե «ASG at max», խնդրեք produplift ամպից։ զուգահեռ 'ներառել ծանր գործառույթների քայքայումը։
Արձագանք 'վերադառնալ «սովորական պաշտպանություն» ժողովին' <1 միլիոն '15 րոպե հետո։
Էսկալացիա 'Kafka հյուրանոցների սեփականատերը, ապա PPE պլատֆորմը։
16) KPI-ն և ազդանշանների որակը
Coverage: կրիտիկական ճանապարհների տոկոսը, որոնք փակված են ողնաշարավոր ալերտներով։
Noise/Signal: ոչ ավելի քան 1 կեղծ լանդշաֆտ on-call/շաբաթ։
MTTD/MTTR-ի հետևանքները դեգրադացվում են SLO հարվածներից 5 րոպե առաջ։
Proactive saves: col-ը կանխված դեղամիջոցների մեջ (հետմորտեմներով)։
17) Արագ սկիզբը (պահպանողական դեֆոլտներ)
BD 'կոննեկտների 75 տոկոսը/IOPS/lat; Քրիտ 85%, histerement 8-10 p.p.
Քեշի '
Հերթեր ՝ «lag» աճ> 3.8 միջինից 30d + «hpa at max» - քրիտ։
API: `p99 > SLO1. 3 '10 րոպե' նախազգուշացում; "burn-rate> 4 '15 րոպե - քրիտ։
Պրովայդերներ ՝ «throughput> 90 տոկոսը քվոտայի» - նախազգուշացում, «timeouts> 5%» - քրիտ։
18) FAQ
Q 'Ինչո՞ ւ չօգտագործել պարզապես «CPU> 80%»։
A 'Առանց latency/հերթերի, դա աղմուկ է։ CPU-ն ինքնին ռիսկի չի։
Q 'Արդյո՞ ք հարմարվողական շեմեր են անհրաժեշտ։
Այո, ամենօրյա/շաբաթական սեզոնի համար նվազեցնում են կեղծ գործիքները։
Q 'Ինչպե՞ ս հաշվի առնել մարքեթինգը/ivents
A 'Քարոզարշավի օրացույցը գրաֆիկների վրա ճանաչվում է որպես հակատանկային աղմուկի ժամանակավոր օպտիկա, բայց SLO-alerts-ը չի հուզվում։