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:
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
全能AI智能助手,随时解答生活与工作的多样问题
问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。
实时语音翻译/同声传译工具
Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。