View a markdown version of this page

访问 Prometheus 指标 - Amazon MQ
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

访问 Prometheus 指标

注意

Prometheus 指标仅适用于 RabbitMQ 4.2 及更高版本。ActiveMQ 经纪商不支持 Prometheus 指标。

亚马逊 MQ 现在支持 RabbitMQ 经纪商的亚马逊 MQ 的 Prometheus 指标。Prometheus 指标使您能够将经纪商的可观察性集成到现有的监控基础架构中,从而使您可以统一了解经纪商绩效以及其他服务。借助 Prometheus 指标,您可以设置精细的警报和仪表板,以主动检测和响应消息传递工作负载中的问题。

从 RabbitMQ 4.2 开始,适用于 RabbitMQ 的亚马逊 MQ 支持 Prometheus 指标,允许您使用 Prometheus 监控系统获取经纪商指标。支持以下端点:

  • /metrics

  • /metrics/detailed

  • /metrics/memory-breakdown

不支持该/metrics/per-object终端节点。

有关每个端点公开的指标的更多信息,请参阅 RabbitMQ 文档中的 Prometheus 指标。

Prometheus 指标与指标 CloudWatch

适用于 RabbitMQ 的 Amazon MQ 通过 Prometheus 终端节点和. CloudWatch 虽然两者都提供了对经纪人运行状况的可见性,但它们的范围和用法各不相同。

Prometheus 端点公开了一组关于 RabbitMQ 经纪人健康状况的更丰富的汇总指标,涵盖了更广泛的经纪商内部数据,例如连接流失、频道活动、队列和交易所统计数据以及 Raft 共识指标。它们适合与基于 Prometheus 的现有监控基础架构和细粒度警报集成。

CloudWatch 指标是从 Prometheus 端点获取的经纪商指标的精选子集。有关可用 CloudWatch 指标的完整列表,请参阅适用于 RabbitMQ 经纪商的亚马逊 MQ 可用 CloudWatch 指标

在中 CloudWatch,指标始终以至少 60 秒的时间间隔进行聚合,然后再进行可视化。相比之下,Prometheus 公开了原始指标数据点,而像 Grafana 这样的仪表板解决方案默认情况下无需聚合即可对单个数据点进行可视化。因此,相同指标的可视化效果可能会在 Prometheus 和 CloudWatch Prometheus 之间存在差异,具体取决于中使用的统计数据 CloudWatch

注意

我们建议使用 Prometheus 对亚马逊 MQ 的 RabbitMQ 运营指标进行非汇总监控。

获取和访问 Prometheus 端点

您可以使用或获取 Amazon MQ for RabbitMQ 代理的 Prometheus 终端节点。 Amazon Web Services 管理控制台 Amazon CLI

  • Amazon Web Services 管理控制台— 导航到亚马逊 MQ 控制台,打开您的经纪商的详细信息页面,然后在 “连接” 部分下找到 Prometheus 终端节点。

  • Amazon CLI— 使用以下describe-broker命令:

    aws mq describe-broker --broker-id <broker-id>

    Prometheus 端点将在下的响应中返回。BrokerInstances.Endpoints

适用于 RabbitMQ 的 Amazon MQ Prometheus 支持使用与代理相同的身份验证方案。有关支持的身份验证方法的更多信息,请参阅适用于 RabbitMQ 身份验证和授权的亚马逊 MQ。要了解如何在 Prometheus 中配置身份验证,请参阅 Prometheus 文档中的 http _config。

Prometheus 配置最佳实践

  • 将抓取周期配置为 60 秒或更长。出于操作安全考虑,建议这样做。

抓取配置示例

以下各节提供了适用于 RabbitMQ 的亚马逊 MQ 的 Prometheus 抓取配置示例。<broker-prometheus-endpoint>替换为您的经纪商的 Prometheus 终端节点主机名,<username><password>替换为您的经纪人凭证。

对于大多数用例,建议使用以下配置。抓取/metrics终端节点可提供有关集群整体运行状况的精心汇总的指标,使您可以清楚地了解代理性能,而无需花费详细的指标收集开销。

global: scrape_interval: 60s scrape_configs: - job_name: 'rabbitmq-aws-cluster' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics' static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003'

详细的指标配置

以下配置收集了更多详细的指标系列,以便更深入地观察特定的经纪商组件。

global: scrape_interval: 60s scrape_configs: - job_name: 'rabbitmq-connection-churn' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics/detailed' params: family: ['connection_churn_metrics'] static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003' - job_name: 'rabbitmq-ra' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics/detailed' params: family: ['ra_metrics'] static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003' - job_name: 'rabbitmq-queue' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics/detailed' params: family: ['queue_metrics'] static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003' - job_name: 'rabbitmq-exchange' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics/detailed' params: family: ['exchange_metrics'] static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003' - job_name: 'rabbitmq-connection' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics/detailed' params: family: ['connection_metrics'] static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003' - job_name: 'rabbitmq-channel' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics/detailed' params: family: ['channel_metrics'] static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003' - job_name: 'rabbitmq-exchange-count' scheme: https basic_auth: username: <username> password: <password> metrics_path: '/metrics/detailed' params: family: ['exchange_names'] static_configs: - targets: - '<broker-prometheus-endpoint>:16001' - '<broker-prometheus-endpoint>:16002' - '<broker-prometheus-endpoint>:16003'