跳转到主要内容
AutoMQ 支持将指标导出到 Datadog 进行监控和告警。本文介绍两种集成方式,适用于不同的部署环境:
  • Kubernetes:使用 Datadog Agent 内置的 OpenTelemetry(OTEL)Collector,通过 Kubernetes 服务发现抓取 AutoMQ Pod 的 Prometheus 指标。
  • Linux(EC2 / VM):使用 Vector 接收 AutoMQ 的 Prometheus Remote Write 数据,并转发到 Datadog。

前提条件

  • 已部署并启用指标导出的 AutoMQ 集群
  • 有效的 Datadog API Key
  • Datadog Site URL(例如 datadoghq.comus3.datadoghq.comdatadoghq.eu

方式一:Kubernetes 环境使用 Datadog Agent(OTEL Collector)

该方式下,Datadog Agent 以 DaemonSet 形式运行,内置 OTEL Collector。Collector 通过 Kubernetes 服务发现抓取 AutoMQ Pod 的 Prometheus 指标,然后导出到 Datadog。

步骤 1:配置 AutoMQ 指标导出

在 Kubernetes 上通过 Helm 部署 AutoMQ 时,在 Helm values 中将指标导出器设置为 Prometheus 模式:
此配置会在每个 AutoMQ Pod 的 9090 端口暴露 Prometheus 格式的指标。 为了让 Datadog Agent 能发现这些 Pod,请在 controller.annotationsbroker.annotations 下添加以下配置:
这些 annotation key 与步骤 2 中的 relabel_configs 一一对应。

步骤 2:创建 Datadog Agent values 文件

创建 datadog-values.yaml 文件,配置 OTEL Collector。Collector 使用 Kubernetes 服务发现来查找带有抓取注解的 AutoMQ Pod。
本示例使用以下组件:
该示例为 AutoMQ 配置了 Prometheus 抓取任务和指标 pipeline,并使用可选的 infraattributes processor 在相关资源属性可用时添加 Datadog 基础设施标签。OTLP receiver 和其他 pipeline(traces、logs)已省略。如需通过同一 Collector 采集其他应用的 OTLP 数据,请参考 Datadog DDOT Collector 文档 添加相应的 receiver 和 pipeline。
如果 AutoMQ 节点运行在带有 taint 的专用 Kubernetes 节点上,需要添加 toleration 以确保 Datadog Agent DaemonSet 能调度到这些节点:

步骤 3:部署 Datadog Agent

添加 Datadog Helm 仓库并创建 Kubernetes Secret 存储 API key:
使用步骤 2 中的 values 文件安装 Datadog Agent:
<your-datadog-site> 替换为你的 Datadog Site(例如 datadoghq.comus3.datadoghq.comdatadoghq.eu)。

步骤 4:在 Datadog 中验证

  1. 打开 Datadog,进入 Metrics > Explorer
  2. 在搜索栏中输入指标名称前缀,搜索 AutoMQ 指标。
  3. 新指标可能需要 1–3 分钟才能显示。
Kubernetes 集成后在 Datadog Metrics Explorer 中查看 AutoMQ 指标 Datadog Metrics Explorer 中 AutoMQ 指标详情
AutoMQ 指标使用 Prometheus 命名规范(下划线分隔,例如 kafka_request_time_mean_milliseconds),而 Datadog 内置的 Apache Kafka 仪表盘依赖 Datadog Kafka 集成,使用点号分隔的命名(例如 kafka.request.time)。因此,AutoMQ 指标不会出现在内置仪表盘中。请使用 Datadog Metrics Explorer 直接查询 AutoMQ 指标,或使用下划线分隔的名称构建自定义仪表盘。可用指标请参考 Prometheus Metrics
以下截图展示了命名差异 — Datadog 内置仪表盘使用点号分隔格式,而 AutoMQ 指标使用下划线分隔格式: Datadog 内置仪表盘使用点号分隔的指标命名 AutoMQ 指标使用下划线分隔的 Prometheus 命名

方式二:Linux 环境使用 Vector(Prometheus Remote Write)

该方式下,AutoMQ 通过 Prometheus Remote Write 协议将指标推送到本地的 Vector 实例,Vector 转换并转发数据到 Datadog。 Vector 是 Datadog 维护的可观测数据管道。对于独立 Linux 主机上的纯指标转发场景,它是完整 Datadog Agent 之外的一种可选方案。

步骤 1:配置 AutoMQ 指标导出

在 AutoMQ 的 server.properties(或启动配置)中,将指标导出器设置为 Remote Write 模式,指向本地 Vector 实例:
  • rw:// 是 AutoMQ 的 Prometheus Remote Write 导出器协议前缀。
  • endpoint 指向 Vector 的 prometheus_remote_write source 地址。
AutoMQ 的 Remote Write URI 支持多种认证方式。由于 Vector 运行在同一主机上,通常不需要认证。

步骤 2:安装 Vector

确认安装成功:

步骤 3:配置 Vector

创建 Vector 配置文件:
transforms.add_tags 部分是可选的,但建议添加,方便在 Datadog 中按标签过滤指标。

步骤 4:启动 Vector

调试模式 — 前台运行 Vector:
生产模式 — 以 systemd 服务运行 Vector:
由于该文件包含 Datadog API key,需要收紧访问权限。同时,避免把真实 key 粘贴到共享的 shell 历史或日志中。

步骤 5:验证

打开 Datadog Metrics > Explorer,搜索 AutoMQ 指标,并按 envservice 标签过滤。新指标可能需要 1–3 分钟才能显示。 Vector 集成后在 Datadog Metrics Explorer 中查看 AutoMQ 指标

参考资料