可觀測性
使用 Prometheus 和 OpenTelemetry 查看聚合流量、錯誤、下載和頁面使用情況,同時不跟蹤單個訪客。
Prometheus 指標
[metrics]
enabled = true
listen = "127.0.0.1:9100"
OTLP 匯出
FLUXHEIM_OTLP=enabled
OTEL_EXPORTER_OTLP_ENDPOINT=http://otel-collector:4318
OTEL_EXPORTER_OTLP_PROTOCOL=http/protobuf
OTEL_METRIC_EXPORT_INTERVAL=5000
observability compose stack 會為網站服務設定這些值。設定 FLUXHEIM_OTLP=disabled 即可執行同一個 binary,但不匯出 metrics 或 traces。
版本 1.6.37 會在 host-network 連接埠與其他 runner 程序競爭時,以新分配的連接埠重試一次性 Prometheus 與 Jaeger 啟動,讓本機 observability smoke 更可靠。
保持低基數 labels:route group、language、status class、download artifact 和 GitHub target 很有用。原始 IP 地址和使用者識別符號不應使用。
Dashboard 應展示什麼
| 訊號 | 為什麼重要 |
|---|---|
| 按 route 的 requests | 顯示哪些公共頁面和文件正在被使用。 |
| 按 locale 的 requests | 顯示哪些語言最需要維護。 |
| 狀態類別 | 顯示錯誤,同時不跟蹤單個使用者。 |
| Download clicks | 顯示哪些 release artifacts 有用。 |
| GitHub 點選 | 顯示哪些外部專案連結重要。 |
隱私邊界
- 使用聚合 counters 和 histograms,而不是原始 request logs。
- Do not label metrics with IP addresses, user agents, or full URLs.
- 將 Prometheus 和 OTLP listeners 保持在 loopback 或內部網路。
- 在隱私和 cookie 頁面清楚說明 tracking 行為。