API和基础架构监控工具
1)原则: 从目标到工具
SLO-first:根据产品目的(登录、存款、出价)选择和定制工具,反之亦然。
开放标准:OpenTelemetry(预告片/度量/徽标),Prometheus展览格式,Loki JSON徽标。
单一上下文:逻辑和度量标准中的"trace_id"/"span_id";"dashbord → trace → log"镜头。
Cost-aware:基数度量,TTL logs, sampling trains-提前。
2)度量: 收集,存储,可视化
Сбор: Prometheus / Agent-режим (VictoriaMetrics Agent, Grafana Agent, OpenTelemetry Collector).
存储(TSDB):Prometheus(单个),Thanos/Cortex/Mimir(水平缩放),VictoriaMetrics(CPU/RAM节省)。
可视化:Grafana作为"玻璃面板"。
如何测量API (RED)和基础架构(USE):- RED: `rate(requests)`, `error_ratio`, `latency p95/p99` по `route`, `method`, `provider`.
- USE: CPU/Mem, file descriptors, connection pools, queue lag, GC pauses.
- k8s: kube-state-metrics, node-exporter, cAdvisor, ingress/gateway exporters.
- БД/кэши: postgres_exporter, mysql_exporter, redis_exporter, kafka_exporter, rabbitmq_exporter.
- 服务市长:Envoy metrics,istio/Linkerd仪表板。
- PSP/внешние: custom exporters (webhook success, PSP success ratio, callback latency).
promql
存款成功(SLI)
sum(rate(ig_payments_requests_total{route="/payments/deposit",status=~"2.."}[5m]))
/
sum(rate(ig_payments_requests_total{route="/payments/deposit"}[5m]))
p95 latency API histogram_quantile(0.95, sum(rate(http_request_duration_seconds_bucket[5m])) by (le, route))
DB连接池饱和db_connections_in_use/ db_connections_max3) Logi: 搜索、相关性、不可变性
堆栈:OpenSearch/Elasticsearch+Beats/Vector/Fluent Bit或Grafana Loki(存储起来更便宜,"日志流")。
格式:JSON具有标准字段的ts、level、service、env、trace_id、user_pid、route、status、latency_ms'。
做法:掩盖PII,用于审计的WORM垃圾箱,TTL/ILM政策,通过"env/region/brand"参与。
4)跟踪: 毫秒丢失的地方
Стек: OpenTelemetry SDK/Collector → Jaeger/Tempo/Honeycomb/New Relic Traces.
采样策略:100%错误,适应"慢速"查询,1-5%成功。
Теги iGaming: `provider`, `psp`, `risk_decision`, `bonus_id`, `market`, `ws_table_id`.
Debaga的快速配方:从SLO的红色图形→问题路线的跟踪→ PSP/游戏提供商 → webhook的日志上的"厚"span。
5)APM平台: 何时"一合一"
商业解决方案(Datadog,New Relic,Dynatrace,Grafana Cloud)关闭APM,logi,traces,合成,RUM。
优点:实施速度,开箱即用的相关性。缺点:成本/供应商锁。
混合动力车:OSS(Prometheus+Grafana+Tempo+Loki)上的内核,通过关键流量的商业模块"背向"合成/异位。
6)合成和RUM: "外部"和"玩家的眼睛"
Синтетика: Checkly, Grafana Synthetic Monitoring, k6 Cloud, Uptrends, Pingdom, Catchpoint, ThousandEyes.
脚本:登录→存款(sandbox)→游戏启动→检查网络游戏。
地理:EU/LatAm/MEA/APAC,移动网络,ASN混合。
RUM:Web-SDK(TTFB/LCP/CLS),移动SDK;国家/网络/设备分割。
7) Kubernetes监测表面
Control plane: etcd, API-server (apiserver_request_total, latency), scheduler/controllermanager.- Data plane: kubelet, CNI, ingress/gateway; `PodDisruptionBudget` и эвикшены.
自动轨道:HPA/VPA/群集自动轨迹指标和事件;warm池。
网络策略:drop/deny事件,DNS延迟。
8)数据库、队列、缓存
Postgres/MySQL:复制时间,deadlocks,bloat,WAL,checkpoint duration,taymout。
Kafka/RabbitMQ: consumer lag, rebalances, queue depth, redeliveries.
Redis: evictions, blocked clients, latency percentiles, replice-lag。
PITR/backaps: backup语句任务+dashboard"恢复前时间"。
9)网络,CDN,WAF,游戏提供商和PSP
CDN/Edge:按地区划分的命中率,TTFB,shield命中,"错过风暴"。
WAF/机器人经理:共享挑战/区块,ASN/国家/地区,登录/存款上的FPR。
游戏提供者:桌子/插槽启动时间,工作室故障/定时。
PSP:方法/国家/BIN的成功率/延迟率,3DS/AVS错误代码,成功和延迟的webhooks。
10)警戒和值班
漫游:Alertmanager → PagerDuty/Opsgenie/Slack。
规则:有症状的(SLO)+因果关系(资源)。
Antishum:分组,抑制链状警报,释放时保持沉默的窗口。
CD中的SLO门:违规时自动暂停/回滚(Argo Rollouts/Flagger AnalysisRun)。
Alertes的示例(简化):- `login_success_ratio < 99.9% for 10m`
- `p95 /payments/deposit > 0.4s for 10m`
- `db_connections_saturation > 0.85 for 5m`
- `kafka_consumer_lag > 30s`
- `cdn_hit_ratio drop > 15% in 10m (per region)`
11)真正帮助的达什伯德
存款:漏斗,p95/p99,PSP/BIN/国家/地区的错误,webhook延迟。
实时游戏/WS:连接,RTT, resend/reconnect,供应商错误。
健康API: RED按路线、卫星、顶部慢速端口↔跟踪。
DR面板: repliclag, WAL shipping, synthetic login/deposit from DR region.
安全:WAF,bot得分,401/403异常签名webhooks。
12)遥测成本管理
基数度量:不要在标签中包含"user_id","route"和"provider"的限制。
Downsampling and Retention Class (7-14天热,30-90温暖,冷档案)。
Logi:事件飞跃-包括采样/去世;单独存储堆栈。
Traces:通过"昂贵"路径(付款/结算)进行动态采样。
13)监控中的安全和隐私
从代理到收集器的mTLS;at rest加密。
别名"user_pid",禁止在日志中使用电子邮件/电话/文档。
RBAC/MFA,用于审计的WORM;DPA与第三方监控提供商。
14)与CI/CD和自动售货机集成
将SLI暴露为CD分析的原始指标。
在度量/logs/trace中发布标签("版本","rollout_step")。
自动金丝雀门:deploy只会在绿色SLO下继续。
15)快速起步(参考)
收集/运输:OTEL Collector+Prometheus/VM Agent+Fluent Bit。
存储:VictoriaMetrics/Thanos(度量),Loki/OpenSearch(徽标),Tempo/Jaeger(路径)。
可视化:Grafana+现成的行车记录仪k8s/Envoy/Postgres。
合成和RUM:Checkly/k6+Grafana RUM(或商业类似物)。
Alerting:Alertmanager → PagerDuty/Slack;链接中的runbooks。
16)实施支票(prod-ready)
- SLO/SLI定义为登录/存款/利率/提取。
- RED/USE+Business SLI度量标准;单个标签本体。
- Logi JSON带有"trace_id",PII掩码,WORM用于审核。
[] OpenTelemetry end-to-end;100%误差采样。- 来自主要地区+RUM的合成产品。
- Dashbords "flow存款","WS","API健康","DR"。
- Alerting:SLO症状+资源原因;对立面。
- SLO门连接到CD;自动送货。
- 价值计划:重建/采样/基数。
- DPA/安全性:mTLS,RBAC,博客隐私。
二.总结
强大的监控不是一组"优美的图形",而是连接系统:RED/USE度量标准,带有"trace_id",OpenTelemetry跟踪,合成和RUM的逻辑,以及嵌入在CI/CD中的行车记录仪,警报和SLO门。围绕开放标准收集堆栈,控制遥测成本并标准化标签本体-然后API和基础架构的任何问题都将提前显示,并在玩家注意到之前进行修补。
