GH GambleHub

Байкоо түйүнү

1) Эмне үчүн байкоо стек керек

Fast RCA жана MTTR төмөндөшү: бир нече мүнөттүн ичинде себебин белги.
SLO-башкаруу: каталарды/жашыруун өлчөө, туура эмес бюджет боюнча алертинг.
Release Control: канарейка эсептөө, метрика боюнча авто-rollback.
Коопсуздук жана аудит: кирүү жолдору, аномалиялар, мыйзамдуу Hold.
FinOps-ачык-айкындуулук: сактоо/суроо-талап наркы, cost-per-SLO.

Методологиясы: Golden Signals (latency/traffic/errors/saturation), RED, USE.

2) Негизги стек архитектурасы

Катмарлар боюнча компоненттер

Жыйноо/агенттер: Exporters, Promtail/Fluent Bit, OTel SDK/Auto-Instr, Blackbox-probes.
Шина/ingest: Prometheus remote_write → Mimir/Thanos, Loki distributors/ingesters, Tempo/Jaeger ingesters.
Сактоо: объект S3/GCS/MinIO (узакка созулган суук), SSD (ысык катар).
Суроолор/визуализация: Grafana (панелдер, SLO-виджеттер), Kibana (ELK болсо).
Башкаруу: Alertmanager/Graphana-Алерт, тейлөө каталогу, RBAC, жашыруун менеджер.

Жайгаштыруу үлгүлөрү

Managed (Grafana Cloud/Cloud Services) - көлөмдө тез жана кымбат.
Self-hosted in K8s - толук көзөмөл, иштетүү жана FinOps керек.

3) Маалыматтар стандарттары: бирдиктүү "байкоо схемасы"

3. 1 Метрика (Prometheus/OpenMetrics)

Милдеттүү лейблдер: 'env', 'region', 'cluster', 'namespace', 'service', 'version', 'tenant' (көп тенант болсо), 'endpoint'.
Аталышы: 'snake _ case', '_ total', '_ seconds', '_ bytes' суффикстери.
Гистограммалар: белгиленген 'buckets' (SLO багытталган).
Кардиналдуулук: 'user _ id', 'request _ id' лейблдерине кирбейт.

3. 2 Логи

Формат: JSON; Милдеттүү талаалар 'ts', 'level', 'service', 'env', 'trace _ id', 'span _ id', 'msg'.
PII: агент боюнча жашыруу (PAN, токендер, электрондук почта ж.б.).
Loki-лейблдер: бир гана төмөн кардиналдуулук ('app', 'namespace', 'level', 'tenant').

3. 3 жолдор

OTEL семантика: 'service. name`, `deployment. environment`, `db. system`, `http.`.
Самплинг: p99 максаттуу жолдору - 'always _ on '/tail-sampling, калганы -' parent/ratio '.
ID киргизүү: 'trace _ id/span _ id' -ди логиге жана метрикага (labels/fields) ыргытыңыз.

4) Корреляция M-L-T (Metrics/Logs/Traces)

Алерт графикасынан (метрика) → 'trace _ id' боюнча чыпкаланган логдор → конкреттүү трасса.
From Trail (жай Span) → Span аралыгы боюнча конкреттүү арткы метрика суроо.
панелдерде Drilldown баскычтары: өзгөрмөлүү ('$env', '$service', '$trace_id') менен "логдорго" жана "жолдорго".

5) OpenTelemetry Collector: эталондук пайплайн

yaml receivers:
otlp:
protocols: { http: {}, grpc: {} }
prometheus:
config:
scrape_configs:
- job_name: kube-nodes static_configs: [{ targets: ['kubelet:9100'] }]

processors:
batch: {}
memory_limiter: { check_interval: 1s, limit_mib: 512 }
attributes:
actions:
- key: deployment. environment value: ${ENV}
action: insert tail_sampling:
decision_wait: 5s policies:
- name: errors type: status_code status_code: { status_codes: [ERROR] }
- name: important-routes type: string_attribute string_attribute: { key: http. target, values: ["/payments","/login"] }
- name: probabilistic type: probabilistic probabilistic: { sampling_percentage: 10 }

exporters:
otlphttp/mimir: { endpoint: "https://mimir/api/v1/push" }
otlphttp/tempo: { endpoint: "https://tempo/api/traces" }
loki:
endpoint: https://loki/loki/api/v1/push labels:
attributes:
env: "deployment. environment"
service: "service. name"

service:
pipelines:
metrics: { receivers: [prometheus, otlp], processors: [memory_limiter, batch], exporters: [otlphttp/mimir] }
logs:   { receivers: [otlp], processors: [batch], exporters: [loki] }
traces:  { receivers: [otlp], processors: [memory_limiter, attributes, tail_sampling, batch], exporters: [otlphttp/tempo] }

