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 常用操作。
常见问题
- 若要在同一个服务器上监控多个相同的平台服务,参考如何监控多个平台服务。
- 有任何关于产品的使用疑惑,参考常见问题。