可観測性
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
可観測性compose stackはWebサイトサービスにこれを設定します。設定値 FLUXHEIM_OTLP=disabled を使うと、同じバイナリをmetrics/traces exportなしで実行できます。
バージョン 1.6.37 では、host-network のポートが他の runner プロセスと競合した場合に、Prometheus と Jaeger の一時起動を新しいポートで再試行します。これにより、ローカルの observability smoke がより安定します。
ラベルは低カーディナリティに保ちます: ルートグループ、言語、状態クラス、ダウンロード成果物、GitHubターゲットが有用です。生のIPアドレスやユーザー識別子は使いません。
ダッシュボードに出すもの
| シグナル | 重要な理由 |
|---|---|
| ルート別リクエスト | どの公開ページとドキュメントが使われているかを示します。 |
| ロケール別リクエスト | どの言語により多くの手入れが必要かを示します。 |
| ステータスクラス | 個々のユーザーを追跡せずにエラーを示します。 |
| Download clicks | どのリリース成果物が有用かを示します。 |
| GitHubクリック集計 | どの外部プロジェクトリンクが重要かを示します。 |
プライバシー境界
- 生のリクエストログではなく集約カウンターとヒストグラムを使います。
- Do not label metrics with IP addresses, user agents, or full URLs.
- PrometheusとOTLPリスナーはloopbackまたは内部ネットワークに置きます。
- トラッキング動作をプライバシーとCookieページで見えるようにします。