fixeria submitted this change.
s1gw_metrics: use lists:filter/2 to create counters/gauges
Change-Id: I5aa1ab8c95820e4e5e3233c92a6c1b8b3190a30c
---
M src/s1gw_metrics.erl
1 file changed, 9 insertions(+), 23 deletions(-)
diff --git a/src/s1gw_metrics.erl b/src/s1gw_metrics.erl
index 9f7b2e8..dceb477 100644
--- a/src/s1gw_metrics.erl
+++ b/src/s1gw_metrics.erl
@@ -98,29 +98,14 @@
-type counter() :: [ctr | _].
-type gauge() :: [gauge | _].
--spec new_ctr(counter()) -> ok.
-new_ctr(Name) ->
- %%?LOG_INFO("New counter ~p", [Name]),
- ok = exometer:new(Name, counter).
--spec new_ctrs(list(counter())) -> ok.
-new_ctrs([]) ->
- ok;
-new_ctrs([Name | MoreNames]) ->
- new_ctr(Name),
- new_ctrs(MoreNames).
+-spec register_all(Type, List) -> Result
+ when Type :: exometer:type(),
+ List :: list(exometer:name()),
+ Result :: list(exometer:name()).
+register_all(Type, List) ->
+ lists:filter(fun(Name) -> exometer:new(Name, Type) =/= ok end, List).
--spec new_gauge(gauge()) -> ok.
-new_gauge(Name) ->
- %%?LOG_INFO("New gauge ~p", [Name]),
- ok = exometer:new(Name, gauge).
-
--spec new_gauges(list(gauge())) -> ok.
-new_gauges([]) ->
- ok;
-new_gauges([Name | MoreNames]) ->
- new_gauge(Name),
- new_gauges(MoreNames).
-spec get_current_value(counter() | gauge()) -> integer().
get_current_value(Name) ->
@@ -128,14 +113,15 @@
{ok, [{value, PrevVal}]} = Result,
PrevVal.
+
%% ------------------------------------------------------------------
%% public API
%% ------------------------------------------------------------------
init() ->
?LOG_INFO("Initiating metrics"),
- new_ctrs(?S1GW_COUNTERS),
- new_gauges(?S1GW_GAUGES).
+ [] = register_all(counter, ?S1GW_COUNTERS),
+ [] = register_all(gauge, ?S1GW_GAUGES).
%%%%%%%%%%%%%
%% CTR APIs
To view, visit change 39665. To unsubscribe, or for help writing mail filters, visit settings.