summaryrefslogtreecommitdiff
path: root/deps/rabbitmq_management_agent
diff options
context:
space:
mode:
authorMichael Klishin <mklishin@pivotal.io>2019-04-23 23:25:26 +0300
committerMichael Klishin <mklishin@pivotal.io>2019-04-23 23:25:26 +0300
commitcc5e931377688e3c1b97e1be7c1fcc2c906a23f3 (patch)
tree485aaa9604069a6031052e14a08339902e2a8370 /deps/rabbitmq_management_agent
parent470d80d0a4ce9c09703383e3a78ad2a8b3c4ba27 (diff)
downloadrabbitmq-server-git-cc5e931377688e3c1b97e1be7c1fcc2c906a23f3.tar.gz
New channel metric: dropped unroutable messages
Part of rabbitmq/rabbitmq-server#1904. [#165548314]
Diffstat (limited to 'deps/rabbitmq_management_agent')
-rw-r--r--deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl14
-rw-r--r--deps/rabbitmq_management_agent/src/exometer_slide.erl12
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl7
-rw-r--r--deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl18
4 files changed, 36 insertions, 15 deletions
diff --git a/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl b/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl
index 9b100baed5..8a1bcbe2bb 100644
--- a/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl
+++ b/deps/rabbitmq_management_agent/include/rabbit_mgmt_metrics.hrl
@@ -84,16 +84,16 @@
-define(channel_consumer_created_stats(Queue, ChPid, ConsumerTag),
{Queue, {ChPid, ConsumerTag}}).
-define(channel_stats(Id, Props), {Id, Props}).
--define(channel_stats_fine_stats(Publish, Confirm, Return_unroutable),
- {Publish, Confirm, Return_unroutable}).
--define(channel_exchange_stats_fine_stats(Publish, Confirm, Return_unroutable),
- {Publish, Confirm, Return_unroutable}).
+-define(channel_stats_fine_stats(Publish, Confirm, ReturnUnroutable, DropUnroutable),
+ {Publish, Confirm, ReturnUnroutable, DropUnroutable}).
+-define(channel_exchange_stats_fine_stats(Publish, Confirm, ReturnUnroutable, DropUnroutable),
+ {Publish, Confirm, ReturnUnroutable, DropUnroutable}).
-define(channel_queue_stats_deliver_stats(Get, Get_no_ack, Deliver, Deliver_no_ack,
Redeliver, Ack, Deliver_get, Get_empty),
{Get, Get_no_ack, Deliver, Deliver_no_ack, Redeliver, Ack, Deliver_get,
Get_empty}).
--define(vhost_stats_fine_stats(Publish, Confirm, Return_unroutable),
- {Publish, Confirm, Return_unroutable}).
+-define(vhost_stats_fine_stats(Publish, Confirm, ReturnUnroutable, DropUnroutable),
+ {Publish, Confirm, ReturnUnroutable, DropUnroutable}).
-define(queue_stats_deliver_stats(Get, Get_no_ack, Deliver, Deliver_no_ack,
Redeliver, Ack, Deliver_get, Get_empty),
{Get, Get_no_ack, Deliver, Deliver_no_ack, Redeliver, Ack, Deliver_get,
@@ -156,7 +156,7 @@
T when T =:= channel_stats_fine_stats;
T =:= channel_exchange_stats_fine_stats;
T =:= vhost_stats_fine_stats ->
- [publish, confirm, return_unroutable];
+ [publish, confirm, return_unroutable, drop_unroutable];
T when T =:= channel_queue_stats_deliver_stats;
T =:= queue_stats_deliver_stats;
T =:= vhost_stats_deliver_stats;
diff --git a/deps/rabbitmq_management_agent/src/exometer_slide.erl b/deps/rabbitmq_management_agent/src/exometer_slide.erl
index 9bcc1c1436..5af252803c 100644
--- a/deps/rabbitmq_management_agent/src/exometer_slide.erl
+++ b/deps/rabbitmq_management_agent/src/exometer_slide.erl
@@ -214,6 +214,12 @@ add_to_total({A0, A1}, {B0, B1}) ->
{B0 + A0, B1 + A1};
add_to_total({A0, A1, A2}, {B0, B1, B2}) ->
{B0 + A0, B1 + A1, B2 + A2};
+add_to_total({A0, A1, A2, A3}, {B0, B1, B2, B3}) ->
+ {B0 + A0, B1 + A1, B2 + A2, B3 + A3};
+add_to_total({A0, A1, A2, A3, A4}, {B0, B1, B2, B3, B4}) ->
+ {B0 + A0, B1 + A1, B2 + A2, B3 + A3, B4 + A4};
+add_to_total({A0, A1, A2, A3, A4, A5}, {B0, B1, B2, B3, B4, B5}) ->
+ {B0 + A0, B1 + A1, B2 + A2, B3 + A3, B4 + A4, B5 + A5};
add_to_total({A0, A1, A2, A3, A4, A5, A6}, {B0, B1, B2, B3, B4, B5, B6}) ->
{B0 + A0, B1 + A1, B2 + A2, B3 + A3, B4 + A4, B5 + A5, B6 + A6};
add_to_total({A0, A1, A2, A3, A4, A5, A6, A7}, {B0, B1, B2, B3, B4, B5, B6, B7}) ->
@@ -234,6 +240,12 @@ is_zeros({0, 0}) ->
true;
is_zeros({0, 0, 0}) ->
true;
+is_zeros({0, 0, 0, 0}) ->
+ true;
+is_zeros({0, 0, 0, 0, 0}) ->
+ true;
+is_zeros({0, 0, 0, 0, 0, 0}) ->
+ true;
is_zeros({0, 0, 0, 0, 0, 0, 0}) ->
true;
is_zeros({0, 0, 0, 0, 0, 0, 0, 0, 0}) ->
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl
index 01b48a0a5c..ca7a554d1b 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_data.erl
@@ -472,12 +472,13 @@ second(Id) ->
{'_', Id}.
empty(Type, V) when Type =:= connection_stats_coarse_conn_stats;
- Type =:= channel_stats_fine_stats;
- Type =:= channel_exchange_stats_fine_stats;
- Type =:= vhost_stats_fine_stats;
Type =:= queue_msg_stats;
Type =:= vhost_msg_stats ->
{V, V, V};
+empty(Type, V) when Type =:= channel_stats_fine_stats;
+ Type =:= channel_exchange_stats_fine_stats;
+ Type =:= vhost_stats_fine_stats ->
+ {V, V, V, V};
empty(Type, V) when Type =:= channel_queue_stats_deliver_stats;
Type =:= queue_stats_deliver_stats;
Type =:= vhost_stats_deliver_stats;
diff --git a/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl b/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl
index 27c233a7d7..4dc0ddaac9 100644
--- a/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl
+++ b/deps/rabbitmq_management_agent/src/rabbit_mgmt_metrics_collector.erl
@@ -254,14 +254,14 @@ aggregate_entry({Id, Metrics}, NextStats, Ops0,
Entry = ?channel_stats(Id, Ftd),
Ops = insert_op(channel_stats, Id, Entry, Ops0),
{NextStats, Ops, State};
-aggregate_entry({{Ch, X} = Id, Publish0, Confirm, ReturnUnroutable, 0},
+aggregate_entry({{Ch, X} = Id, Publish0, Confirm, ReturnUnroutable, DropUnroutable, 0},
NextStats, Ops0,
#state{table = channel_exchange_metrics,
policies = {BPolicies, DPolicies, GPolicies},
rates_mode = RatesMode,
lookup_exchange = ExchangeFun} = State) ->
- Stats = ?channel_stats_fine_stats(Publish0, Confirm, ReturnUnroutable),
- {Publish, _, _} = Diff = get_difference(Id, Stats, State),
+ Stats = ?channel_stats_fine_stats(Publish0, Confirm, ReturnUnroutable, DropUnroutable),
+ {Publish, _, _, _} = Diff = get_difference(Id, Stats, State),
Ops1 = insert_entry_ops(channel_stats_fine_stats, Ch, true, Diff, Ops0,
BPolicies),
@@ -282,12 +282,12 @@ aggregate_entry({{Ch, X} = Id, Publish0, Confirm, ReturnUnroutable, 0},
Ops2
end,
{insert_old_aggr_stats(NextStats, Id, Stats), Ops3, State};
-aggregate_entry({{_Ch, X} = Id, Publish0, Confirm, ReturnUnroutable, 1},
+aggregate_entry({{_Ch, X} = Id, Publish0, Confirm, ReturnUnroutable, DropUnroutable, 1},
NextStats, Ops0,
#state{table = channel_exchange_metrics,
policies = {_BPolicies, DPolicies, GPolicies},
lookup_exchange = ExchangeFun} = State) ->
- Stats = ?channel_stats_fine_stats(Publish0, Confirm, ReturnUnroutable),
+ Stats = ?channel_stats_fine_stats(Publish0, Confirm, ReturnUnroutable, DropUnroutable),
{Publish, _, _} = Diff = get_difference(Id, Stats, State),
Ops1 = insert_entry_ops(vhost_stats_fine_stats, vhost(X), true, Diff, Ops0,
GPolicies),
@@ -612,6 +612,10 @@ sum_entry({A0, A1}, {B0, B1}) ->
{B0 + A0, B1 + A1};
sum_entry({A0, A1, A2}, {B0, B1, B2}) ->
{B0 + A0, B1 + A1, B2 + A2};
+sum_entry({A0, A1, A2, A3}, {B0, B1, B2, B3}) ->
+ {B0 + A0, B1 + A1, B2 + A2, B3 + A3};
+sum_entry({A0, A1, A2, A3, A4}, {B0, B1, B2, B3, B4}) ->
+ {B0 + A0, B1 + A1, B2 + A2, B3 + A3, B4 + A4};
sum_entry({A0, A1, A2, A3, A4, A5}, {B0, B1, B2, B3, B4, B5}) ->
{B0 + A0, B1 + A1, B2 + A2, B3 + A3, B4 + A4, B5 + A5};
sum_entry({A0, A1, A2, A3, A4, A5, A6}, {B0, B1, B2, B3, B4, B5, B6}) ->
@@ -625,6 +629,10 @@ difference({A0, A1}, {B0, B1}) ->
{B0 - A0, B1 - A1};
difference({A0, A1, A2}, {B0, B1, B2}) ->
{B0 - A0, B1 - A1, B2 - A2};
+difference({A0, A1, A2, A3}, {B0, B1, B2, B3}) ->
+ {B0 - A0, B1 - A1, B2 - A2, B3 - A3};
+difference({A0, A1, A2, A3, A4}, {B0, B1, B2, B3, B4}) ->
+ {B0 - A0, B1 - A1, B2 - A2, B3 - A3, B4 - A4};
difference({A0, A1, A2, A3, A4, A5}, {B0, B1, B2, B3, B4, B5}) ->
{B0 - A0, B1 - A1, B2 - A2, B3 - A3, B4 - A4, B5 - A5};
difference({A0, A1, A2, A3, A4, A5, A6}, {B0, B1, B2, B3, B4, B5, B6}) ->