[config,metrics] Move metrics configuration section under respective NF section

Without this change, using metrics with core setup configurations
(configs/vonr.yaml for example) would not be possible. Having one
metrics section for whole config file causes every NF to start metrics
server on same port causing an abort.
This commit is contained in:
Bostjan Meglic 2022-09-07 05:38:05 +00:00 committed by Sukchan Lee
parent 721f5e212c
commit 2d4fbf92eb
20 changed files with 130 additions and 56 deletions

View File

@ -44,6 +44,9 @@ mme:
- addr: 127.0.0.2 - addr: 127.0.0.2
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 310 mcc: 310
@ -80,6 +83,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -112,6 +118,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 310 mcc: 310

View File

@ -68,6 +68,9 @@ mme:
mcc: 724 mcc: 724
mnc: 21 mnc: 21
lac: 51544 lac: 51544
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999
@ -114,6 +117,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -144,6 +150,9 @@ amf:
sbi: sbi:
- addr: 127.0.0.5 - addr: 127.0.0.5
port: 7777 port: 7777
metrics:
addr: 127.0.0.5
port: 9090
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
guami: guami:

View File

@ -44,6 +44,9 @@ mme:
- addr: 127.0.0.2 - addr: 127.0.0.2
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 999 mcc: 999
@ -80,6 +83,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -114,6 +120,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999

View File

@ -178,6 +178,13 @@ logger:
# sinit_max_attempts : 4 # sinit_max_attempts : 4
# sinit_max_init_timeo : 8000 # sinit_max_init_timeo : 8000
# #
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
# <GUAMI> # <GUAMI>
# #
# o Multiple GUAMI # o Multiple GUAMI
@ -263,6 +270,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999
@ -391,17 +401,3 @@ usrsctp:
# handover: # handover:
# duration: 500 # duration: 500
time: time:
#
# metrics:
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
metrics:
addr: 127.0.0.5
port: 9090

View File

@ -175,6 +175,12 @@ logger:
# mnc: 02 # mnc: 02
# lac: 43693 # lac: 43693
# #
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
# #
# <GUMMEI> # <GUMMEI>
# #
@ -248,6 +254,9 @@ mme:
- addr: 127.0.0.2 - addr: 127.0.0.2
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 999 mcc: 999
@ -421,17 +430,3 @@ usrsctp:
# handover: # handover:
# duration: 500 # duration: 500
time: time:
#
# metrics:
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
metrics:
addr: 127.0.0.2
port: 9090

View File

@ -16,7 +16,7 @@
# #
# o Set OGS_LOG_TRACE to all domain level # o Set OGS_LOG_TRACE to all domain level
# level: trace # level: trace
# domain: core,pfcp,fd,pfcp,gtp,smf,event,tlv,mem,sock # domain: core,fd,pfcp,gtp,smf,event,tlv,mem,sock
# #
logger: logger:
file: @localstatedir@/log/open5gs/smf.log file: @localstatedir@/log/open5gs/smf.log
@ -179,6 +179,13 @@ logger:
# option: # option:
# so_bindtodevice: vrf-blue # so_bindtodevice: vrf-blue
# #
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
# <Subnet for UE Pool> # <Subnet for UE Pool>
# #
# o IPv4 Pool # o IPv4 Pool
@ -423,6 +430,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -599,17 +609,3 @@ max:
# handover: # handover:
# duration: 500 # duration: 500
time: time:
#
# metrics:
#
# <Metrics Server>
#
# o Metrics Server(http://<any address>:9090)
# metrics:
# addr: 0.0.0.0
# port: 9090
#
metrics:
addr: 127.0.0.4
port: 9090

View File

@ -44,6 +44,9 @@ mme:
- addr: 127.0.0.2 - addr: 127.0.0.2
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 999 mcc: 999
@ -80,6 +83,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -137,6 +143,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999

View File

@ -44,6 +44,9 @@ mme:
- addr: 127.0.0.2 - addr: 127.0.0.2
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 999 mcc: 999
@ -80,6 +83,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -112,6 +118,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999

View File