6) Alerting: SLO жана multi-burn

Идея: Алертим "CPU> 80%" деңгээлинде эмес, Error Budget керектөөдө.

PromQL үлгүлөрү:
promql
5-minute error rate err_ratio_5m =
sum(rate(http_requests_total{status=~"5.."}[5m])) /
sum(rate(http_requests_total[5m]))

Quick burn (1m window)
(err_ratio_1m / (1 - SLO)) > 14. 4

Slow burn (30m)
(err_ratio_30m / (1 - SLO)) > 2
Латенттүүлүк (гистограммалар):
promql latency_p95 =
histogram_quantile(0. 95, sum by (le) (rate(http_request_duration_seconds_bucket[5m])))

7) Dashbord: папка түзүлүшү

00_Overview - платформа: SLO, p95, 5xx%, capacity, активдүү окуялар.
10_Services - RPS, p95/p99, каталар, релиздер (аннотациялар).
20_Infra - K8s/nodes/storage/network, etcd, контроллерлор.
30_DB/Queues — PostgreSQL/Redis/Kafka/RabbitMQ.
40_Edge/DNS/CDN/WAF - ingress, LB, WAF эрежелери.
50_Synthetic - аптайм жана headless-жагдайлар.
60_Cost/FinOps - сактоо, суроо-талап, ысык/муздак, болжолдоо.

Ар бир панели: баяндоо, бирдик, ээси, runbook-шилтеме, drilldown.

8) Логи: LogQL практикум

logql
API errors
{app="api", level="error"}     = "Exception"

Nginx 5xx in 5 minutes
{app="nginx"}      json      status=~"5.."      count_over_time([5m])

Extract Fields
{app="payments"}      json      code!=""      unwrap duration      avg()

9) Жолдор: TraceQL жана Focus

абдан жай уктап табуу:

{ service. name = "api" }      duration > 500ms
Sandwich "жай суроо-жай SQL":

{ name = "HTTP GET /order" }      child. span. name = "SELECT" & child. duration > 50ms

10) Синтетика жана аптайм

Blackbox-exporter: HTTP/TCP/TLS/DNS ≥ 3 региондордон/ASN.
Headless: login/deposit скрипт тартиби боюнча.
Quorum-Алерт: 2 аймактардын ≥ баш тартууну көрүшсө, ишке киргизүү.
Статус-бет: автоматтык жаңылануулар + кол менен комментарий.

11) Сактоо жана retenshn

Metrics: ысык 7-30 күн (тез катар), downsampling/recording rules, муздак - объект сактоо (ай).
Loki: ысык 3-7 күн, андан кийин - индекс менен S3/GCS (Loki chunk store/ELK ILM).
Жолдор: 3-7 күн 'always _ on' + тандоо үчүн узак сактоо (tail-sampled/жокко чыгаруу).

Сунуштар:
  • Rollover көлөмү жана убактысы боюнча; суроо-талаптарга бюджет (квоталар/лимиттер).
  • Жеке prod/этап жана коопсуздук маалыматтары үчүн саясат.

12) Көп тенанттуулук жана жеткиликтүүлүк

бөлүү 'tenant '/' namespace '/Spaces, индекс үлгүлөрү жана уруксаттар.
Биллинг үчүн ресурстарды тегиздөө: 'tenant', 'service', 'team'.
Импорттук дашборддор/алерталар - конкреттүү командалардын мейкиндигинде.

13) Коопсуздук жана комплаенс

TLS/mTLS агенттерден бекендерге, жеке ден соолук үчүн HMAC.
RBAC окуу/жазуу, бардык суроо-талаптарды жана алерттерди текшерүү.
PII-четинде редакторлук; логтордо сырларга тыюу салуу; DSAR/Legal Hold.
Изоляция: сезгич домендер үчүн өзүнчө кластерлер/неймспейстер.

14) FinOps: байкоо наркы

Ингесте этикеткалардын жана логиканын кардиналдуулугун азайтабыз (суроо-талаптарда эмес).
Sampling жолдору + критикалык жолдор үчүн максаттуу always-on.
Оор агрегаттар үчүн Downsampling/recording руль.
муздак объектиге сейрек кирүүнү архивдөө.
Метрики: `storage_cost_gb_day`, `query_cost_hour`, `cost_per_rps`, `cost_per_9`.

15) CI/CD жана байкоо тесттер

