GH GambleHub

Прометей: ҷамъоварии ченакҳо

(Қисм: Технология ва инфрасохтор)

Хулосаи мухтасар

Prometheus стандарти саноатӣ барои ченакҳои вақт аст: он ҳадафҳоро аз HTTP вайрон мекунад, силсилаҳоро дар TSDB нигоҳ медорад, агрегатҳоро дар Prom Барои IGaming, ин асоси равиши SLO (RED/USE, ченакҳои пардохти бизнес), ташхиси босуръати p95/p99 ва қарорҳои автоматӣ (яхкунӣ/бозгашт) мебошад.

1) Модели маълумот ва кардинал

Metric:' name {label1 =" v1", label2 =" v2"} арзиши @ timestamp'.
Cardinality = маҳсулоти қудрати ҳамаи маҷмӯаҳои беназири тамғакоғазҳо; омили асосии хароҷот.

Амалҳои тамғакоғазҳо:
  • базовые: 'хидмат', 'env', 'минтақа', 'мисол', 'pod', 'контейнер', 'версия';
  • домен: 'маршрут', 'psp', 'иҷорагир' (эҳтиёт!), 'game _ provider'.
  • Шумо наметавонед 'user _ id', 'session _ id', қиматҳои тасодуфӣ/баландро гузоред.

2) Намудҳои ченакҳо

Counter - танҳо афзоиш меёбад (масалан, 'http _ дархостҳо _ total').
Ченак - қиматҳои фаврӣ (масалан, 'quenue _ depth').
Гистограмма/Хулоса - тақсимоти ниҳонӣ. Дар prod - Гистограмма (бо дастгирии 'histogram _ quantile ()' ва намунаҳо).
Гистограммаҳои маҳаллӣ сатилҳои тағирёбанда мебошанд, ки дақиқиро беҳтар мекунанд ва андозаи онро сарфа мекунанд (дар ҷойҳои дастрас).

Намуна (Гузаштан):
go var httpLatency = prometheus. NewHistogramVec(
prometheus. HistogramOpts{
Name:  "http_request_duration_seconds",
Help:  "HTTP latency",
Buckets: prometheus. DefBuckets ,//or custom
},
[]string{"route","method"},
)

3) Содиркунандагон ва чиро чен кардан лозим аст

Хизматрасонӣ: рамзи шумо (SDK барои Go/Java/Node/Python), ченакҳои RED API, ченакҳои корӣ (табдили пардохт).
Система: node_exporter, CAdvisor/kubelet.
Тарафи сеюм: DB/caches (mysqld_exporter, postgres_exporter, redis_exporter), NGINX/HAP-roxy, Kafka/RabbitMQ).
Андозагирии OTEel: тавассути Open-Telemetry Collector → Prometheus Remote Write ё Prometheus-қабулкунанда → ба анбори умумӣ.

4) Scrape ва relabel: чӣ гуна пайваст кардани ҳадафҳо

Прометейи асосӣ. yml '

yaml global:
scrape_interval: 15s evaluation_interval: 15s external_labels:
env: "prod"
region: "eu-west"

scrape_configs:
- job_name: 'node'
static_configs:
- targets: ['10. 0. 1. 10:9100','10. 0. 1. 11:9100']

- job_name: 'payments-api'
metrics_path: /metrics scheme: https tls_config:
ca_file: /etc/ssl/ca. crt cert_file: /etc/ssl/tls. crt key_file: /etc/ssl/tls. key relabel_configs:
- source_labels: [__address__]
regex: '(.):\d+'
target_label: instance replacement: '$1'

Оператори Kubernetes cherez Prometheus

Ба ҷои дастури 'scrape _ Configs' Service-Monitor/Pod- ро истифода баред.

yaml apiVersion: monitoring. coreos. com/v1 kind: ServiceMonitor metadata: { name: payments-api }
spec:
selector: { matchLabels: { app: payments-api } }
namespaceSelector: { matchNames: [ "prod" ] }
endpoints:
- port: metrics interval: 15s scheme: http relabelings:
- action: replace targetLabel: service replacement: "payments-api"

Аннотация K8s (бе Оператор, содда карда шудааст)

yaml metadata:
annotations:
prometheus. io/scrape: "true"
prometheus. io/port: "9102"
prometheus. io/path: "/metrics"

5) Нигоҳдорӣ: TSDB, WAL ва нигоҳдорӣ

WAL (Write-Ahead Log) → барқароршавии босуръат аз барқароршавӣ.
Фишурдасозӣ: фишурдани блок, пасандозҳои диск/CPU.
Нигоҳдорӣ: Маълумоти гармро дар давоми 7-30 рӯз нигоҳ доред; дарозмуддат - ҳаракат кунед (нигаред ба миқёс).

