New channel metric: dropped unroutable messages
Part of rabbitmq/rabbitmq-server#1904. [#165548314]
This commit is contained in:
parent
470d80d0a4
commit
cc5e931377
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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}) ->
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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}) ->
|
||||
|
|
|
|||
Loading…
Reference in New Issue