從3.8.0開始,RabbitMQ提供內置的Prometheus和Grafana支持。
rabbitmq_prometheus插件中提供了對Prometheus指標收集的支持。該插件以Prometheus文本格式在專用的TCP端口(默認端口15692)上公開所有RabbitMQ指標。
rabbitmq_prometheus插件是RabbitMQ指標的核心導出器,由RabbitMQ核心團隊開發。這是一個乾淨的設計,用於替換kbudde/rabbitmq_exporter,kbudde/rabbitmq_exporter由Prometheus開發用於RabbitMQ指標收集。
這些指標提供了對RabbitMQ節點和運行時狀態的深入瞭解。它們對使用RabbitMQ的應用程序和各種基礎設施元素的行爲進行了更深入的推理。
rabbitmq_prometheus插件是新增的,相對來說還不成熟。它從3.8.0開始在RabbitMQ發行版中發佈。
1.rabbitmq_prometheus插件安裝
這個插件包含在RabbitMQ3.8.x版本中。與所有的插件一樣,必須啓用它才能使用;
啓用插件:
rabbitmq-plugins enable rabbitmq_prometheus
關閉插件:
rabbitmq-plugins disable rabbitmq_prometheus
插件啓動成功後可以在web UI上看到開啓了15692端口,如下:
可以通過http://localhost:15692/metrics訪問插件到處的指標數據:
# TYPE erlang_mnesia_held_locks gauge
# HELP erlang_mnesia_held_locks Number of held locks.
erlang_mnesia_held_locks 0
# TYPE erlang_mnesia_lock_queue gauge
# HELP erlang_mnesia_lock_queue Number of transactions waiting for a lock.
erlang_mnesia_lock_queue 0
# TYPE erlang_mnesia_transaction_participants gauge
# HELP erlang_mnesia_transaction_participants Number of participant transactions.
erlang_mnesia_transaction_participants 0
# TYPE erlang_mnesia_transaction_coordinators gauge
# HELP erlang_mnesia_transaction_coordinators Number of coordinator transactions.
erlang_mnesia_transaction_coordinators 0
# TYPE erlang_mnesia_failed_transactions counter
# HELP erlang_mnesia_failed_transactions Number of failed (i.e. aborted) transactions.
erlang_mnesia_failed_transactions 0
# TYPE erlang_mnesia_committed_transactions counter
# HELP erlang_mnesia_committed_transactions Number of committed transactions.
erlang_mnesia_committed_transactions 246
# TYPE erlang_mnesia_logged_transactions counter
# HELP erlang_mnesia_logged_transactions Number of transactions logged.
erlang_mnesia_logged_transactions 312
# TYPE erlang_mnesia_restarted_transactions counter
# HELP erlang_mnesia_restarted_transactions Total number of transaction restarts.
erlang_mnesia_restarted_transactions 1
#下面的省略....
2.配置
此導出器通過prometheus.*配置鍵支持以下選項:
- prometheus.path 定義到處端點,默認是“/metrics”。
- prometheus.tcp.* 控制匹配的HTTP監聽器設置those used by the RabbitMQ HTTP API。
- prometheus.ssl.* 控制匹配的TLS(HTTPS)監聽器設置those used by the RabbitMQ HTTP API。
簡單示例:
# these values are defaults
prometheus.path = /metrics
prometheus.tcp.port = 15692
這些配置可以通過rabbitmq的配置文件來修改,配置文件默認路徑如下:
/etc/rabbitmq/rabbitmq.conf
插件地址:https://github.com/rabbitmq/rabbitmq-prometheus/blob/master/metrics.md
指標說明:https://github.com/rabbitmq/rabbitmq-prometheus/blob/master/metrics.md
GitHub地址:https://github.com/mingyang66/spring-parent/tree/master/spring-boot-control-rabbitmq-service