fix(monitor): reflect durable subscriptions in historical metrics
Essentially in the same manner as they are currently reflected in the current metrics.
This commit is contained in:
parent
9091b8378e
commit
7b137c0aaf
|
@ -222,8 +222,11 @@ do_sample(Node, Time) ->
|
||||||
Res
|
Res
|
||||||
end.
|
end.
|
||||||
|
|
||||||
do_sample([], _Time, Res) ->
|
do_sample([], _Time, Samples) ->
|
||||||
Res;
|
maps:map(
|
||||||
|
fun(_TS, Sample) -> adjust_synthetic_cluster_metrics(Sample) end,
|
||||||
|
Samples
|
||||||
|
);
|
||||||
do_sample([Node | Nodes], Time, Res) ->
|
do_sample([Node | Nodes], Time, Res) ->
|
||||||
case do_sample(Node, Time) of
|
case do_sample(Node, Time) of
|
||||||
{badrpc, Reason} ->
|
{badrpc, Reason} ->
|
||||||
|
@ -237,22 +240,28 @@ match_spec(infinity) ->
|
||||||
match_spec(Time) ->
|
match_spec(Time) ->
|
||||||
[{{'_', '$1', '_'}, [{'>=', '$1', Time}], ['$_']}].
|
[{{'_', '$1', '_'}, [{'>=', '$1', Time}], ['$_']}].
|
||||||
|
|
||||||
merge_cluster_samplers(Node, Cluster) ->
|
merge_cluster_samplers(NodeSamples, Cluster) ->
|
||||||
maps:fold(fun merge_cluster_samplers/3, Cluster, Node).
|
maps:fold(fun merge_cluster_samplers/3, Cluster, NodeSamples).
|
||||||
|
|
||||||
merge_cluster_samplers(TS, NodeData, Cluster) ->
|
merge_cluster_samplers(TS, NodeSample0, Cluster) ->
|
||||||
|
NodeSample = adjust_individual_node_metrics(NodeSample0),
|
||||||
case maps:get(TS, Cluster, undefined) of
|
case maps:get(TS, Cluster, undefined) of
|
||||||
undefined ->
|
undefined ->
|
||||||
Cluster#{TS => NodeData};
|
Cluster#{TS => NodeSample};
|
||||||
ClusterData ->
|
ClusterSample ->
|
||||||
Cluster#{TS => merge_cluster_sampler_map(NodeData, ClusterData)}
|
Cluster#{TS => merge_cluster_sampler_map(NodeSample, ClusterSample)}
|
||||||
end.
|
end.
|
||||||
|
|
||||||
merge_cluster_sampler_map(M1, M2) ->
|
merge_cluster_sampler_map(M1, M2) ->
|
||||||
Fun =
|
Fun =
|
||||||
fun
|
fun
|
||||||
(topics, Map) ->
|
(Key, Map) when
|
||||||
Map#{topics => maps:get(topics, M1)};
|
%% cluster-synced values
|
||||||
|
Key =:= topics;
|
||||||
|
Key =:= subscriptions_durable;
|
||||||
|
Key =:= disconnected_durable_sessions
|
||||||
|
->
|
||||||
|
Map#{Key => maps:get(Key, M1)};
|
||||||
(Key, Map) ->
|
(Key, Map) ->
|
||||||
Map#{Key => maps:get(Key, M1, 0) + maps:get(Key, M2, 0)}
|
Map#{Key => maps:get(Key, M1, 0) + maps:get(Key, M2, 0)}
|
||||||
end,
|
end,
|
||||||
|
|
Loading…
Reference in New Issue