@ -44,6 +44,9 @@ mme:
- addr: 127.0.1.100 - addr: 127.0.1.100
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 999 mcc: 999
@ -80,6 +83,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -112,6 +118,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999

View File

@ -44,6 +44,9 @@ mme:
- addr: 127.0.0.2 - addr: 127.0.0.2
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 999 mcc: 999
@ -80,6 +83,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -115,6 +121,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999

View File

@ -44,6 +44,9 @@ mme:
- addr: 127.0.0.2 - addr: 127.0.0.2
gtpc: gtpc:
- addr: 127.0.0.2 - addr: 127.0.0.2
metrics:
addr: 127.0.0.2
port: 9090
gummei: gummei:
plmn_id: plmn_id:
mcc: 999 mcc: 999
@ -80,6 +83,9 @@ smf:
gtpu: gtpu:
- addr: 127.0.0.4 - addr: 127.0.0.4
- addr: ::1 - addr: ::1
metrics:
addr: 127.0.0.4
port: 9090
subnet: subnet:
- addr: 10.45.0.1/16 - addr: 10.45.0.1/16
- addr: 2001:db8:cafe::1/48 - addr: 2001:db8:cafe::1/48
@ -115,6 +121,9 @@ amf:
port: 7777 port: 7777
ngap: ngap:
- addr: 127.0.0.5 - addr: 127.0.0.5
metrics:
addr: 127.0.0.5
port: 9090
guami: guami:
- plmn_id: - plmn_id:
mcc: 999 mcc: 999

View File

@ -39,7 +39,7 @@ void ogs_metrics_context_open(ogs_metrics_context_t *ctx);
void ogs_metrics_context_close(ogs_metrics_context_t *ctx); void ogs_metrics_context_close(ogs_metrics_context_t *ctx);
void ogs_metrics_context_final(void); void ogs_metrics_context_final(void);
ogs_metrics_context_t *ogs_metrics_self(void); ogs_metrics_context_t *ogs_metrics_self(void);
int ogs_metrics_context_parse_config(void); int ogs_metrics_context_parse_config(const char *local);
typedef struct ogs_metrics_spec_s ogs_metrics_spec_t; typedef struct ogs_metrics_spec_s ogs_metrics_spec_t;
ogs_metrics_spec_t *ogs_metrics_spec_new( ogs_metrics_spec_t *ogs_metrics_spec_new(

View File

@ -104,7 +104,7 @@ ogs_metrics_context_t *ogs_metrics_self(void)
return &self; return &self;
} }
int ogs_metrics_context_parse_config(void) int ogs_metrics_context_parse_config(const char *local)
{ {
int family = AF_UNSPEC; int family = AF_UNSPEC;
const char *hostname = NULL; const char *hostname = NULL;
@ -121,17 +121,26 @@ int ogs_metrics_context_parse_config(void)
while (ogs_yaml_iter_next(&root_iter)) { while (ogs_yaml_iter_next(&root_iter)) {
const char *root_key = ogs_yaml_iter_key(&root_iter); const char *root_key = ogs_yaml_iter_key(&root_iter);
ogs_assert(root_key); ogs_assert(root_key);
if (!strcmp(root_key, "metrics")) { if (local && !strcmp(root_key, local)) {
ogs_yaml_iter_t local_iter; ogs_yaml_iter_t local_iter;
ogs_yaml_iter_recurse(&root_iter, &local_iter); ogs_yaml_iter_recurse(&root_iter, &local_iter);
while (ogs_yaml_iter_next(&local_iter)) { while (ogs_yaml_iter_next(&local_iter)) {
const char *local_key = ogs_yaml_iter_key(&local_iter); const char *local_key = ogs_yaml_iter_key(&local_iter);
if (!strcmp(local_key, "addr")) { ogs_assert(local_key);
if ((v = ogs_yaml_iter_value(&local_iter))) if (!strcmp(local_key, "metrics")) {
hostname = v; ogs_yaml_iter_t metrics_iter;
} else if (!strcmp(local_key, "port")) { ogs_yaml_iter_recurse(&local_iter, &metrics_iter);
if ((v = ogs_yaml_iter_value(&local_iter))) while (ogs_yaml_iter_next(&metrics_iter)) {
port = atoi(v); const char *metrics_key = ogs_yaml_iter_key(&metrics_iter);
ogs_assert(metrics_key);
if (!strcmp(metrics_key, "addr")) {
if ((v = ogs_yaml_iter_value(&metrics_iter)))
hostname = v;
} else if (!strcmp(metrics_key, "port")) {
if ((v = ogs_yaml_iter_value(&metrics_iter)))
port = atoi(v);
}
}
} }
} }
} }

View File

@ -50,7 +50,7 @@ ogs_metrics_context_t *ogs_metrics_self(void)
return &self; return &self;
} }
int ogs_metrics_context_parse_config(void) int ogs_metrics_context_parse_config(const char *local)
{ {
return OGS_OK; return OGS_OK;
} }

View File

@ -825,6 +825,8 @@ int amf_context_parse_config(void)
/* handle config in sbi library */ /* handle config in sbi library */
} else if (!strcmp(amf_key, "discovery")) { } else if (!strcmp(amf_key, "discovery")) {
/* handle config in sbi library */ /* handle config in sbi library */
} else if (!strcmp(amf_key, "metrics")) {
/* handle config in metrics library */
} else } else
ogs_warn("unknown key `%s`", amf_key); ogs_warn("unknown key `%s`", amf_key);
} }

