将 Metrics 集成到 Prometheus
Prometheus 是一款广受欢迎的监控、报警和时序数据存储服务,能够方便地实现 Metrics 的采集、存储和监控查询。本文介绍如何将 AutoMQ 与 Prometheus 集成,以实现 Metrics 数据的一站式采集查询。
Metrics 集成到 Prometheus 的特性仅在 AutoMQ 商业版提供,如果需要评估或了解商业版,请填写表单,我们的产品专家会尽快联系您。
更多关于社区版和商业版的差别,请查看授权许可证▸。
Metrics 集成
AutoMQ 使用 OpenTelemetry SDK 实现 Metrics 采集和导出,支持透出 Apache Kafka 业务指标和底层存储实现相关指标,这两类指标统一使用 OTLP 格式进行转换和透出。
针对上图,首先选择合适的 Metrics 导出方案,将 Metrics 数据导出到 Prometheus 中。导出 Metrics 数据有如下三种方式:
使用 OpenTelemetry Collector
使用 Prometheus OTLP Receiver
直接从服务端拉取 Metrics
方案一:使用 OpenTelemetry Collector
- 启动 OpenTelemetry Collector 并配置 Prometheus Exporter 来收集和导出指标数据。
exporters:
prometheus:
endpoint: $endpoint_for_promehteus
- 启动 Prometheus 服务时,请确保添加以下配置。
scrape_configs:
- job_name: $job_name
scrape_interval: 5s
honor_labels: true # DO NOT CHANGE THIS
static_configs:
- targets: ["$endpoint_for_prometheus"]
- 配置 AutoMQ 将指标数据推送至 Collector。
s3.telemetry.metrics.exporter.type=otlp
s3.telemetry.exporter.otlp.protocol=grpc
s3.telemetry.exporter.otlp.endpoint=http://${endpoint}:4317
# or with http protocol
# s3.telemetry.exporter.otlp.protocol=http
# s3.telemetry.exporter.otlp.endpoint=http://${endpoint}:4318/v1/metrics
方案二:使用 Prometheus OTLP Receiver
集成到开源自建 Prometheus
根据 Prometheus 的版本要求,用户的 Prometheus 服务需要符合如下条件:
Prometheus 版本至少为 2.47。
Prometheus 需开启 featuer flsgs: --enable-feature=otlp-write-receiver。开启方法参考下方命令。
./prometheus --config.file=prometheus.yml --enable-feature=otlp-write-receiver
如果当前自建 Prometheus 服务是基于 VictoriaMetrics 商业版服务,需要确保 VictoriaMetrics 的版本至少为 1.92.0,并按照相关文档配置接入点。
集成到云厂商 Prometheus 服务
如果用户使用公共云厂商提供的商业版本,建议咨询云厂商技术人员。以阿里云为例,阿里云 Prometheus 服务提供开箱即用的 OT 协议支持,参考 OT 协议上报数据文档。
启动 Prometheus 服务后,配置 AutoMQ 将 metrics 推送至 Prometheus:
s3.telemetry.metrics.exporter.type=otlp
s3.telemetry.exporter.otlp.protocol=http
s3.telemetry.exporter.otlp.endpoint=http://${endpoint}:9090/api/v1/otlp/v1/metrics
# or use with Aliyun Prometheus OpenTelemetry Endpoint
# s3.telemetry.exporter.otlp.endpoint=https://${endpoint}/api/v1/metrics
方案三:直接从服务端拉取 Metrics
在此模式下,AutoMQ 充当 Prometheus HTTP Server,用户可以在 Prometheus 后端服务上配置 scrape 任务,从特定的端点获取 Prometheus Metrics。配置方法如下:
s3.telemetry.metrics.exporter.type=prometheus
s3.metrics.exporter.prom.host=127.0.0.1
s3.metrics.exporter.prom.port=9090
Metrics 可视化仪表盘
AutoMQ 提供了预设的 Grafana 大盘模板(链接)。将指标导出到 Prometheus 后,导入 Grafana 大盘模板,并将 Grafana 数据源配置为对应的 Prometheus,即可开始监测 AutoMQ。
预置的 Grafana 大盘模板提供了不同维度的指标监控:
- Cluster Overview: 提供了集群级别的监控信息,包括节点数量、数据大小、集群流量等指标。此外,还提供了 Topic、Group、Broker 等维度的概览指标,并支持进一步查看详细监控信息的下钻功能。
- Broker Metrics: 提供了针对 Broker 的监控数据,涵盖连接数、分区数、节点流量以及节点请求等指标。
- Topic Metrics: 提供了针对 Topic 的指标监控,包括消息吞吐、数据总量、分区数量、消费延迟等。
- Group Metrics: 提供了针对 Group 的指标监控,包括消费速率和消费延迟。
- Detailed Metrics: 提供详细的实现层指标监控,帮助开发者进行故障排查或深入了解 AutoMQ 的运行机制。