OBI の Prometheus と OpenTelemetry メトリクスヒストグラムを設定する

Prometheus と OpenTelemetry のメトリクスヒストグラムを設定し、ネイティブヒストグラムおよび指数ヒストグラムを使用するかを設定します。

OBI の Prometheus および OpenTelemetry メトリクスヒストグラムを設定できます。 ネイティブヒストグラムや指数ヒストグラムを使用することも選択できます。

ヒストグラムバケットの上書き

OpenTelemetry および Prometheus のメトリクスエクスポーターのヒストグラムバケット境界は、buckets YAML 設定オプションを設定することで上書きできます。

YAML セクション: otel_metrics_export.buckets

たとえば次のとおりです。

otel_metrics_export:
  buckets:
    duration_histogram: [0, 1, 2]
YAML
duration_histogram[]float64

リクエスト時間に関するメトリクスのバケット境界を設定します。 具体的には次のとおりです。

  • http.server.request.duration (OTel) / http_server_request_duration_seconds (Prometheus)
  • http.client.request.duration (OTel) / http_client_request_duration_seconds (Prometheus)
  • rpc.server.call.duration (OTel) / rpc_server_call_duration_seconds (Prometheus)
  • rpc.client.call.duration (OTel) / rpc_client_call_duration_seconds (Prometheus)

値を未設定のままにした場合、OBI は OpenTelemetry セマンティック規約 のデフォルトのバケット境界を使用します。

0, 0.005, 0.01, 0.025, 0.05, 0.075, 0.1, 0.25, 0.5, 0.75, 1, 2.5, 5, 7.5, 10

YAML セクション: prometheus_export.buckets

prometheus_export:
  buckets:
    request_size_histogram: [0, 10, 20, 22]
    response_size_histogram: [0, 10, 20, 22]
YAML
request_size_histogram[]float64
response_size_histogram[]float64

リクエストおよびレスポンスのサイズに関するメトリクスのバケット境界を設定します。

  • http.server.request.body.size (OTel) / http_server_request_body_size_bytes (Prometheus)
  • http.client.request.body.size (OTel) / http_client_request_body_size_bytes (Prometheus)
  • http.server.response.body.size (OTel) / http_server_response_body_size_bytes (Prometheus)
  • http.client.response.body.size (OTel) / http_client_response_body_size_bytes (Prometheus)

値を未設定のままにした場合、OBI は次のデフォルトのバケット境界を使用します。

0, 32, 64, 128, 256, 512, 1024, 2048, 4096, 8192

これらのデフォルト値は UNSTABLE であり、Prometheus または OpenTelemetry セマンティック規約が異なるバケット境界を推奨するようになった場合、変更される可能性があります。

TCP RTT ヒストグラム

いずれかのエクスポーターの buckets セクション内の stat_tcp_rtt_histogram を使用して、obi.stat.tcp.rtt / obi_stat_tcp_rtt_seconds の明示的な境界を設定します。

otel_metrics_export:
  buckets:
    stat_tcp_rtt_histogram: [0.001, 0.005, 0.01, 0.05, 0.1, 0.5, 1]

デフォルトの境界(秒単位)は次のとおりです。

0.0005, 0.001, 0.002, 0.005, 0.010, 0.025, 0.050, 0.100, 0.250, 0.500, 1.0

histogram_aggregationbase2_exponential_bucket_histogram の場合、OpenTelemetry エクスポーターは明示的な境界を無視します。

ネイティブヒストグラムと指数ヒストグラムを使用する

Prometheus では、Prometheus コレクターで native-histograms 機能を有効化 することで ネイティブヒストグラム を有効にできます。

OpenTelemetry では、バケットを手動で定義するかわりに、事前定義されたヒストグラムに対して 指数ヒストグラム を使用できます。 標準の OTEL_EXPORTER_OTLP_METRICS_DEFAULT_HISTOGRAM_AGGREGATION 環境変数を設定してください。 詳細は OTel メトリクスエクスポーター セクションの histogram_aggregation セクションを参照してください。