Observability監視
PrometheusとOpenTelemetryを使い、個々のvisitorを追跡せずにaggregate traffic、errors、downloads、page usageを確認します。
Prometheus metrics endpoint endpoint
[metrics]
enabled = true
listen = "127.0.0.1:9100"
OTLP export設定設定
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はwebsite serviceにこれを設定します。設定値 FLUXHEIM_OTLP=disabled を使うと、同じbinaryをmetrics/traces exportなしで実行できます。
labelsはlow-cardinalityに保ちます: route group、language、status class、download artifact、GitHub targetが有用です。Raw IP addressesやuser identifiersは使いません。
dashboardに出すもの
| signal | 重要な理由 |
|---|---|
| route別requests | どのpublic pagesとdocsが使われているかを示します。 |
| locale別requests | どのlanguagesにより多くのcareが必要かを示します。 |
| status classes | individual usersを追跡せずにerrorsを示します。 |
| Download clicks | どのrelease artifactsが有用かを示します。 |
| GitHub clicks集計集計 | どのexternal project linksが重要かを示します。 |
privacy boundary
- raw request logsではなくaggregate countersとhistogramsを使います。
- Do not label metrics with IP addresses, user agents, or full URLs.
- PrometheusとOTLP listenersはloopbackまたはinternal networkに置きます。
- tracking behaviorをprivacyとcookies pagesで見えるようにします。