Skip to content
This repository was archived by the owner on Feb 25, 2025. It is now read-only.

Commit 9351ff6

Browse files
committed
use_mgmt_auth option, bump verion
1 parent cb79014 commit 9351ff6

4 files changed

+41
-2
lines changed

Diff for: src/prometheus_rabbitmq_exporter.app.src

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{application, prometheus_rabbitmq_exporter,
22
[{description, "RabbitMQ Prometheus.io metrics exporter"},
3-
{vsn, "v3.7.2.2"},
3+
{vsn, "v3.7.2.3"},
44
{modules, []},
55
{registered, []},
66
{env, []},

Diff for: src/prometheus_rabbitmq_exporter.erl

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ dispatcher() ->
1111

1212
prometheus_http_impl:setup(),
1313

14-
[{Path ++ "/[:registry]", prometheus_cowboy2_handler, []}].
14+
[{Path ++ "/[:registry]", prometheus_rabbitmq_exporter_handler, []}].
1515

1616
web_ui() -> [].
1717

Diff for: src/prometheus_rabbitmq_exporter_config.erl

+6
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
-module(prometheus_rabbitmq_exporter_config).
22

33
-export([path/0,
4+
use_mgmt_auth/0,
45
queue_messages_stat/0,
56
exchange_messages_stat/0,
67
memory_stat_enabled/0,
78
connections_total_enabled/0]).
89

910
-define(DEFAULT_PATH, "/metrics").
11+
-define(DEFAULT_USE_MGMT_AUTH, false).
1012
-define(DEFAULT_QUEUE_MESSAGES_STAT, [messages_published_total,
1113
messages_confirmed_total,
1214
messages_delivered_total,
@@ -37,6 +39,10 @@ path() ->
3739
Config = config(),
3840
proplists:get_value(path, Config, ?DEFAULT_PATH).
3941

42+
use_mgmt_auth() ->
43+
Config = config(),
44+
proplists:get_value(use_mgmt_auth, Config, ?DEFAULT_USE_MGMT_AUTH).
45+
4046
queue_messages_stat() ->
4147
Config = config(),
4248
proplists:get_value(queue_messages_stat, Config, ?DEFAULT_QUEUE_MESSAGES_STAT).

Diff for: src/prometheus_rabbitmq_exporter_handler.erl

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
-module(prometheus_rabbitmq_exporter_handler).
2+
3+
-export([init/2]).
4+
-export([generate_response/2, content_types_provided/2, is_authorized/2]).
5+
6+
-include_lib("rabbitmq_management_agent/include/rabbit_mgmt_records.hrl").
7+
8+
%% ===================================================================
9+
%% Cowboy Handler Callbacks
10+
%% ===================================================================
11+
12+
init(Req, _State) ->
13+
{cowboy_rest, Req, #context{}}.
14+
15+
content_types_provided(ReqData, Context) ->
16+
{[
17+
{<<"*/*">>, generate_response}
18+
], ReqData, Context}.
19+
20+
is_authorized(ReqData, Context) ->
21+
case prometheus_rabbitmq_exporter_config:use_mgmt_auth() of
22+
false ->
23+
{true, ReqData, Context};
24+
true ->
25+
rabbit_mgmt_util:is_authorized(ReqData, Context)
26+
end.
27+
28+
%% ===================================================================
29+
%% Private functions
30+
%% ===================================================================
31+
32+
generate_response(ReqData, Context) ->
33+
prometheus_cowboy2_handler:init(ReqData, Context).

0 commit comments

Comments
 (0)