CI-жылы Linting метрик/логдор: "жарылуу" кардиналдуулугун тыюу, гистограммалар/бирдиктерди текшерүү.
Contract-байкоо сыноолору: милдеттүү метриктер/логин талаалары, 'trace _ id' middleware.
Canary: тилкелер, SLO-auto-rollback боюнча релиздерди түшүндүрмөлөр.

16) мисалдар: тез суроолор

Top-endpoints каталар боюнча:
promql topk(10, sum by (route) (rate(http_requests_total{status=~"5.."}[5m])))
CPU throttling:
promql sum by (namespace, pod) (rate(container_cpu_cfs_throttled_seconds_total[5m])) > 0
Kafka lag:
promql max by (topic, group) (kafka_consumergroup_lag)

(Loki → Tempo) жолдору үчүн ийбадатканалардан: Tempo UI/дэшборд боюнча link катары 'trace _ id' өткөрүп берүү.

17) Стек сапаты: чек тизмеси

  • Координацияланган схемалар метрика/логдор/жолдор жана бирдиктер.
  • 'trace _ id' логдордо жана метрикаларда, панелдерден drilldown.
  • Multi-burn SLO-Алерта fapping жок (quorum/multi-window).
  • Downsampling, суроо-квота, кадам/диапазону боюнча чектер.
  • Retenshn жана сактоо класстары документтештирилген жана колдонулат.
  • RBAC/аудит/PII-өзгөртүүлөр киргизилген.
  • Dashboard: ээси, runbooks, ≤ 2-3 экран, тез жооп.
  • FinOps-dashboard (көлөмү, наркы, жогорку сүйлөгөндөр).

18) Ишке ашыруу планы (3 итерация)

1. MVP (2 жума): Prometheus → Mimir, Loki, Tempo; OTel Collector; базалык дашборддор жана SLO-алерттер; blackbox үлгүлөрү.
2. Scale (3-4 жума): tail-sampling, downsampling, көп аймак ingest, RBAC/Spaces, FinOps-dashboard.
3. Pro (4 + жума): SLO auto-rollback, негизги жолдордун headless-синтетика, Legal Hold, SLO куржунунун жана отчеттуулук.

19) Анти-үлгүлөрү

"SLO жок кооз сүрөттөр" - эч кандай иш-аракет → эч кандай пайда.
Жогорку кардиналдуу лейблдер ('user _ id', 'request _ id') - эс тутумдун жана нарктын жарылуусу.
JSON жок Логи жана 'trace _ id' жок - эч кандай байланыш жок.
Алерт ордуна белгилер ресурстары - ызы-чуу жана on-call күйүп.
Ретеншн саясатынын жоктугу - чыгымдардын көзөмөлсүз өсүшү.

20) Mini-FAQ

Эмне тандоо керек: Loki же ELK?
татаал издөө/фасет үчүн ELK; Loki - grep окшош жагдайлар үчүн арзан жана тез. Көбүнчө гибрид колдонулат.

Баарына жолдор керекпи?
Ооба, жок дегенде негизги жолдордо (login, checkout, payments) tail-sampling менен - бул кескин RCA тездетет.

Кантип нөлдөн баштоо керек?
OTel Collector → Mimir/Loki/Tempo → негизги SLO жана blackbox үлгүлөрү → андан кийин dashboard жана burn-алерт.

Жыйынтык

Байкоо стек - бул чачыранды куралдардын жыйындысы эмес, координацияланган система: бирдиктүү маалымат стандарттары → M-L-T корреляциясы → SLO-алертинг жана синтетика → коопсуздук жана FinOps. Схемаларды, этикеткаларды жана ретеншндерди оңдоп, OTel туташтырып, drilldown жана auto-rollback кошуңуз - жана сиз түшүнүктүү наркы менен башкарылуучу ишенимдүүлүккө ээ болосуз.

Contact

Биз менен байланышыңыз

Кандай гана суроо же колдоо керек болбосун — бизге кайрылыңыз.Биз дайым жардам берүүгө даярбыз!

Telegram
@Gamble_GC
Интеграцияны баштоо

Email — милдеттүү. Telegram же WhatsApp — каалооңузга жараша.

Атыңыз милдеттүү эмес
Email милдеттүү эмес
Тема милдеттүү эмес
Билдирүү милдеттүү эмес
Telegram милдеттүү эмес
@
Эгер Telegram көрсөтсөңүз — Emailден тышкары ошол жактан да жооп беребиз.
WhatsApp милдеттүү эмес
Формат: өлкөнүн коду жана номер (мисалы, +996XXXXXXXXX).

Түшүрүү баскычын басуу менен сиз маалыматтарыңыздын иштетилишине макул болосуз.