Танзими:
  • '- саҳна. tsdb. нигоҳ доштан. вақт = 15 д '
  • '- саҳна. tsdb. max-block-chunk-segment-андозаи '
  • Ронанда: SSD/NVM-и зуд; аз ҳаҷми шабака нолозим пешгирӣ кунед.

6) PromQL: асосҳо ва намунаҳои зуд-зуд

Сатҳи/ғазаб

promql rate(http_requests_total{route="/deposit"}[5m])

Хатогиҳо ва сатҳи муваффақият

promql sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))

p95 таъхир

promql histogram_quantile(0. 95,
sum by (le, route) (rate(http_request_duration_seconds_bucket[5m]))
)

Навбатҳо/Қаноатмандӣ

promql max(queue_depth{queue="withdrawals"}) by (region)

7) Қоидаҳои сабт ва иҷро

Ибораҳои вазнинро пешакӣ дида бароед ва ҳамчун силсила нигоҳ доред.

yaml groups:
- name: api. rules interval: 30s rules:
- record: job:http:request_duration_seconds:p95 expr:
histogram_quantile(0. 95,
sum by (le, job) (rate(http_request_duration_seconds_bucket[5m])))
- record: job:http:success_ratio expr:
sum(rate(http_requests_total{status=~"2..    3.."}[5m]))
/ sum(rate(http_requests_total[5m]))

Плюс: панелҳои тез, сарбории камтар ба CPU Prometheus.

8) Огоҳии SLO (сатҳи сӯхтан)

Огоҳиҳои сӯхтан (бисёр тиреза, бисёр сӯхтан)

yaml groups:
- name: slo. payments rules:
- alert: PaymentsSLOFastBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 14 for: 5m labels: { severity: "page" }
annotations:
summary: "SLO fast burn"
runbook: "https://runbooks/payments/slo"
- alert: PaymentsSLOSlowBurn expr: (1 - job:http:success_ratio{job="payments-api"}) > (1 - 0. 999) 6 for: 1h labels: { severity: "ticket" }

Alertmanager: масири хидматрасонӣ/минтақа, такрори такрорӣ, Chatops.

9) Таносуб бо нишонаҳо ва гузоришҳо

Даргиронидани намунаҳо: clickable 'trace _ id' дар сатилҳои гистограмма.
Тамғакоғазҳоро 'хидмат', 'версия', 'release' review 'муқоиса кунед' дар ченакҳо.
Дар панели панелҳо - шарҳи нашр (Git SHA/версия).

10) миқёс ва нигоҳдории дарозмуддат

Федератсия: агрегатҳои болоии Прометей аз поён (аз рӯи филтрҳои корӣ/тамғакоғазҳо).
Навиштани дурдаст: фиристодани сатрҳо ба пуштибони дарозмуддат/кластерҳо (Thanos/Cortex/Mimir).

Тарафдор: нигоҳдории беохир, миқёси уфуқӣ, назари глобалӣ.
Омӯз: кор кардан душвортар аст, арзиш.
Аз рӯи функсия: ҳолатҳои алоҳида барои ченакҳои система, тиҷорат, амният.

11) Бехатарӣ

Ҳадафҳои TLS/mTLS байни Prometheus ↔/Alertmanager/remote _ навиштан.
Аутентификатсияи асосӣ/нишона барои/ҳадафҳо ва API (дар назди дарвозаи прокси).
RBAC: дастрасиро ба UI/силсила аз рӯи нақш маҳдуд мекунад; тамғакоғазҳои хусусиро пинҳон мекунанд.
Гигиенаи PII: PII-ро дар ченакҳо нанависед; ҳаш/тахаллусро истифода баред.

12) Амалияи Кубернетес

Оператори Prometheus: CRD (Service. Monitor, Pod

kube-state-metrics + Cadvisor → тасвири пурраи кластер.
Рангҳо ва захираҳо: гиреҳҳои махсус барои мониторинг; Маҳдудиятҳои CPU/RAM.
Паст кардани садо: Интихоби тамғакоғазҳо барои ҷойҳои "истеҳсолӣ", пур кардани scrape_interval то ҳадди имкон.

13) Нишондиҳандаҳои тиҷорат ва маҳсулот

