可观测性
使用 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 行为。