
RabbitMQ性能监控Prometheus导出插件
prometheus_rabbitmq_exporter是一款专为RabbitMQ设计的Prometheus导出插件。该插件可收集并导出RabbitMQ的关键性能指标,如连接数、通道数和队列数等,同时还支持Erlang VM和进程指标的导出。插件安装配置简便,允许自定义抓取路径和认证方式。结合Grafana等可视化工具,能够全面直观地监控和分析RabbitMQ的运行状态,为管理员提供了有力的性能监控支持。
Modern RabbitMQ release series ship with a built-in Prometheus plugin and a set of Grafana dashboards.
This plugin is obsolete and really should not be used. It will not be compatible with the latest versions of RabbitMQ, you will not get any support for the RabbitMQ Core team, and there are no reasons to choose this plugin over the built-in one.
Implemented as RabbitMQ Management Plugin plugin. Also exports Erlang VM and process metrics (~ 100 metrics in total).
Implemented using Erlang Prometheus.io client

While RabbitMQ transitions from webmachine to cowboy we maintain two branches one for 3.6.x and one for 3.7.x. Plugin version should be read as follows: 3.7.1.x - where 3.7.1 is required RabbitMQ version and x is just incremental version of the plugin.
Download suitable version and follow regular RabbitMQ plugin installation instructions.
rabbitmq-plugins enable prometheus_rabbitmq_exporter
If you are running on Linux/FreeBSD/Mac, you may find prometheus_process_exporter useful:
rabbitmq-plugins enable prometheus_process_collector
undef errorIf you see something like this:
{could_not_start,rabbitmq_management,
{undef,
[{prometheus_http,setup,[],[]}
I.e. undef error mentioning a module starting with prometheus_, chances you forgot to enable a plugin (see https://github.com/deadtrickster/prometheus_rabbitmq_exporter/issues/27 for example).
prometheus_process_collector is unloadable{plugin_module_unloadable,"prometheus_process_collector",
{error,on_load_failure}}
or
{error,{load_failed,"Failed to load NIF library:
'/<...>/plugins/prometheus_process_collector-1.1.0/priv/prometheus_process_collector.so:
failed to map segment from shared object'"}}
Prometheus process collector uses NIFs underneath and failed to load shared object in module on_load callback.
Please check that RABBITMQ_PLUGINS_EXPAND_DIR doesn't have noexec flag set (see https://github.com/deadtrickster/prometheus_rabbitmq_exporter/issues/26).
This means erl_nif version prometheus_process_collector built with differs from yours (see Version Management section).
You can rebuild the plugin yourself very easily - clone https://github.com/deadtrickster/prometheus_process_collector.git and run rebar3 archive
prometheus_process_collector enabledprometheus_process_collector plugin comes with prebuilt shared object. And it looks like my Glibc version differs from yours.
You can rebuild the plugin yourself very easily - clone https://github.com/deadtrickster/prometheus_process_collector.git and run rebar3 archive
docker run -p 8080:15672 deadtrickster/rabbitmq_prometheus
Alpine-based image is also available:
docker run -p 8080:15672 deadtrickster/rabbitmq_prometheus:latest-alpine
This exporter supports the following options via rabbitmq_exporter entry of prometheus app env:
path - scrape endpoint. Default is "metrics". Note RabbitMQ translates this to "{management_plugin_path_prefix}/api/metrics";use_mgmt_auth - use built-in management auth. Default is false. If true, relies on management plugin for authentication (that guest:guest on fresh setups);format - scrape format. Default is prometheus_text_format;exchange_messages_stat - same as queue_messages_state but for the exchanges;queue_messages_stat - messages state to export. Default is hopefully reasonable. You can read more about possible values here;connections_total_enabled - Default is false. If true, the exporter will iterate over all connections and export count grouped by connection state (running, flow, etc).Sample /etc/rabbitmq/rabbitmq.config showing how to customize the scrape path, and connections_total_enabled:
[ {rabbit, [ {loopback_users, []}, {tcp_listeners, [5672]}, {ssl_listeners, []} ]}, {prometheus, [ {rabbitmq_exporter, [ {path, "/mymetrics"}, {connections_total_enabled, true} ]} ]}, {rabbitmq_management, [ {listener, [ {port, 15672}, {ssl, false} ]} ]} ].
For the latest list of supported options look here.
rabbitmq_connections<br />
Type: gauge.<br />
RabbitMQ Connections count.
rabbitmq_connections_total (disabled by default)<br />
Type: gauge.<br />
Labels: state.<br />
RabbitMQ connections count grouped by connection state.
rabbitmq_channels<br />
Type: gauge.<br />
RabbitMQ Channels count.
rabbitmq_queues<br />
Type: gauge.<br />
RabbitMQ Queues count.
rabbitmq_exchanges<br />
Type: gauge.<br />
RabbitMQ Exchanges count.
rabbitmq_consumers<br />
Type: gauge.<br />
RabbitMQ Consumers count.
rabbitmq_queues_disk_reads<br />
Type: counter.<br />
Total number of times messages have been read from disk by all queues.
rabbitmq_queues_disk_writes<br />
Type: counter.<br />
Total number of times messages have been written to disk by all queues.
rabbitmq_messages_ready<br />
Type: gauge.<br />
Messages ready for delivery.
rabbitmq_messages_unacknowledged<br />
Type: gauge.<br />
Delivered but unacknowledged messages.
rabbitmq_messages_published_total<br />
Type:


免费创建高清无水印Sora视频
Vora是一个免费创建高清无水印Sora视频的AI工具


最适合小白的AI自动化工作流平台
无需编码,轻松生成可复用、可变现的AI自动化工作流

大模型驱动的Excel数据处理工具
基于大模型交互的表格处理系统,允许用户通过对话方式完成数据整理和可视化分析。系统采用机器学习算法解析用户指令,自动执行排序、公式计算和数据透视等操作,支持多种文件格式导入导出。数据处理响应速度保持在0.8秒以内,支持超过100万行数据的即时分析。


AI辅助编程,代码自动修复
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。


AI论文写作指导平台
AIWritePaper论文写作是一站式AI论文写作辅助工具,简化了选题、文献检索至论文撰写的整个过程。通过简单设定,平台可快速生成高质量论文大纲和全文,配合图表、参考文献等一应俱全, 同时提供开题报告和答辩PPT等增值服务,保障数据安全,有效提升写作效率和论文质量。

