4.4. 在 Jaeger UI 中配置 Monitor 选项卡


您可以在 OpenShift Container Platform Web 控制台的 Monitor 选项卡中通过 Jaeger Console 提取请求率、错误和持续时间(RED)指标,并通过 Jaeger Console 进行视觉化。指标来自 OpenTelemetry Collector 中的 span,由 Prometheus 从 Collector 中提取,您可以在用户工作负载监控堆栈中部署。Jaeger UI 从 Prometheus 端点查询这些指标,并视觉化它们。

先决条件

  • 您已为分布式跟踪平台配置了权限和租户。如需更多信息,请参阅"配置权限和租户"。

流程

  1. OpenTelemetry Collector 的 OpenTelemetryCollector 自定义资源中,启用 Spanmetrics Connector (spanmetrics),它将从 trace 派生指标,并以 Prometheus 格式导出指标。

    span 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 Toggle word wrap

    1
    创建 ServiceMonitor 自定义资源,以启用 Prometheus exporter 的提取。
    2
    Spanmetrics 连接器接收 trace 和 exports 指标。
    3
    OTLP 接收器在 OpenTelemetry 协议中接收 span。
    4
    Prometheus exporter 用于导出 Prometheus 格式的指标。
    5
    默认丢弃资源属性。
    6
    Spanmetrics 连接器在 trace 管道中被配置为 exporter。
    7
    Spanmetrics 连接器在 metrics 管道中配置为接收器。
  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 Toggle word wrap

    1
    在 Jaeger 控制台中启用 Monitoring 选项卡。
    2
    来自 user-workload 监控的 Thanos Querier 的服务名称。
    3
    可选: Jaeger 查询检索 Prometheus 指标的指标命名空间。只有在您使用比 0.109.0 更早的 OpenTelemetry Collector 版本时,才包含这一行。如果您使用 OpenTelemetry Collector 版本 0.109.0 或更高版本,请省略这一行。
  3. 可选:使用带有警报规则的 spanmetrics 连接器生成的 span RED 指标。例如,对于有关较慢的服务或定义服务级别目标(SLO)的警报,连接器会创建一个 duration_bucket 直方图和 调用 计数器指标。这些指标具有标识服务、API 名称、操作类型和其他属性的标签。

    Expand
    表 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

    PrometheusRule 自定义资源示例,当前端服务于 2000ms 内没有提供 95% 时 SLO 定义警报规则

    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 Toggle word wrap

    1
    这个表达式检查,是否 95% 的前端服务器响应时间值低于 2000 ms。时间范围 ([5m]) 必须至少是提取间隔的四倍,并且足以适应指标的变化。
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat