このページでは、haproxyreceiverおよびPrometheusレシーバーパスを含む、OpenTelemetry経由で収集されたすべてのHAProxyメトリクスの完全なリファレンスを提供します。
概要
HAProxyのOpenTelemetryインテグレーションは、haproxyreceiverを介してHAProxy CSV statsエンドポイントからメトリクスを収集します。メトリクスは2つのティアに編成されています:
- デフォルトのメトリクス(17): デフォルトの設定で自動的に収集されます — ほとんどの監視ユースケースに十分です
- オプションのメトリクス(16):デフォルトでは無効ですが、レシーバーの
metricsセクションで個別に有効にできます — 詳細なデバッグやキャパシティプランニングに役立ちます
NRDOTのガイド付きインストールを使用する場合、2つの設定から選択できます:
- 最適化(取り込み量の削減): 17のデフォルトメトリクス、60秒の収集間隔、最適化プロセッサの適用
- 包括的(詳細): 27のメトリクス(デフォルト17+オプション10)、15秒の収集間隔
ヒント
オプションのメトリクスを有効にするには、enabled: trueを使用してhaproxyレシーバー設定のmetricsセクションにそれらを追加します。設定の詳細については、OpenTelemetryを使用したセルフホスト型HAProxyのモニターを参照してください。
デフォルトのメトリクス
これら17のメトリクスはデフォルトの設定で収集されます(metricsセクションは不要です)。
メトリクス名 | 説明 | タイプ | ユニット |
|---|---|---|---|
| プロキシが受信した合計バイト数(フロントエンド、バックエンド、およびサーバーごとに収集) | 合計(累積) | 作成者 |
| プロキシによって送信された合計バイト数(フロントエンド、バックエンド、およびサーバーごとに収集) | 合計(累積) | 作成者 |
| 接続エラーの総数(バックエンドとサーバーのみ) | 合計(累積) | {errors} |
| 過去1秒間の1秒あたりの接続数(フロントエンドのみ) | ゲージ | {connections}/s |
| 接続再試行の合計数(バックエンドとサーバーのみ) | 合計(累積) | {retries} |
| 拒否されたrequestsの合計数(フロントエンドおよびバックエンド) | 合計(累積) | {requests} |
| リクエストエラーの合計数(フロントエンドのみ) | 合計(累積) | {errors} |
| キューに入れられた現在のrequests数(バックエンドとサーバーのみ) | ゲージ | {requests} |
| 過去1秒間の1秒あたりのHTTP requests数(フロントエンドのみ) | ゲージ | {requests}/s |
| リクエストの再ディスパッチの合計数(バックエンドおよびサーバーのみ) | 合計(累積) | {requests} |
| 受信したHTTP requestsの合計数(フロントエンドとバックエンド) | 合計(累積) | {requests} |
| 拒否された応答の合計数(フロントエンド、バックエンド、およびサーバー) | 合計(累積) | {responses} |
| レスポンスエラーの合計数(バックエンドとサーバーのみ) | 合計(累積) | {errors} |
| サーバーがロードバランシングのために選択された合計回数(バックエンドとサーバー) | 合計(累積) | {selections} |
| 過去1024 requestsの平均合計セッション時間(秒単位)(バックエンドとサーバー) | ゲージ | s |
| アクティブなセッションの現在の数(フロントエンド、バックエンド、およびサーバー) | ゲージ | {sessions} |
| 過去1秒間の1秒あたりのセッション数(フロントエンド、バックエンド、およびサーバー) | ゲージ | {sessions}/s |
オプションのメトリクス
これら16のメトリクスは、デフォルトで無効になっています。レシーバーのmetricsセクションでenabled: trueを設定することにより、コレクターの設定で個別に有効にします。
NRDOTの包括的な設定では、これらの最初の10個([C]でマーク)が有効になります。
メトリクス名 | 説明 | タイプ | ユニット |
|---|---|---|---|
[C] | 秒単位の平均接続時間(レイテンシ監視) | ゲージ | s |
[C] | 秒単位のrequestsの平均キュー時間 | ゲージ | s |
[C] | 秒単位の平均応答時間 | ゲージ | s |
[C] | バックエンド内のアクティブなサーバーの数 | ゲージ | {servers} |
[C] | バックエンド内のバックアップサーバーの数 | ゲージ | {servers} |
[C] | 合計ダウンタイム(秒) | 合計(累積) | s |
[C] | 失敗したヘルスチェックの合計数 | 合計(累積) | {checks} |
[C] | サーバーの重み(ロードバランシングの決定に使用) | ゲージ | {weight} |
[C] | セッションの累積合計数 | 合計(累積) | {sessions} |
[C] | 累積接続の合計数 | 合計(累積) | {connections} |
| コンプレッサーに送信されたバイトの合計数 | 合計(累積) | 作成者 |
| コンプレッサーが出力したバイトの合計数 | 合計(累積) | 作成者 |
| 圧縮をバイパスしたバイトの合計数 | 合計(累積) | 作成者 |
| 圧縮されたHTTPレスポンスの合計数 | 合計(累積) | {responses} |
| クライアントによって中止されたデータ転送の合計数 | 合計(累積) | {cancellations} |
| プロキシに設定されたセッション制限 | ゲージ | {sessions} |
リソース属性
以下のリソース属性はすべてのHAProxyメトリクスに付与され、フィルタリングとグループ化のコンテキストを提供します。
属性 | 説明 | 値の例 |
|---|---|---|
| HAProxyプロキシの名前(haproxy.cfgのfrontend/backend/listenセクション名から) |
、
、
|
| タイプ識別子またはサーバー名:フロントエンド集計の場合は
、バックエンド集計の場合は
、サーバーごとのメトリクスの場合は特定のサーバー名 |
、
、
、
|
| スクレイピングされたstatsエンドポイントURL(エンティティ識別子の一部として使用) |
|
| ホストの固有識別子(Linux上の
から) |
|
| コレクターを実行しているマシンのホスト名 |
|
| OSタイプ |
|
エンティティ識別子: New RelicのHAProxyエンティティは、host.id+haproxy.addr(たとえばec23da5ead46571f2c3a9771b093658b:http://localhost:8404/stats)から合成されます。
Prometheusメトリクスマッピング
Prometheusレシーバーパスを使用している場合、次の表は、HAProxy Prometheusのメトリクス名がOTel haproxyreceiverの対応するものにどのようにマッピングされるかを示しています。各OTelメトリクスには、複数のPrometheusソースがある場合があります(ティアごとに1つ:フロントエンド、バックエンド、サーバー)。
OTelメトリックス | Prometheusフロントエンド | Prometheusバックエンド | Prometheusサーバー |
|---|---|---|---|
|
|
|
|
|
|
|
|
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
| — | — |
| — |
|
|
|
| — | — |
| — |
|
|
|
|
| — |
|
|
|
|
| — |
|
|
| — |
|
|
| — |
|
|
|
|
|
|
|
|
|
|
重要
Prometheusパスの既知の制限事項:
- ステータスコードごとのFACETなし: haproxyreceiverは、
hrsp_*のCSVフィールドをhaproxy.requests.totalのstatus_code属性に解析します。Prometheusパスはこれをサポートしていません — HTTPレスポンスコードの内訳は、変換設定に含まれない個別のメトリクス(haproxy_frontend_http_responses_total{code="2xx"})としてのみ利用可能です。 - レートメトリクスはライフタイムの最大値です:
haproxy.connections.rateはhaproxy_frontend_connections_rate_maxにマッピングされ、haproxy.requests.rateはhaproxy_frontend_http_requests_rate_maxにマッピングされます。これらはライフタイム最大値であり、瞬間レートではありません。実際の現在のレートについては、累積カウンターメトリクスに対してrate()NRQL関数を使用してください。 - 約136のPrometheusメトリクスにはOTelの同等物がありません: HAProxyのPrometheusエンドポイントは約204のメトリクスを公開します。17のOTelデフォルトメトリクスにマッピングされているのは36のみです(フロントエンド/バックエンド/サーバーのティア全体で)。残り(プロセスの内部、ヘルスチェックの詳細、DNSリゾルバーの統計)には、haproxyreceiverの同等物がありません。
NRQLクエリのサンプル
これらのクエリを使用して、New RelicでHAProxyメトリクスを探索します:
-- Current sessions across all frontendsFROM Metric SELECT latest(haproxy.sessions.count)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'FRONTEND'
-- Request rate per frontend over timeFROM Metric SELECT average(haproxy.requests.rate)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'FRONTEND'TIMESERIES
-- Backend error rate (responses.errors as rate)FROM Metric SELECT rate(sum(haproxy.responses.errors), 1 second)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'TIMESERIES
-- Bytes throughput per backendFROM Metric SELECT rate(sum(haproxy.bytes.input), 1 minute) AS 'Bytes In/min', rate(sum(haproxy.bytes.output), 1 minute) AS 'Bytes Out/min'FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'
-- Average session time per backend (latency indicator)FROM Metric SELECT average(haproxy.sessions.average)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'
-- Per-server session count (individual backend servers)FROM Metric SELECT latest(haproxy.sessions.count)FACET haproxy.proxy_name, haproxy.service_nameWHERE haproxy.service_name NOT IN ('FRONTEND', 'BACKEND')
-- Queued requests (indicates backend saturation)FROM Metric SELECT max(haproxy.requests.queued)FACET haproxy.proxy_nameWHERE haproxy.service_name = 'BACKEND'TIMESERIES次のステップ
- HAProxyデータの検索とクエリ — ダッシュボード、NRQLクエリ、およびデータナビゲーション
- セルフホスト型HAProxyをモニターする — Linux VMまたはベアメタルのセットアップ
- Kubernetes上のHAProxyをモニターする — コンテナ化された環境の自動ポッド検出
- NRQLアラート条件の作成 — HAProxyメトリクスに基づいてアラートを設定する