./ct_report/coverage/mongoose_graphql_metric_admin_query.COVER.html

1 -module(mongoose_graphql_metric_admin_query).
2 -behaviour(mongoose_graphql).
3
4 -export([execute/4]).
5
6 -ignore_xref([execute/4]).
7
8 -include("mongoose_logger.hrl").
9
10 execute(_Ctx, _Obj, <<"getMetrics">>, Args) ->
11 6 Name = get_name(Args),
12 6 mongoose_metrics_api:get_metrics(Name);
13 execute(_Ctx, _Obj, <<"getMetricsAsDicts">>, Args) ->
14 3 Name = get_name(Args),
15 3 Keys = get_keys2(Args),
16 3 mongoose_metrics_api:get_metrics_as_dicts(Name, Keys);
17 execute(_Ctx, _Obj, <<"getClusterMetricsAsDicts">>, Args) ->
18 3 Name = get_name(Args),
19 3 Keys = get_keys2(Args),
20 3 Nodes = get_nodes(Args),
21 3 mongoose_metrics_api:get_cluster_metrics_as_dicts(Name, Keys, Nodes).
22
23 %% get_keys is a BIF, so we have a name conflict
24 get_keys2(Args) ->
25 6 Keys = get_list(<<"keys">>, Args),
26 6 lists:map(fun prepare_key/1, Keys).
27
28 prepare_key(X) when is_binary(X) ->
29 1 binary_to_atom(X);
30 prepare_key(X) when is_integer(X) -> %% For percentiles
31
:-(
X.
32
33 get_name(Args) ->
34 12 Segments = get_list(<<"name">>, Args),
35 12 lists:map(fun binary_to_atom/1, Segments).
36
37 get_nodes(Args) ->
38 3 Nodes = get_list(<<"nodes">>, Args),
39 3 lists:map(fun binary_to_atom/1, Nodes).
40
41 get_list(Key, Map) ->
42 21 null_as_empty(maps:get(Key, Map, [])).
43
44 13 null_as_empty(null) -> [];
45 8 null_as_empty(X) -> X.
Line Hits Source