RabbitMQ数据收集
简介
SCollector中有内置的RabbitMQ插件,SCollector会自动检测机器上安装的软件,若有安装RabbitMQ,则在不需要修改配置文件的情况下,默认启用RabbitMQ插件在http://guest:guest@127.0.0.1:15672/上收集数据,此时收集的是guest用户下的数据。若收集其他用户的数据,则需要修改SCollector的配置文件。
RabbitMQ插件rabbitmq.go文件中部分代码:
host := splitNode[1]
ts := opentsdb.TagSet{"host": host, "queue": q.Name, "vhost": q.Vhost}
Add(&md, p+"consumers", q.Consumers, ts, metadata.Gauge, metadata.Consumer, DescRmqConsumers)
Add(&md, p+"memory", q.Memory, ts, metadata.Gauge, metadata.Bytes, DescRmqMemory)
Add(&md, p+"message_bytes_total", q.MessageBytes, ts, metadata.Gauge, metadata.Bytes, DescRmqMessageBytes)
Add(&md, p+"message_bytes_persistent", q.MessageBytesPersistent, ts, metadata.Gauge, metadata.Bytes, DescRmqMessageBytesPersistent)
Add(&md, p+"message_bytes_transient", q.MessageBytesRAM, ts, metadata.Gauge, metadata.Bytes, DescRmqMessageBytesRAM)
Add(&md, p+"message_bytes_ready", q.MessageBytesReady, ts, metadata.Gauge, metadata.Bytes, DescRmqMessageBytesReady)
Add(&md, p+"message_bytes_unack", q.MessageBytesUnacknowledged, ts, metadata.Gauge, metadata.Bytes, DescRmqMessageBytesUnacknowledged)
Add(&md, p+"messages_queue_depth", q.Messages, ts, metadata.Gauge, metadata.Message, DescRmqMessages)
Add(&md, p+"messages_persistent", q.MessagesPersistent, ts, metadata.Gauge, metadata.Message, DescRmqMessagesPersistent)
Add(&md, p+"messages_transient", q.MessagesRAM, ts, metadata.Gauge, metadata.Message, DescRmqMessagesRAM)
Add(&md, p+"messages_ready_total", q.MessagesReady, ts, metadata.Gauge, metadata.Message, DescRmqMessagesReady)
Add(&md, p+"messages_ready_transient", q.MessagesReadyRAM, ts, metadata.Gauge, metadata.Message, DescRmqMessagesReadyRAM)
Add(&md, p+"messages_unack_total", q.MessagesUnacknowledged, ts, metadata.Gauge, metadata.Message, DescRmqMessagesUnacknowledged)
Add(&md, p+"messages_unack_transient", q.MessagesUnacknowledgedRAM, ts, metadata.Gauge, metadata.Message, DescRmqMessagesUnacknowledgedRAM)
if sn, ok := q.SlaveNodes.([]interface{}); ok {
Add(&md, p+"slave_nodes", len(sn), ts, metadata.Gauge, metadata.Node, DescRmqSlaveNodes)
}
if dsn, ok := q.DownSlaveNodes.([]interface{}); ok {
Add(&md, p+"down_slave_nodes", len(dsn), ts, metadata.Gauge, metadata.Node, DescRmqDownSlaveNodes)
}
if ssn, ok := q.SynchronisedSlaveNodes.([]interface{}); ok {
Add(&md, p+"sync_slave_nodes", len(ssn), ts, metadata.Gauge, metadata.Node, DescRmqSynchronisedSlaveNodes)
}
if cu, ok := q.ConsumerUtilisation.(float64); ok {
Add(&md, p+"consumer_utilisation", cu, ts, metadata.Gauge, metadata.Fraction, DescRmqConsumerUtilisation)
}
操作步骤
- 将SCollector安装在装有RabbitMQ的机器上;
- 修改配置文件scollector.toml,将“Host”和“Server”IP改为当前主机IP。
在scollector.toml文件中添加如下配置(guest用户则不用进行此操作):
[[RabbitMQ]] URL = "https://user:password@hostname:15671"
启动RabbitMQ服务;
- 运行SCollector;
结果: