17
17
counters /2 ,
18
18
counters /3 ,
19
19
delete /2 ,
20
- format /1
20
+ format /1 ,
21
+ format /2
21
22
]).
22
23
23
24
-type group () :: term ().
@@ -142,21 +143,20 @@ counters(Group, Name, FieldNames) ->
142
143
format (Group ) ->
143
144
ets :foldl (fun ({_Name , Ref , Fields0 , Label }, Acc ) ->
144
145
Fields = resolve_fields (Fields0 ),
145
- lists :foldl (
146
- fun ({MetricName , Index , Type , Help }, Acc0 ) ->
147
- InitialMetric = #{type => Type ,
148
- help => Help ,
149
- values => #{}},
150
- Metric = maps :get (MetricName , Acc0 ,
151
- InitialMetric ),
152
- Values = maps :get (values , Metric ),
153
- Counter = counters :get (Ref , Index ),
154
- Values1 = Values #{Label => Counter },
155
- Metric1 = Metric #{values => Values1 },
156
- Acc0 #{MetricName => Metric1 }
157
- end , Acc , Fields )
146
+ format_fields (Fields , Ref , Label , Acc )
158
147
end , #{}, seshat_counters_server :get_table (Group )).
159
148
149
+ -spec format (group (), name ()) -> format_result ().
150
+
151
+ format (Group , Name ) ->
152
+ case ets :lookup (seshat_counters_server :get_table (Group ), Name ) of
153
+ [{Name , Ref , Fields0 , Label }] ->
154
+ Fields = resolve_fields (Fields0 ),
155
+ format_fields (Fields , Ref , Label , #{});
156
+ _ ->
157
+ #{}
158
+ end .
159
+
160
160
% % internal
161
161
162
162
resolve_fields (Fields ) when is_list (Fields ) ->
@@ -183,3 +183,16 @@ new_counter(Group, Name, Fields, FieldsSpec, Label) ->
183
183
error (invalid_field_specification )
184
184
end .
185
185
186
+ format_fields (Fields , Ref , Label , Acc ) ->
187
+ lists :foldl (
188
+ fun ({MetricName , Index , Type , Help }, Acc0 ) ->
189
+ InitialMetric = #{type => Type ,
190
+ help => Help ,
191
+ values => #{}},
192
+ Metric = maps :get (MetricName , Acc0 , InitialMetric ),
193
+ Values = maps :get (values , Metric ),
194
+ Counter = counters :get (Ref , Index ),
195
+ Values1 = Values #{Label => Counter },
196
+ Metric1 = Metric #{values => Values1 },
197
+ Acc0 #{MetricName => Metric1 }
198
+ end , Acc , Fields ).
0 commit comments