暴露指标

OpenTelemetry Collector 会暴露其已处理数据量的指标。这些指标对于监控 Collector 的运行状态以及诊断数据采集问题非常有价值。

可用指标

Collector 会暴露以下与数据处理量相关的指标:

Spans 指标

  • otelcol_receiver_accepted_spans:Receiver 接受的 span 数量
  • otelcol_receiver_refused_spans:Receiver 拒绝的 span 数量
  • otelcol_exporter_sent_spans:Exporter 发送的 span 数量
  • otelcol_exporter_enqueue_failed_spans:Exporter 中入队失败的 span 数量

Logs 指标

  • otelcol_receiver_accepted_logs:Receiver 接受的日志记录数量
  • otelcol_receiver_refused_logs:Receiver 拒绝的日志记录数量
  • otelcol_exporter_sent_logs:Exporter 发送的日志记录数量
  • otelcol_exporter_enqueue_failed_logs:Exporter 中入队失败的日志记录数量

Metrics 指标

  • otelcol_receiver_accepted_metrics:Receiver 接受的指标数据点数量
  • otelcol_receiver_refused_metrics:Receiver 拒绝的指标数据点数量
  • otelcol_exporter_sent_metrics:Exporter 发送的指标数据点数量
  • otelcol_exporter_enqueue_failed_metrics:Exporter 中入队失败的指标数据点数量

配置指标暴露

配置 Prometheus 指标端点

要暴露 Collector 的内部指标,请在 OpenTelemetryCollector 自定义资源(CR)中配置一个 Prometheus pull exporter。以下示例将 Collector 配置为在端口 8888 上以 Prometheus 格式暴露指标:

apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: <collector_name>
spec:
  config:
    service:
      telemetry:
        metrics:
          readers:
            - pull:
                exporter:
                  prometheus:
                    host: "0.0.0.0"
                    port: 8888
                    without_scope_info: true
                    without_type_suffix: true
                    without_units: true

启用指标抓取

要让 Prometheus 自动抓取 Collector 指标,请在 OpenTelemetryCollector CR 中将 spec.observability.metrics.enableMetrics 字段设置为 true。Operator 会根据 Collector 的部署模式自动创建 ServiceMonitorPodMonitor 资源:

apiVersion: opentelemetry.io/v1beta1
kind: OpenTelemetryCollector
metadata:
  name: <collector_name>
spec:
  observability:
    metrics:
      enableMetrics: true

手动验证(可选)

你可以使用 kubectl port-forward 直接访问 Collector 的指标端口,从而验证指标端点:

kubectl port-forward <collector_pod_name> 8888:8888

然后,在浏览器中打开 http://localhost:8888/metrics,或者使用 curl 验证指标是否已暴露:

curl http://localhost:8888/metrics

访问指标

启用指标抓取后,你可以通过 Alauda Container Platform 中的 Prometheus Web 控制台验证并访问 Collector 指标:

  1. 访问 Alauda Container Platform 集群中的 Prometheus Web 控制台。

  2. 导航到 StatusTargets

  3. 验证 <instance_name>-collector 格式的 ServiceMonitorsPodMonitors 处于 Up 状态。

当目标确认处于 Up 状态后,你可以使用 Prometheus 查询界面浏览 可用指标 部分中列出的 Collector 指标。