diff options
Diffstat (limited to 'src/go/collectors/go.d.plugin/modules/rabbitmq/metrics.go')
-rw-r--r-- | src/go/collectors/go.d.plugin/modules/rabbitmq/metrics.go | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/src/go/collectors/go.d.plugin/modules/rabbitmq/metrics.go b/src/go/collectors/go.d.plugin/modules/rabbitmq/metrics.go new file mode 100644 index 000000000..871dfd57e --- /dev/null +++ b/src/go/collectors/go.d.plugin/modules/rabbitmq/metrics.go @@ -0,0 +1,82 @@ +// SPDX-License-Identifier: GPL-3.0-or-later + +package rabbitmq + +// https://www.rabbitmq.com/monitoring.html#cluster-wide-metrics +type overviewStats struct { + ObjectTotals struct { + Consumers int64 `json:"consumers" stm:"consumers"` + Queues int64 `json:"queues" stm:"queues"` + Exchanges int64 `json:"exchanges" stm:"exchanges"` + Connections int64 `json:"connections" stm:"connections"` + Channels int64 `json:"channels" stm:"channels"` + } `json:"object_totals" stm:"object_totals"` + ChurnRates struct { + ChannelClosed int64 `json:"channel_closed" stm:"channel_closed"` + ChannelCreated int64 `json:"channel_created" stm:"channel_created"` + ConnectionClosed int64 `json:"connection_closed" stm:"connection_closed"` + ConnectionCreated int64 `json:"connection_created" stm:"connection_created"` + QueueCreated int64 `json:"queue_created" stm:"queue_created"` + QueueDeclared int64 `json:"queue_declared" stm:"queue_declared"` + QueueDeleted int64 `json:"queue_deleted" stm:"queue_deleted"` + } `json:"churn_rates" stm:"churn_rates"` + QueueTotals struct { + Messages int64 `json:"messages" stm:"messages"` + MessagesReady int64 `json:"messages_ready" stm:"messages_ready"` + MessagesUnacknowledged int64 `json:"messages_unacknowledged" stm:"messages_unacknowledged"` + } `json:"queue_totals" stm:"queue_totals"` + MessageStats messageStats `json:"message_stats" stm:"message_stats"` + Node string +} + +// https://www.rabbitmq.com/monitoring.html#node-metrics +type nodeStats struct { + FDTotal int64 `json:"fd_total" stm:"fd_total"` + FDUsed int64 `json:"fd_used" stm:"fd_used"` + MemLimit int64 `json:"mem_limit" stm:"mem_limit"` + MemUsed int64 `json:"mem_used" stm:"mem_used"` + SocketsTotal int64 `json:"sockets_total" stm:"sockets_total"` + SocketsUsed int64 `json:"sockets_used" stm:"sockets_used"` + ProcTotal int64 `json:"proc_total" stm:"proc_total"` + ProcUsed int64 `json:"proc_used" stm:"proc_used"` + DiskFree int64 `json:"disk_free" stm:"disk_free"` + RunQueue int64 `json:"run_queue" stm:"run_queue"` +} + +type vhostStats struct { + Name string `json:"name"` + Messages int64 `json:"messages" stm:"messages"` + MessagesReady int64 `json:"messages_ready" stm:"messages_ready"` + MessagesUnacknowledged int64 `json:"messages_unacknowledged" stm:"messages_unacknowledged"` + MessageStats messageStats `json:"message_stats" stm:"message_stats"` +} + +// https://www.rabbitmq.com/monitoring.html#queue-metrics +type queueStats struct { + Name string `json:"name"` + Vhost string `json:"vhost"` + State string `json:"state"` + Type string `json:"type"` + Messages int64 `json:"messages" stm:"messages"` + MessagesReady int64 `json:"messages_ready" stm:"messages_ready"` + MessagesUnacknowledged int64 `json:"messages_unacknowledged" stm:"messages_unacknowledged"` + MessagesPagedOut int64 `json:"messages_paged_out" stm:"messages_paged_out"` + MessagesPersistent int64 `json:"messages_persistent" stm:"messages_persistent"` + MessageStats messageStats `json:"message_stats" stm:"message_stats"` +} + +// https://rawcdn.githack.com/rabbitmq/rabbitmq-server/v3.11.5/deps/rabbitmq_management/priv/www/api/index.html +type messageStats struct { + Ack int64 `json:"ack" stm:"ack"` + Publish int64 `json:"publish" stm:"publish"` + PublishIn int64 `json:"publish_in" stm:"publish_in"` + PublishOut int64 `json:"publish_out" stm:"publish_out"` + Confirm int64 `json:"confirm" stm:"confirm"` + Deliver int64 `json:"deliver" stm:"deliver"` + DeliverNoAck int64 `json:"deliver_no_ack" stm:"deliver_no_ack"` + Get int64 `json:"get" stm:"get"` + GetNoAck int64 `json:"get_no_ack" stm:"get_no_ack"` + DeliverGet int64 `json:"deliver_get" stm:"deliver_get"` + Redeliver int64 `json:"redeliver" stm:"redeliver"` + ReturnUnroutable int64 `json:"return_unroutable" stm:"return_unroutable"` +} |