4.4. Jaeger UI の Monitor タブの設定


リクエストのレート、エラー、および期間 (RED) メトリクスをトレースから抽出して、OpenShift Container Platform Web コンソールの Monitor タブの Jaeger コンソールで視覚化できます。メトリクスは、Prometheus によってコレクターからスクレイピングされた OpenTelemetry コレクター内のスパンから導出されます。Prometheus は、ユーザーワークロードモニタリングスタックにデプロイできます。Jaeger UI は、Prometheus エンドポイントからこれらのメトリクスをクエリーし、可視化します。

前提条件

  • Distributed Tracing Platform の権限とテナントを設定した。詳細は、「権限とテナントの設定」を参照してください。

手順

  1. OpenTelemetry Collector の OpenTelemetryCollector カスタムリソースで、Spanmetrics コネクター (spanmetrics) を有効にします。このコネクターは、トレースからメトリクスを導出し、そのメトリクスを Prometheus 形式でエクスポートします。

    スパン RED 用の OpenTelemetryCollector カスタムリソースの例

    apiVersion: opentelemetry.io/v1beta1
    kind: OpenTelemetryCollector
    metadata:
      name: otel
    spec:
      mode: deployment
      observability:
        metrics:
          enableMetrics: true 
    1
    
      config: |
        connectors:
          spanmetrics: 
    2
    
            metrics_flush_interval: 15s
    
        receivers:
          otlp: 
    3
    
            protocols:
              grpc:
              http:
    
        exporters:
          prometheus: 
    4
    
            endpoint: 0.0.0.0:8889
            add_metric_suffixes: false
            resource_to_telemetry_conversion:
              enabled: true 
    5
    
    
          otlp:
            auth:
              authenticator: bearertokenauth
            endpoint: tempo-redmetrics-gateway.mynamespace.svc.cluster.local:8090
            headers:
              X-Scope-OrgID: dev
            tls:
              ca_file: /var/run/secrets/kubernetes.io/serviceaccount/service-ca.crt
              insecure: false
    
        extensions:
          bearertokenauth:
            filename: /var/run/secrets/kubernetes.io/serviceaccount/token
    
        service:
          extensions:
          - bearertokenauth
          pipelines:
            traces:
              receivers: [otlp]
              exporters: [otlp, spanmetrics] 
    6
    
            metrics:
              receivers: [spanmetrics] 
    7
    
              exporters: [prometheus]
    
    # ...
    Copy to Clipboard

    1
    ServiceMonitor カスタムリソースを作成して、Prometheus エクスポーターの収集を有効にします。
    2
    Spanmetrics コネクターはトレースを受信し、メトリクスをエクスポートします。
    3
    OpenTelemetry プロトコルのスパンを受信する OTLP レシーバー。
    4
    Prometheus エクスポーターは、Prometheus 形式でメトリクスをエクスポートするために使用されます。
    5
    リソース属性はデフォルトでドロップされます。
    6
    Spanmetrics コネクターは、トレースパイプラインのエクスポーターとして設定されています。
    7
    Spanmetrics コネクターは、メトリクスパイプラインのレシーバーとして設定されています。
  2. TempoStack カスタムリソースで、Monitor タブを有効にし、ユーザー定義のモニタリングスタックからデータを照会するように、Prometheus エンドポイントを Thanos Querier サービスに設定します。

    Monitor タブが有効な TempoStack カスタムリソースの例

    apiVersion: tempo.grafana.com/v1alpha1
    kind: TempoStack
    metadata:
      name: redmetrics
    spec:
      storage:
        secret:
          name: minio-test
          type: s3
      storageSize: 1Gi
      tenants:
        mode: openshift
        authentication:
          - tenantName: dev
            tenantId: "1610b0c3-c509-4592-a256-a1871353dbfa"
      template:
        gateway:
          enabled: true
        queryFrontend:
          jaegerQuery:
            monitorTab:
              enabled: true 
    1
    
              prometheusEndpoint: https://thanos-querier.openshift-monitoring.svc.cluster.local:9092 
    2
    
              redMetricsNamespace: "" 
    3
    
    
    # ...
    Copy to Clipboard

    1
    Jaeger コンソールの監視タブを有効にします。
    2
    ユーザーワークロードモニタリングからの Thanos Querier のサービス名。
    3
    オプション: Jaeger クエリーが Prometheus メトリクスを取得するメトリクス namespace。この行は、0.109.0 より前のバージョンの OpenTelemetry Collector を使用している場合にのみ含めてください。OpenTelemetry Collector バージョン 0.109.0 以降を使用している場合は、この行を省略します。
  3. オプション: spanmetrics コネクターによって生成されるスパン RED メトリクスを、アラートルールで使用します。たとえば、このコネクターは、サービスの速度低下に関するアラートの場合や、サービスレベル目標 (SLO) を定義する場合のために、duration_bucket ヒストグラムと calls カウンターメトリクスを作成します。これらのメトリクスには、サービス、API 名、操作タイプ、その他の属性を識別するラベルが付いています。

    表4.4 spanmetrics コネクターで作成されるメトリクスのラベル
    ラベル説明

    service_name

    otel_service_name 環境変数によって設定されるサービス名。

    frontend

    span_name

    操作の名前。

    • /
    • /customer

    span_kind

    サーバー、クライアント、メッセージング、または内部操作を識別します。

    • SPAN_KIND_SERVER
    • SPAN_KIND_CLIENT
    • SPAN_KIND_PRODUCER
    • SPAN_KIND_CONSUMER
    • SPAN_KIND_INTERNAL

    フロントエンドサービスで 2000 ミリ秒以内に 95% の要求が処理されない場合の SLO のアラートルールを定義する PrometheusRule カスタムリソースの例

    apiVersion: monitoring.coreos.com/v1
    kind: PrometheusRule
    metadata:
      name: span-red
    spec:
      groups:
      - name: server-side-latency
        rules:
        - alert: SpanREDFrontendAPIRequestLatency
          expr: histogram_quantile(0.95, sum(rate(duration_bucket{service_name="frontend", span_kind="SPAN_KIND_SERVER"}[5m])) by (le, service_name, span_name)) > 2000 
    1
    
          labels:
            severity: Warning
          annotations:
            summary: "High request latency on {{$labels.service_name}} and {{$labels.span_name}}"
            description: "{{$labels.instance}} has 95th request latency above 2s (current value: {{$value}}s)"
    Copy to Clipboard

    1
    95% のフロントエンドサーバーの応答時間値が 2000 ミリ秒未満であるかどうかを確認する式。時間範囲 ([5m]) が収集間隔の 4 倍以上で、メトリクスの変化に対応できる十分な長さである必要があります。
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat