fixeria submitted this change.

View Change

Approvals: osmith: Looks good to me, approved pespin: Looks good to me, but someone else must approve Jenkins Builder: Verified
enb_registry: call enb_metrics_register/1 from a proper place

enb_metrics_register/1 requires the Global-eNB-ID to register
per-eNB metrics. Calling it for every event, which may or may not
contain the Global-eNB-ID, is suboptimal.

Instead, invoke it from the enb_handle_event/2 clause that handles
the {s1setup, GENBId} event, where the Global-Enb-ID is guaranteed
to be available.

Change-Id: I38237463aa9c968f89bf4f195407a18cba7e73c9
---
M src/enb_registry.erl
1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/src/enb_registry.erl b/src/enb_registry.erl
index e40d9f5..54eca5d 100644
--- a/src/enb_registry.erl
+++ b/src/enb_registry.erl
@@ -235,7 +235,6 @@
{ok, EnbInfo0} ->
?LOG_INFO("eNB (handle=~p) event: ~p", [Handle, Event]),
EnbInfo1 = enb_handle_event(EnbInfo0, Event),
- enb_metrics_register(EnbInfo1),
{noreply, S#state{enbs = maps:update(Handle, EnbInfo1, ENBs)}};
error ->
?LOG_ERROR("eNB (handle=~p) is *not* registered", [Handle]),
@@ -283,11 +282,9 @@
%% private API
%% ------------------------------------------------------------------

--spec enb_metrics_register(enb_info()) -> term().
-enb_metrics_register(#{genb_id_str := GlobalENBId}) ->
- catch exometer:new(?S1GW_CTR_ENB_UPTIME(GlobalENBId), counter);
-
-enb_metrics_register(_) -> ok.
+-spec enb_metrics_register(string()) -> term().
+enb_metrics_register(GlobalENBId) ->
+ catch exometer:new(?S1GW_CTR_ENB_UPTIME(GlobalENBId), counter).


-spec enb_metrics_reset(enb_info()) -> term().
@@ -307,9 +304,11 @@
mme_conn_info => ConnInfo};

enb_handle_event(EnbInfo, {s1setup, GENBId}) ->
+ GlobalENBId = s1ap_utils:genb_id_str(GENBId),
+ enb_metrics_register(GlobalENBId),
EnbInfo#{state => s1setup,
genb_id => GENBId,
- genb_id_str => s1ap_utils:genb_id_str(GENBId)};
+ genb_id_str => GlobalENBId};

enb_handle_event(EnbInfo, Event) ->
?LOG_ERROR("Unhandled event: ~p", [Event]),

To view, visit change 42295. To unsubscribe, or for help writing mail filters, visit settings.

Gerrit-MessageType: merged
Gerrit-Project: erlang/osmo-s1gw
Gerrit-Branch: master
Gerrit-Change-Id: I38237463aa9c968f89bf4f195407a18cba7e73c9
Gerrit-Change-Number: 42295
Gerrit-PatchSet: 2
Gerrit-Owner: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <vyanitskiy@sysmocom.de>
Gerrit-Reviewer: laforge <laforge@osmocom.org>
Gerrit-Reviewer: osmith <osmith@sysmocom.de>
Gerrit-Reviewer: pespin <pespin@sysmocom.de>