Мушоҳидакорӣ аз интихоби интихоб
1) Чаро мушоҳидакорӣ
Мушоҳида (O11y) ба се савол ҷавоб медиҳад: чӣ рӯй дода истодааст, чаро, чӣ гуна онро ислоҳ кардан мумкин аст. Он ба 4 сигнал такя мекунад:- Ченакҳо (агрегатҳо, зуд вокуниш нишон медиҳанд);
- Гузоришҳо (тафсилот ва криминалистика);
- Нишонаҳо (муносибатҳои байнисоҳавӣ-натиҷа);
- Профилҳо (ихтилофи CPU/heap/қулф дар ҳолати prod).
Калид: таносуби байни сигналҳо + иқтисодиёти телеметрӣ (интихоб, нигоҳдорӣ, фишурдасозӣ).
2) Харитаи сигнал ва принсипҳо
2. 1 RED/ИСТИФОДА
RED (барои API): Меъёри (RPS), Хатогиҳо (% 5xx/4xx муҳим), Давомнокӣ (p50/p95/p99).
ИСТИФОДА (барои захираҳо): Истифодабарӣ, қаноатмандӣ, хатогиҳо (NIC, CPU, диск, навбатҳо).
2. 2 Инвариантҳои маҳсулот
SLO-ро муайян кунед (масалан, "p95 latency '/v1/payments '≤ 300 мм, буҷети хато 0. 5% дар 30 рӯз"). Огоҳиҳо бояд "фарёд зананд" танҳо вақте ки SLO вайрон ё сӯзонда мешавад.
2. 3 Контекст
Татбиқи контексти W3C Trace ('traceparent', 'tracestate') ва бағоҷ барои интиқоли боэътимоди ин/хусусиятҳои тиҷорӣ (масалан, 'иҷорагир', 'минтақа', PII нест).
3) Меъмории мушоҳида
SDK/auto-instrumentation: Open
OTEel Collector ҳамчун автобус: қабули → ғанисозӣ → интихоб кардан → содирот (Prometheus, Tempo/Jaeger, Loki/ELK, Click 'House).
Захираҳо:- Нишондиҳандаҳо: Прометей/Мимир/Виктория Метрика;
- Роҳҳо: Tempo/Jaeger/Zipkin;
- Гузоришҳо: Нигоҳдории Loki/ELK/Vector → S3 + deshevoye;
- Профилҳо: Пироскоп/Парка.
- Таносуб: графикаи хидматӣ, намунаҳо, гузариш аз графикаи p99 ба пайгирии мушаххас.
4) Пайгирии интихоб: Стратегияҳо
4. 1 Интихоби сарлавҳа
Татбиқи оддӣ ва арзон (дар SDK/ingress).
Омӯз: Мумкин аст хатогиҳои нодир/дархостҳои сустро пазмон шавед.
Вақте ки: RPS-и баланд, буҷаҳои қатъӣ, ҳиссаи пешбинишаванда лозим аст (масалан, 1-5%).
4. 2 Интихоби дум
Қарор дар Коллектор пас аз ба охир расидани мӯҳлат қабул карда мешавад.
Интихоби аномалияҳоро кафолат додан мумкин аст: хатогиҳо, p99, масирҳои мушаххас/иҷорагирон.
Омӯз: буферӣ, сахттар ва гаронтар.
Вақте: роҳҳои "пурмазмун" бо нархи миёна лозиманд.
4. 3 Модели омехта
Сарвари ҷаҳонӣ 1-5% ва қоидаҳои думи: "ҳамеша хатогиҳо/фосилаҳои сустро захира кунед", "намунаи 50% трафики канарӣ", "ҳама нишонаҳои роҳҳои пардохтро дар ҳодиса сарфа кунед".
5) Буҷаи динамикӣ ва телеметрия
Аз буҷа огоҳ бошед: ҳаҷмро нигоҳ доред ≤ N роҳҳо/дақиқа; агар аз ҳад зиёд бошад, ҳадди ниҳоиро баланд кунед (масалан, танҳо p99-ро интихоб кунед). 5 +, танҳо хатогӣ).
Қоидаҳои масир/иҷорагир: нуқтаҳои муҳим/иҷорагирон - бо ҳиссаи бештар.
Тирезаҳои мутобиқшавӣ: пардаҳо → муваққатан хатогӣ/суръати сустро зиёд мекунанд.
Паст кардани кардинал: мӯътадил кардани корбар-агент, IP/ASN, пайҳои стек-помидор, сирри ниқоб.
6) Конфигуратсияҳо (истинодҳо)
6. 1 Коллектори Open-Telemetry - интихоби думҳо (ямл-порча)
yaml receivers:
otlp: { protocols: { http: {}, grpc: {} } }
processors:
batch: { send_batch_size: 8192, timeout: 2s }
tail_sampling:
decision_wait: 5s num_traces: 100000 expected_new_traces_per_sec: 5000 policies:
- name: always-error type: status_code status_code: { status_codes: [ERROR] }
- name: slow-endpoints type: latency latency: { threshold_ms: 300 } # p95 цель
- name: important-routes type: string_attribute string_attribute: { key: http. target, values: ["/v1/payments", "/v1/payouts"] }
- name: tenant-eu1 type: string_attribute string_attribute: { key: tenant, values: ["eu-1"] }
- name: probabilistic-default type: probabilistic probabilistic: { sampling_percentage: 5. 0 }
exporters:
otlphttp/tempo: { endpoint: http://tempo:4318 }
prometheus: { endpoint: "0. 0. 0. 0:9464" }
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch, tail_sampling]
exporters: [otlphttp/tempo]
6. 2 Прометей - намунаҳо (порча)
Дар барнома, ҳангоми сабти гистограмма, намунаҳоро бо 'trace _ id' илова кунед. Дар Графана кликҳо ба "сӯзанҳо" ба пайгирӣ оварда мерасонанд.
yaml scrape_configs:
- job_name: api scrape_interval: 10s honor_labels: true static_configs: [{ targets: ["api:9100"] }]
exemplar_limit: 10
6. 3 Loki - коҳиш додани арзиши гузоришҳо
Тамғакоғазҳо танҳо устувор мебошанд ('хидмат', 'env', 'минтақа', 'route _ class').
Кардиналии баланд (request_id, user_id) - дар сарборӣ, вале бо сурхшавӣ.
Намунаи маълумоти "бомуваффақият", ҳама гуна хатогиҳо/огоҳиҳоро захира кунед.
6. 4 Jaeger/Tempo - нигоҳдорӣ ва индексатсия
Роҳҳои хомро дар тӯли 3-7 рӯз нигоҳ доред, агрегатҳо/симметрияҳоро ба муддати тӯлонӣ нигоҳ доред.
Паркет/блокҳоро дар нигаҳдории арзон (S3-мувофиқ) фаъол кунед, индексатсияҳо зич мебошанд.
7) Моделиронии пайгирӣ
7. 1 Номгузорӣ ва сифатҳо
'service. ном ',' хидмат. версияи ',' ҷойгиркунӣ. муҳит '.
'http. усули ',' http. масир ',' http. ҳадаф ',' http. status_code', 'холис. ҳамсолон. ном '.
Хусусиятҳои тиҷорат бидуни PII: 'иҷорагир', 'минтақа', 'пардохт _ провайдер', 'game _ id'.
7. 2 Ҳодисаҳо ва робитаҳо
Чорабиниҳои даврӣ: нуқтаҳои муҳим (оғози амалиёти DB, бозсозӣ, кушодани ноҳиявӣ, пазмони кэш).
Истинодҳо: zapros → vebkhuk/sobytiye муошират; барои EDA ва outbox/паёмдони муфид муфид аст.
7. 3 Мисолҳо
Мисолҳоро бо 'trace _ id' ба гистограммаҳои ниҳонӣ/андоза илова кунед: паймоиш аз → пайгирӣ то пайгирии метрика дар як клик.
8) Нишондиҳандаҳо: чӣ ва чӣ тавр
8. 1 Техникӣ
RED бо масир/иҷорагир/провайдер (PSP, KYC).
Пулы: 'db _ connections _ in _ use', 'http _ client _ in _ flight', 'queue _ depth'.
Стабилизатсия: такрорӣ, танаффус, гардиши кушода/нисфи кушода, хитҳои маҳдудкунанда.
Вақти кории Go/Java/Python: таваққуфи GC, теппа, бехатарӣ, таъхири GIL.
8. 2 Нишондиҳандаҳои корӣ
Бақайдгирӣ/воридшавӣ/амонатҳо/хулосаҳо, табдилдиҳӣ, нокомӣ 3DS/KYC, таносуби пардохт.
Хусусиятҳои муҳим: вақт ба ҳамён, пардохти сатҳи муваффақият.
8. 3 Кардинал ва нигаҳдорӣ
Гистограмма бо сатилҳои возеҳ (масалан, '[50,100,200,300,500,1000,2000] ms').
Аз нишонаҳо бо кардинали баланд (user_id хом, request_id) дурӣ ҷӯед - онҳоро ба гузоришҳо/роҳҳо баред.
9) Гузоришҳо: стандартҳо ва таносуб
Формат: JSON + калидҳои зарурӣ ('timestamp', 'сатҳ', 'паём', 'trace _ id', 'span _ id', 'service', 'env').
Таҳрир: ниқоби PAN, токенҳо, PII.
Интихоб: 100% барои 'хато/огоҳӣ', 5-20% барои 'маълумот' дар роҳҳои 'ғалоғула'
Пайвастшавӣ ба пайгирӣ - тавассути 'trace _ id'. Сатрҳои журнал → "pivot" барои пайгирӣ ва баръакс.
10) Маълумот дар фурӯш
Фаъол кардани профили доимӣ (Пироскоп/Парка) барои CPU/heap/alloc/locks.
Қуллаҳои p99 бо стекҳои гарм; 7-14 рӯз нигоҳ доранд.
11) Огоҳӣ дар бораи буҷаи SLO/камбудиҳо
Огоҳии SLO: "буҷаи хато аз X %/соат тезтар сарф мешавад" (огоҳиҳои пешгӯӣ).
Аломатҳо, на сабабҳо: ҳушдор ба сатҳи муштарӣ (RUM/канор ё дар як масир), на ба CPU.
Меъёри бисёр тиреза, бисёр сӯхтан: 2% дар 1 соат ва 5% дар 6 соат - ду шарт.
Хомӯшӣ ҳангоми таназзули банақшагирифташуда: гузариши ҳадди ҳангоми парчамҳои хусусӣ/канарӣ.
12) Арзиш ва нигоҳдорӣ
Квотаҳои ҳаҷм: роҳҳо ≤ N TB/моҳ, гузоришҳо - гарм 3-7 рӯз, хунук S3 30-90 рӯз, ченакҳо - пасткунӣ (1 дақ 5 min → 1 h).
Қоидаҳои думҳо ҳаҷми × 10- × 100-ро кам карда, хато/суст нигоҳ медоранд.
Сигналҳои камтарин - ченакҳо; бо арзиши баландтарин - роҳҳо ва профилҳои "дуруст".
13) Антипаттернҳо
"100% роҳҳо ҳамеша" → таркиши арзиш, садо ва тормоз.
Сабтҳо дар формати ройгон бе калидҳо/ниқоб.
Нишондиҳандаҳои беохир (user_id/ip/full UA).
Не 'traceparent '/' baggage' - наметавонад бо ҳам алоқаманд бошад.
Огоҳӣ дар бораи CPU/тӯда ба ҷои SLO - сӯҳбат "сӯхтан" бидуни фоида.
Интихоби "тасодуфӣ 1%" бидуни афзалияти хато/суст - ҳолатҳои арзишмандро аз даст медиҳад.
14) Намунаҳои панели (скелетҳо)
Шарҳи API: RPS, сатҳи хатогӣ аз рӯи синф, таъхири p95/p99 (намунаҳо клик карда мешаванд), хатсайрҳои боло.
Нашр/Канария: муқоисаи ченакҳои кӯҳна/нав, суръати берунӣ, схемаҳои кушод, такрорӣ.
PSP/KYC: сатҳи муваффақият аз ҷониби провайдерҳо, таъхир ва нокомӣ, робита бо хатогиҳои пардохт.
Инфра: ИСТИФОДАИ захираҳо, пур кардани навбат, тарки шабака.
15) Хусусиятҳои IGaming/Finance
Роҳҳои интиқодӣ (амонатҳо/хулосаҳо): 100% пайгирӣ танҳо барои ҳодисаҳо ё тирезаҳои маҳдуд; дар ҳолати муқаррарӣ - думи "ҳама бо хатогӣ/таъхири дароз".
Минтақа/иҷорагир: ба бағоҷ 'иҷорагир', 'юрисдиксия', 'бренд' илова кунед; SLO-ро аз рӯи салоҳият созед.
Филтри антифрод/бот: ченакҳо ва пайҳои ҳалли хавфи API (иҷозат додан/рад кардан/мушкил), суръати гузариш, суръат-хитҳо.
Аудит/мувофиқат: ҳадди аққали заруриро бидуни PII нигоҳ доред; гузоришҳои собит - дар схемаи алоҳида.
16) Рӯйхати санҷиши омодагии Prod
- Паҳнкунии ниҳоӣ ('traceparent', 'baggage'), таносуби log/metric/trace.
- Collector OTel бо интихоби интихоб (хатогиҳо/хатсайрҳои суст/муҳим) + эҳтимолияти пешфарз.
- Нишондиҳандаҳои RED/USE, сатилҳои возеҳ, намунаҳо → гузариш ба пайгирӣ.
- SLO ва ҳушдори нодурусти буҷа (ду мӯҳлат).
- Қоидаҳои телеметрӣ ва буҷа; андозагирии коҳишёбанда; нигоҳдории хунук барои гузоришҳо.
- Сабти стандартии JSON, redaction PII/асрҳо.
- Маълумот дар фурӯш; панели лавҳаҳои "гарм" барои ҳодиса.
- Панели панелӣ ва муқоисаи версияҳо; озод кардан бе "доғҳои нобино".
- Дафтарчаи корӣ: Чӣ гуна муваққатан зиёд кардани ҳиссаи интихобшудаи ҳодиса.
- Атрибут/номгузории ҳуҷҷатгузорӣ ва ҷилавгирӣ аз кардинализм.
17) TL; ДР
Дар атрофи коррелятсия мушоҳидаҳоро эҷод кунед: RED/USE → намунаҳо ченакҳоро § пайраҳаҳо → гузоришҳо/профилҳо. Идоракунии хароҷот тавассути интихоби якҷоя: қоидаҳои хурди сар% + дум (хатогиҳо, хатсайрҳои суст, муҳим/иҷорагирон). Огоҳиҳо - дар бораи SLO ва буҷаи хатогӣ. Нигоҳдорӣ ва кардиналиро таҳти назорат нигоҳ доред, OTel Collector-ро ҳамчун "системаи марказии асаб истифода баред. "Барои роҳҳои пардохт/юрисдиксия - телеметрияи афзалиятнок ва гигиенаи қатъии маълумот.