信號分布和指標
(部分: 生態系統和網絡)
1)目的和領域
信號分配和度量標準是收集,規範化並向所有感興趣的參與者提供遙測(事件,度量,徽標,跟蹤,健康狀態)的一致方法:運營商,內容提供商,支付/KUS服務,橋梁,網絡節點,隸屬關系和SRE/BI/Compliance命令。目標是:- 單一遙測語言和數據合同。
- 托管QoS通道:優先考慮關鍵信號。
- 透明的SLI/SLO和可預測的選擇。
- 隱私,隔離和預算節省指標。
2)信號分類
1.業務活動:討價還價,存款/付款,遊戲活動,歸屬。
2.技術指標:latency/throughput/錯誤代碼,隊列,使用CPU/RAM/IO。
3.Logs:結構化的操作和錯誤記錄。
4.跟蹤:span查詢/拓撲,hop-to-hop相關性。
5.健康狀況:合成前綴,準備/生活,心跳節點。
6.風險/合並信號:KYC/KYB/AML命中,制裁事件。
每個班級都有自己的關鍵級別和存儲/交付策略。
3)分布架構(參考)
Edge收集器(SDK/Agent)→ Ingress(HTTP/OTLP/gRPC/QUIC)→ Sheena(Kafka/Pulsar)→處理器(stream-jobs)→存儲(TSDB用於度量,對象/柱子-標誌/事件,示蹤劑)→ 店面/dashbords/alerta。
多重性:鍵中的namespace/tenant-id,單獨的quota/limits/ACL。
根據QoS進行細分:關鍵(P0),重要(P1),背景(P2)。
Egress:訂閱者(Ops/BI/Third-party)通過拓撲訂閱和材料化觀看。
4)合同和計劃(事件/指標/預告片)
4.1個事件(簡化,YAML)
yaml event:
id: uuid kind: business ops risk ts: timestamp # ISO8601 tenant: string # org_id/namespace source: string # service/peer-id trace_id: string type: string # deposit. created payout. failed probe. ok...
attrs: object # semantic fields (no PII)
severity: info warn error critical qos: P0 P1 P2
4.2個度量(OpenMetrics/OTLP)
具有穩定標簽(有限基數)的Gauge/Counter/Histogram。
標識符: 「metric_name {service, region, tenant, version, route}」.
代碼中用於潛伏期/尺寸而不是p99的直方圖。
4.3 Traces
必填字段是:「trace_id」,「span_id」,「parent_id」,「service」,「peer」,「route」,「qos」。
在域(消費者/生產者)和網絡跳線(中繼/橋)之間進行鏈接。
5)QoS和優先級
P0(關鍵):SLI付款/付款,橋梁/節點狀態,burn-rate SLO →嚴格的交付(acks,retries,等效性),最小時間間隔。
P1(重要):產品事件/基本指標→ SLO內的保證交付。
P2(背景):詳細的日誌,調試→最好的effort,可以在擁塞時進行。
政客:不同的隊列,生產者配額,後壓,限額限制,「idempotency_key」的去世。
6)基數和預算指標
標簽規則6:每個度量不超過6個鍵,固定值字典。
基數≤ 10 k 時間序列/度量/tenant。
采樣:用於跟蹤的頭部/尾部;downsampling 10s→1m→5m→1h指標。
Quotas:每tentant和QoS類的點/秒和字節/秒限制。
Linter電路:拒絕帶有「爆炸」標簽(id,電子郵件,ip等)的指標。
7)收集和交付: push vs pull
推送(OTLP/StatsD/HTTP):靈活性,移動/邊緣客戶端,P0通道。
Pull (Prometheus):內部基礎設施,可預測的目標。
混合體:exporters→gateway→TSDB;各地區的聯合剪輯。
運輸:QUIC/HTTP/2,壓縮,戰鬥,TLS/mTLS,帶噴射器的中繼。
8) SLI/SLO和alerting
8.1基本的SLI
可用性百分之末端/網關,
Latency p50/p95/p99沿關鍵路線,
Error-rate (5xx/timeout/abort),
通過輪胎,Queue depth,
Freshness店面(延遲ingest→serve)。
8.2 SLO示例
P0 pipelines: Availability ≥ 99.95%, p99 latency ≤ 400 мс, Delivery lag p95 ≤ 2 с.
P1: Availability ≥ 99.9%,Freshness p95 ≤ 3分鐘。
P2: Freshness p95 ≤ 15 мин, no-page.
8.3 Burn-rate alerta(示例)
2小時窗口:'error_budget_burn ≥ 2 × '→頁。
6小時窗口:'error_budget_burn ≥ 1 × '→ page/升級。
與「queue_lag」和「drop_rate」 P0組合。
9)保管處及保管處
TSDB指標:高頻-7-14天;總量為6-12個月。
事件/記錄:熱存儲7-30天,冷(對象)6-24個月。
Traces: sampling 1-10%;保留「緩慢/有缺陷」的旋轉(基於尾巴)。
PII的刪除/修訂策略和數據主體的請求。
10)隱私、安全和隔離
PII最小化:字段令牌/別名,禁止度量標準中的「原始」ID。
mTLS/事件簽名,固定制作人密鑰。
ACL/ABAC 的主題/服務/tenants,寫作/讀取的單個密鑰。
Tenant sandboxing:邏輯/物理分離、限制和限額。
Audit trail:不可更改的訪問/更改日誌。
11)處理流(stream jobs)
Enrich:正常化,地理/版本/流量類。
Aggregate:10 s/1m/5m窗口,直方圖,量子草圖。
檢測:異常(EWMA/ESD),分布漂移,隊列爆發。
路線:粉絲進入店面/alerters/webhooks合作夥伴。
Guard:「紅色按鈕」-throttling/kill-switch按源/主題。
12)Dashbords(參考模型)
Ops Core (小時/real time): p95 latency, error-rate, delivery lag, queue depth, success-rate ingest.
Pipelines Health: freshness per pipeline, drop-rate, backpressure, burn-rate SLO.
Tenant Usage:行/秒、字節/秒、基數、頂級標簽。
安全/合規性:mTLS狀態,到期鍵,可用性,PII修訂版。
商業鏡頭:轉化/支付/橋接SLI旁邊的那些指標。
13)配置示例
QoS類和限制(YAML)
yaml telemetry:
qos:
P0:
topics: [payout. sli, bridge. finality, gateway. availability]
delivery: guaranteed retry:
attempts: 3 backoff_ms: [100, 400, 800]
max_queue_lag_ms: 2000
P1:
topics: [product. events, api. metrics]
delivery: at-least-once sampling: 1. 0
P2:
topics: [debug. logs, verbose. traces]
delivery: best-effort sampling: 0. 1 quotas:
tenant_default:
metrics_points_per_sec: 50_000 logs_mb_per_hour: 500 traces_spans_sampled_pct: 5
標簽指標(策略)
yaml metrics_policy:
allowed_labels: [service, route, code, region, tenant, version]
forbidden_labels: [user_id, email, ip, session_id]
max_label_value_count: 1000
yaml alerts:
- name: "p0_error_burn_2h"
expr: burn_rate_p0_2h > 2 action: [page_oncall, open_incident]
- name: "queue_lag_p0"
expr: queue_lag_ms_p95 > 2000 action: [page_oncall]
14)數據圖和查詢
指標寄存器(目錄)
sql
CREATE TABLE metric_catalog(
name TEXT PRIMARY KEY,
unit TEXT, description TEXT,
labels JSONB, owner TEXT, qos TEXT, sla JSONB
);
隊列和陣列
sql
SELECT topic,
PERCENTILE_CONT(0. 95) WITHIN GROUP (ORDER BY lag_ms) AS lag_p95,
SUM(dropped) AS drops
FROM queue_metrics
WHERE ts >= now() - INTERVAL '24 hours'
GROUP BY topic;
Tentant的紅衣主教
sql
SELECT tenant, metric_name, COUNT(DISTINCT series_id) AS series
FROM tsdb_series
WHERE day = current_date
GROUP BY tenant, metric_name
ORDER BY series DESC
LIMIT 50;
15)流程和角色
Telemetry Owner-計劃/政策/配額,基本控制。
SRE/Ops-SLO,Alerts,事件,縮放。
Security/Compliance-密鑰、訪問、PII、審核。
產品/BI是KPI,分析,A/B度量的展示。
Tenants(合作夥伴)-正確的SDK集成和合同合規性。
16)事件劇本
A.基本性爆炸
1.生產者自動塊/度量,2)切斷「壞」標簽,3)復古聚合,4)後太平間和林特規則。
B. queue lag P0的增長
1.包括優先級,2)擴大政黨/消費者,3)暫時降低P2采樣,4)瓶頸分析。
C. Freshness店面倒塌
1.切換到備用連接器,2)啟用降級模式(「最後最終化」),3)通知源的所有者。
D.指標中的PII泄漏
1.立即鎖定線程,2)熱層上的幹擾,3)DPO/Compliance通知,4)磁帶/SDK更新。
E.大量5 x/跟蹤錯誤
1.Paige,2)基於尾巴的誤差采樣↑,3)關鍵路由的跟蹤診斷,4)發行回滾/幻燈片標誌。
17)實施支票
1.批準事件/指標/預告片合同和有效標簽列表。
2.啟動QoS類、拓撲/隊列、quotas和預算指標。
3.自定義ingest (push/pull)、TLS/mTLS、retrai和等效性。
4.包括度量/事件目錄和電路linter。
5.定義SLI/SLO、burn-rate alerta和升級。
6.建立Ops/Pipelines/Tenant/Security dashbords。
7.運行遙測混沌測試(損失/抖動/尖峰)。
8.定期審核基本性、可信度和存儲成本。
18)詞匯表
QoS是質量/交付優先級類別。
Freshness-延遲數據出現在店面。
Burn-rate-相對於SLO的錯誤預算支出率。
Cardinality是唯一度量級數(標簽組合)的數量。
基於尾巴的采樣是「緩慢/錯誤」跟蹤的樣本。
Idempotency key是重復數據消除事件的關鍵。
底線:信號和指標的分配不僅僅是「收集和顯示圖表」,而是合同、質量保證渠道和預算的紀律。遵循此框架,生態系統將獲得可預測的可觀察性,可抵抗激增,對數據私有化,並且可用於運營和業務環路中的解決方案。