Prometheus是如何从otel-collector收取数据的

Prometheus 如何从 otel-collector 获取数据?

Prometheus 不会主动从 otel-collector 拉取 Trace 或 Log,但 可以主动拉取 Metrics 数据。它通过 HTTP(S) + /metrics 端点 访问 otel-collector,收集 OpenTelemetry 采集的 Metrics。


📌 1. 数据流向

(1) 应用程序 (Java Service)
      ↓
(2) OpenTelemetry Agent (otel-java-agent)
      ↓ Push (OTLP)
(3) OpenTelemetry Collector (otel-collector)
      ↓ Expose /metrics (Prometheus Exporter)
(4) Prometheus (主动 Pull 数据)
  • 应用程序:业务代码运行,生成 Metrics。
  • otel-java-agent:自动采集 Metrics,并 Push 给 otel-collector
  • otel-collector
    • 接收 OTLP(OpenTelemetry Protocol)Metrics。
    • 通过 prometheus exporter 暴露 /metrics 端点。
  • Prometheus
    • 主动访问 /metrics 端点,Pull 采集数据。

📌 2. otel-collector 配置 Prometheus Exporter

otel-collectorexporters 配置 Prometheus Exporter

receivers:
  otlp:
    protocols:
      grpc:
      http:

exporters:
  prometheus:
    endpoint: "0.0.0.0:9464"  # 这里暴露 Prometheus 可访问的 /metrics 端口

service:
  pipelines:
    metrics:
      receivers: [otlp]
      exporters: [prometheus]

📌 配置解析:

  • otel-collector 通过 prometheus exporter9464 端口提供 /metrics
  • Prometheus 可以从 http://otel-collector:9464/metrics 拉取数据。

📌 3. Prometheus 配置拉取 otel-collector

Prometheus 需要配置 scrape_configs 来拉取 otel-collector/metrics

scrape_configs:
  - job_name: "otel-collector"
    scrape_interval: 10s
    metrics_path: "/metrics"
    static_configs:
      - targets: ["otel-collector:9464"]

📌 配置解析:

  • scrape_interval: 10s 每 10 秒拉取一次数据。
  • metrics_path: "/metrics" 访问 otel-collector 的 Prometheus 端点。
  • targets: ["otel-collector:9464"] 指定 otel-collector 监听的 /metrics 端口。

📌 4. 如何验证 otel-collector 是否暴露 /metrics

方法 1:手动访问

otel-collector 服务器上执行:

curl http://localhost:9464/metrics

如果配置正确,你会看到类似:

# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 0.000132
go_gc_duration_seconds{quantile="0.25"} 0.000132
...

表示 /metrics 端点已成功暴露。

方法 2:Prometheus Web 界面

  1. 访问 http://<Prometheus-Server>:9090/targets
  2. 找到 otel-collector,查看是否 状态为 UP

📌 5. 总结

otel-collector 通过 Prometheus Exporter 暴露 /metrics 端点。
✅ Prometheus 通过 HTTP Pull 拉取 /metrics 数据。
✅ 配置 Prometheus scrape_configs 让它定期拉取 Metrics。


💡 如果你的 Prometheus 没有获取到数据,可以检查:

  1. otel-collector 是否正确暴露了 /metricscurl 测试)。
  2. Prometheus 配置的 scrape_configs 目标是否正确。
  3. Prometheus http://<prometheus>:9090/targets 页面是否显示 otel-collector 状态为 UP

🚀 这样,你就可以用 Prometheus + OpenTelemetry 监控 Java 服务的 Metrics 了! 🎯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蘋天纬地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值