fixeria has submitted this change. ( 
https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/42295?usp=email )

Change subject: enb_registry: call enb_metrics_register/1 from a proper place
......................................................................

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(-)

Approvals:
  osmith: Looks good to me, approved
  pespin: Looks good to me, but someone else must approve
  Jenkins Builder: Verified




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 https://gerrit.osmocom.org/c/erlang/osmo-s1gw/+/42295?usp=email
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings?usp=email

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 <[email protected]>
Gerrit-Reviewer: Jenkins Builder
Gerrit-Reviewer: fixeria <[email protected]>
Gerrit-Reviewer: laforge <[email protected]>
Gerrit-Reviewer: osmith <[email protected]>
Gerrit-Reviewer: pespin <[email protected]>

Reply via email to