Платежи: 'payments _ success _ total {psp, асъор}', 'pay _ conversion _ ranquo', 'ttw _ seconds _ histogram'.
Фаъолияти бозӣ: гарав/дақиқа, гузаронидани сессияҳо ҳамчун ченак, партофтан ҳангоми хатогиҳо.
Хавф/қаллобӣ: триггерҳо барои аномалияҳои суръат/гео; воридшавӣ алоҳида, ченакҳо - агрегатҳо.

14) Арзиш ва муваффақият (FIN Ops)

Кардиналро назорат кунед (баррасии барчаспҳо пеш аз илова кардани тамғаи нав).
Интихоби гистограмма/содиркунандагони нодир → 'scrape _ interfal' барои ҳадафҳои ғайримуқаррарӣ.
Пастравии нигоҳдории дарозмуддат.
Кэши панели панел ва эътимоди васеъ ба қоидаҳои сабт.

15) Намунаҳои "оғози зуд"

Содиркунандаи RED дар ариза (Python)

python from prometheus_client import Counter, Histogram, start_http_server reqs = Counter('http_requests_total','', ['route','method','status'])
lat = Histogram('http_request_duration_seconds','', ['route','method'])
start_http_server(8000)

def handle(req):
with lat. labels(req. route, req. method). time():
status = app(req)
reqs. labels(req. route, req. method, str(status)). inc()
return status

Ҳадди огоҳӣ p95

promql alert: HighLatencyP95 expr: histogram_quantile(0. 95,
sum by (le, service) (rate(http_request_duration_seconds_bucket[5m]))) > 0. 25 for: 10m labels: { severity: "page", service: "api" }

16) Рӯйхати санҷиши амалисозӣ

1. Маҷмӯи ченакҳои асосӣ (RED/USE) ва ченакҳои домейнро муайян кунед.
2. Ҳамоҳангсозии тамғакоғазҳо ва роҳнамо аз рӯи кардинал.
3. Танзимоти scrape/Service. Monitor, TLS/MTLS, relabel.
4. Дохил кардани гистограмма барои роҳҳои асосӣ ва намунаҳо.
5. Эҷоди қоидаҳои сабт барои p95, таносуби муваффақият, маҷмӯаҳои тиҷорат.
6. Огоҳиҳои SLO (суръати сӯхтан) ва решакан кардани Alertmanager -ро ворид кунед.
7. Баланд бардоштани панели панелҳо: харитаи хизматрасонӣ, муқоисаи озодкунӣ, пардохтҳо.
8. Дар бораи федератсия/remote _ навиштан ва нигоҳ доштан қарор диҳед.
9. Маҳдудияти дастрасӣ (RBAC), набудани PII-ро тафтиш кунед.
10. Фаъол кардани дафтарҳо ва санҷишҳои рӯзона.

17) Анти-намунаҳо

Тамғакоғазҳо бо кардинали баланд (user/session/request_id).
Хулоса ба ҷои Histogram барои калидҳои SLO → мавҷуд нест 'histogram _ quantile'.
"Ҳама дар як саф" -ро бидуни филтр/гардиш → зиёд кардани хароҷот ва садо харошед.
Огоҳӣ дар бораи ченакҳои хом бидуни SLO → alert-phatig.
Набудани қоидаҳои сабт → панели "вазнин".
Боварӣ ба ченакҳо бидуни TLS/MTLS → хатари ғорат/ихроҷ.

Хулоса

Prometheus мушоҳидаҳои ба ҳадаф алоқамандро дар платформаи IGaming медиҳад: гистограммаҳои дақиқ, агрегатҳои устувор, огоҳиҳои равшани SLO ва миқёс ба харитаи бисёр минтақа. Интизоми тамғакоғазҳо, қоидаҳои сабти дуруст, пайвандҳои пайгирӣ/сабти ном ва меъмории оқилонаи нигоҳдорӣ релизҳои зуд ва p99 пешгӯишавандаро ҳатто дар авҷи авҷ таъмин мекунанд.

Contact

Тамос гиред

Барои саволҳо е дастгирӣ ба мо муроҷиат кунед.Мо ҳамеша омодаем!

Telegram
@Gamble_GC
Оғози интегратсия

Email — муҳим аст. Telegram е WhatsApp — ихтиерӣ.

Номи шумо ихтиерӣ
Email ихтиерӣ
Мавзӯъ ихтиерӣ
Паем ихтиерӣ
Telegram ихтиерӣ
@
Агар Telegram нависед — ҷавобро ҳамон ҷо низ мегиред.
WhatsApp ихтиерӣ
Формат: рамзи кишвар + рақам (масалан, +992XXXXXXXXX).

Бо фиристодани форма шумо ба коркарди маълумот розӣ ҳастед.