You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为OpenTelemetry Collector添加拉取式接收器及选型疑问

为OpenTelemetry Collector配置拉取式接收器

一、添加拉取式接收器的基本步骤

拉取式接收器通过主动从数据源获取遥测数据工作,配置流程如下:

  • 打开OpenTelemetry Collector的配置文件(通常为config.yaml)
  • 在receivers区块下添加对应拉取式接收器的配置
  • 将该接收器加入service.pipelines的对应管道(metrics/traces/logs)中,确保Collector加载并启用它

二、常见拉取式接收器示例

目前OTLP协议本身设计为推送模式,官方未提供OTLP拉取式接收器。如果需要拉取架构,可选的接收器不止Prometheus刮取式接收器,以下是几种常用选项:

1. Prometheus接收器(最通用)

用于刮取暴露Prometheus格式指标的端点,是拉取架构中最常用的选择:

receivers:
  prometheus:
    config:
      scrape_configs:
        - job_name: "backend-service"
          scrape_interval: 15s  # 刮取间隔
          static_configs:
            - targets: ["backend:8080/metrics"]  # 目标端点

service:
  pipelines:
    metrics:
      receivers: [prometheus]

2. hostmetrics接收器

主动拉取本地主机的系统指标(CPU、内存、磁盘等):

receivers:
  hostmetrics:
    collection_interval: 30s  # 拉取间隔
    scrapers:
      cpu:  # 启用CPU指标拉取
      memory:  # 启用内存指标拉取
      disk:  # 启用磁盘指标拉取

service:
  pipelines:
    metrics:
      receivers: [hostmetrics]

3. sqlquery接收器

从关系型数据库(如MySQL、PostgreSQL)中拉取自定义指标:

receivers:
  sqlquery:
    driver: "mysql"
    dsn: "username:password@tcp(db-host:3306)/db-name"
    queries:
      - name: "active_db_connections"
        sql: "SHOW GLOBAL STATUS LIKE 'Threads_connected'"
        interval: 60s  # 查询间隔

service:
  pipelines:
    metrics:
      receivers: [sqlquery]

三、关于OTLP拉取式接收器的说明

OTLP协议的核心设计是客户端主动推送遥测数据到Collector,因此官方并未提供OTLP拉取式接收器。如果你的数据源仅支持OTLP推送,而你需要拉取架构,可以考虑在数据源侧添加中转组件(如将OTLP数据写入Prometheus兼容的端点,再用Prometheus接收器刮取),但这属于间接实现。


内容的提问来源于stack exchange,提问作者Andriy Sultanov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 23:52:45