跳转至

RabbitMQ

RabbitMQ 是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件)。RabbitMQ 服务器是用 Erlang 语言编写的,而群集和故障转移是构建在开放电信平台框架上的。所有主要的编程语言均有与代理接口通讯的客户端库。

Cloud Insight 通过收集 RabbitMQ 消息队列信息,可视化 RabbitMQ 性能。


性能指标

Cloud Insight 采集 RabbitMQ 以下性能指标:

指标 单位 具体含义
rabbitmq.node.fd_used 已使用的文件描述符(fd)数量
rabbitmq.node.mem_used bytes 内存使用字节数
rabbitmq.node.partitions 此节点可见的网络分区(Network Partion)数量
rabbitmq.node.run_queue processes 等待运行的 Erlang 进程平均数量
rabbitmq.node.sockets_used 用于 socket 的文件描述符数量
rabbitmq.queue.active_consumers 活跃的消费者数量,可以立即接收到任何发送到队列中的消息的消费者
rabbitmq.queue.consumer_utilisation fractions 队列消费者接收新消息的时间的比例
rabbitmq.queue.consumers 消费者数量
rabbitmq.queue.memory bytes 队列相关的 Erlang 进程消耗的内存字节数,包括堆栈,堆和内部结构
rabbitmq.queue.messages messages 队列中的消息总数
rabbitmq.queue.messages.ack.count messages 发送给客户端并确认的消息数量
rabbitmq.queue.messages.ack.rate messages/second 每秒发送客户端并确认的消息数量
rabbitmq.queue.messages.deliver.count messages 消费者接收并响应的消息数量
rabbitmq.queue.messages.deliver.rate messages/second 每秒消费者接收并响应的消息数量
rabbitmq.queue.messages.deliver_get.count messages 消费者接收消息(被确认和没有被确认的消息)和从队列当中取出消息(ack 参数传给 basic.get 和 no_ack 参数传给 basic.get)的总和数量
rabbitmq.queue.messages.deliver_get.rate messages/second 每秒消费者接收消息(被 ack 和没有被 ack 的消息)和从队列当中取出消息(ack 参数传给 basic.get 和 no_ack 参数传给 basic.get)的总和数量
rabbitmq.queue.messages.publish.count messages 发布的消息数量
rabbitmq.queue.messages.publish.rate messages/second 每秒发布的消息数量
rabbitmq.queue.messages.rate messages/second 每秒队列中的消息总数量
rabbitmq.queue.messages.redeliver.count messages deliver_get 中有重新发送(redeliver)标记的消息子集数量
rabbitmq.queue.messages.redeliver.rate messages/second 每秒 deliver_get 中有重新发送(redeliver)标记的消息子集数量
rabbitmq.queue.messages_ready messages 准备发送给客户端的消息数量
rabbitmq.queue.messages_ready.rate messages/second 每秒准备发送给客户端的消息数量
rabbitmq.queue.messages_unacknowledged messages 发送给客户端单但至今还未被确认的消息数量
rabbitmq.queue.messages_unacknowledged.rate messages/second 每秒发送给客户端但至今还未被确认的消息数量

配置 RabbitMQ 监控

RabbitMQ Management Plugin

RabbitMQ 的监控需要启用 Management Plugin

rabbitmq-plugins enable rabbitmq_management

编辑配置文件

编辑配置文件 conf.d/rabbitmq.yaml,使 Cloud Insight Agent 可以与 RabbitMQ 通信。

init_config:

instances:
  - rabbitmq_api_url: http://localhost:15672/api/
    rabbitmq_user: username # defaults to 'guest'
    rabbitmq_pass: password # defaults to 'guest'

重启 Agent

重启 Cloud Insight Agent,使配置生效。

您也可以通过查看 Agent Info 信息,来验证配置是否成功。当出现以下信息,则代表安装成功。

Checks
======

[...]

rabbitmq
--------
  - instance #0 [OK]
    - Collected 8 metrics & 0 events

有关 Agent Info 信息的查看,请访问帮助中心,查看 Cloud Insight Agent 常用操作


5分钟,开启你的跨云监控之旅 (`⌄´ )


常见问题