diff options
| author | Michael Klishin <mklishin@pivotal.io> | 2019-04-23 23:25:26 +0300 |
|---|---|---|
| committer | Michael Klishin <mklishin@pivotal.io> | 2019-04-23 23:25:26 +0300 |
| commit | cc5e931377688e3c1b97e1be7c1fcc2c906a23f3 (patch) | |
| tree | 485aaa9604069a6031052e14a08339902e2a8370 /deps/rabbitmq_management_agent | |
| parent | 470d80d0a4ce9c09703383e3a78ad2a8b3c4ba27 (diff) | |
| download | rabbitmq-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')
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}) -> |