View File

@ -37,7 +37,7 @@ int amf_initialize()
rv = ogs_sbi_context_parse_config("amf", "nrf", "scp"); rv = ogs_sbi_context_parse_config("amf", "nrf", "scp");
if (rv != OGS_OK) return rv; if (rv != OGS_OK) return rv;
rv = ogs_metrics_context_parse_config(); rv = ogs_metrics_context_parse_config("amf");
if (rv != OGS_OK) return rv; if (rv != OGS_OK) return rv;
rv = amf_context_parse_config(); rv = amf_context_parse_config();

View File

@ -1277,6 +1277,8 @@ int mme_context_parse_config()
YAML_SEQUENCE_NODE); YAML_SEQUENCE_NODE);
} else if (!strcmp(mme_key, "mme_name")) { } else if (!strcmp(mme_key, "mme_name")) {
self.mme_name = ogs_yaml_iter_value(&mme_iter); self.mme_name = ogs_yaml_iter_value(&mme_iter);
} else if (!strcmp(mme_key, "metrics")) {
/* handle config in metrics library */
} else } else
ogs_warn("unknown key `%s`", mme_key); ogs_warn("unknown key `%s`", mme_key);
} }

View File

@ -49,7 +49,7 @@ int mme_initialize()
rv = ogs_gtp_context_parse_config("mme", "sgwc"); rv = ogs_gtp_context_parse_config("mme", "sgwc");
if (rv != OGS_OK) return rv; if (rv != OGS_OK) return rv;
rv = ogs_metrics_context_parse_config(); rv = ogs_metrics_context_parse_config("mme");
if (rv != OGS_OK) return rv; if (rv != OGS_OK) return rv;
rv = mme_context_parse_config(); rv = mme_context_parse_config();

View File

@ -835,6 +835,8 @@ int smf_context_parse_config(void)
/* handle config in sbi library */ /* handle config in sbi library */
} else if (!strcmp(smf_key, "discovery")) { } else if (!strcmp(smf_key, "discovery")) {
/* handle config in sbi library */ /* handle config in sbi library */
} else if (!strcmp(smf_key, "metrics")) {
/* handle config in metrics library */
} else } else
ogs_warn("unknown key `%s`", smf_key); ogs_warn("unknown key `%s`", smf_key);
} }

View File

@ -55,7 +55,7 @@ int smf_initialize()
rv = ogs_sbi_context_parse_config("smf", "nrf", "scp"); rv = ogs_sbi_context_parse_config("smf", "nrf", "scp");
if (rv != OGS_OK) return rv; if (rv != OGS_OK) return rv;
rv = ogs_metrics_context_parse_config(); rv = ogs_metrics_context_parse_config("smf");
if (rv != OGS_OK) return rv; if (rv != OGS_OK) return rv;
rv = smf_context_parse_config(); rv = smf_context_parse_config();