diff --git a/configs/310014.yaml.in b/configs/310014.yaml.in index 9dc0af7e3..8ca847aa7 100644 --- a/configs/310014.yaml.in +++ b/configs/310014.yaml.in @@ -44,6 +44,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 310 @@ -80,6 +83,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -112,6 +118,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 310 diff --git a/configs/csfb.yaml.in b/configs/csfb.yaml.in index 3542dabed..343e4083b 100644 --- a/configs/csfb.yaml.in +++ b/configs/csfb.yaml.in @@ -68,6 +68,9 @@ mme: mcc: 724 mnc: 21 lac: 51544 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: - plmn_id: mcc: 999 @@ -114,6 +117,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -144,6 +150,9 @@ amf: sbi: - addr: 127.0.0.5 port: 7777 + metrics: + addr: 127.0.0.5 + port: 9090 ngap: - addr: 127.0.0.5 guami: diff --git a/configs/non3gpp.yaml.in b/configs/non3gpp.yaml.in index a9842fe86..6b113d5e0 100644 --- a/configs/non3gpp.yaml.in +++ b/configs/non3gpp.yaml.in @@ -44,6 +44,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -80,6 +83,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -114,6 +120,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 diff --git a/configs/open5gs/amf.yaml.in b/configs/open5gs/amf.yaml.in index c37fd459d..be70fd239 100644 --- a/configs/open5gs/amf.yaml.in +++ b/configs/open5gs/amf.yaml.in @@ -178,6 +178,13 @@ logger: # sinit_max_attempts : 4 # sinit_max_init_timeo : 8000 # +# +# +# o Metrics Server(http://:9090) +# metrics: +# addr: 0.0.0.0 +# port: 9090 +# # # # o Multiple GUAMI @@ -263,6 +270,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 @@ -391,17 +401,3 @@ usrsctp: # handover: # duration: 500 time: - -# -# metrics: -# -# -# -# o Metrics Server(http://:9090) -# metrics: -# addr: 0.0.0.0 -# port: 9090 -# -metrics: - addr: 127.0.0.5 - port: 9090 diff --git a/configs/open5gs/mme.yaml.in b/configs/open5gs/mme.yaml.in index bcaf15951..384d8f885 100644 --- a/configs/open5gs/mme.yaml.in +++ b/configs/open5gs/mme.yaml.in @@ -175,6 +175,12 @@ logger: # mnc: 02 # lac: 43693 # +# +# +# o Metrics Server(http://:9090) +# metrics: +# addr: 0.0.0.0 +# port: 9090 # # # @@ -248,6 +254,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -421,17 +430,3 @@ usrsctp: # handover: # duration: 500 time: - -# -# metrics: -# -# -# -# o Metrics Server(http://:9090) -# metrics: -# addr: 0.0.0.0 -# port: 9090 -# -metrics: - addr: 127.0.0.2 - port: 9090 diff --git a/configs/open5gs/smf.yaml.in b/configs/open5gs/smf.yaml.in index 561fc5600..d919b8839 100644 --- a/configs/open5gs/smf.yaml.in +++ b/configs/open5gs/smf.yaml.in @@ -16,7 +16,7 @@ # # o Set OGS_LOG_TRACE to all domain level # level: trace -# domain: core,pfcp,fd,pfcp,gtp,smf,event,tlv,mem,sock +# domain: core,fd,pfcp,gtp,smf,event,tlv,mem,sock # logger: file: @localstatedir@/log/open5gs/smf.log @@ -179,6 +179,13 @@ logger: # option: # so_bindtodevice: vrf-blue # +# +# +# o Metrics Server(http://:9090) +# metrics: +# addr: 0.0.0.0 +# port: 9090 +# # # # o IPv4 Pool @@ -423,6 +430,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -599,17 +609,3 @@ max: # handover: # duration: 500 time: - -# -# metrics: -# -# -# -# o Metrics Server(http://:9090) -# metrics: -# addr: 0.0.0.0 -# port: 9090 -# -metrics: - addr: 127.0.0.4 - port: 9090 diff --git a/configs/sample.yaml.in b/configs/sample.yaml.in index a64e14d9f..bf01ed69d 100644 --- a/configs/sample.yaml.in +++ b/configs/sample.yaml.in @@ -44,6 +44,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -80,6 +83,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -137,6 +143,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 diff --git a/configs/slice.yaml.in b/configs/slice.yaml.in index 91177cab1..c3925ca06 100644 --- a/configs/slice.yaml.in +++ b/configs/slice.yaml.in @@ -44,6 +44,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -80,6 +83,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -112,6 +118,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 diff --git a/configs/srslte.yaml.in b/configs/srslte.yaml.in index 20055efd0..549b8f5f6 100644 --- a/configs/srslte.yaml.in +++ b/configs/srslte.yaml.in @@ -44,6 +44,9 @@ mme: - addr: 127.0.1.100 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -80,6 +83,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -112,6 +118,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 diff --git a/configs/volte.yaml.in b/configs/volte.yaml.in index f9a8a6ce7..36d77cd81 100644 --- a/configs/volte.yaml.in +++ b/configs/volte.yaml.in @@ -44,6 +44,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -80,6 +83,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -115,6 +121,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 diff --git a/configs/vonr.yaml.in b/configs/vonr.yaml.in index 122660717..7c2abe53b 100644 --- a/configs/vonr.yaml.in +++ b/configs/vonr.yaml.in @@ -44,6 +44,9 @@ mme: - addr: 127.0.0.2 gtpc: - addr: 127.0.0.2 + metrics: + addr: 127.0.0.2 + port: 9090 gummei: plmn_id: mcc: 999 @@ -80,6 +83,9 @@ smf: gtpu: - addr: 127.0.0.4 - addr: ::1 + metrics: + addr: 127.0.0.4 + port: 9090 subnet: - addr: 10.45.0.1/16 - addr: 2001:db8:cafe::1/48 @@ -115,6 +121,9 @@ amf: port: 7777 ngap: - addr: 127.0.0.5 + metrics: + addr: 127.0.0.5 + port: 9090 guami: - plmn_id: mcc: 999 diff --git a/lib/metrics/context.h b/lib/metrics/context.h index ce8b1819b..072104a06 100644 --- a/lib/metrics/context.h +++ b/lib/metrics/context.h @@ -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_final(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; ogs_metrics_spec_t *ogs_metrics_spec_new( diff --git a/lib/metrics/prometheus/context.c b/lib/metrics/prometheus/context.c index a2284afd6..d72640f01 100644 --- a/lib/metrics/prometheus/context.c +++ b/lib/metrics/prometheus/context.c @@ -104,7 +104,7 @@ ogs_metrics_context_t *ogs_metrics_self(void) return &self; } -int ogs_metrics_context_parse_config(void) +int ogs_metrics_context_parse_config(const char *local) { int family = AF_UNSPEC; const char *hostname = NULL; @@ -121,17 +121,26 @@ int ogs_metrics_context_parse_config(void) while (ogs_yaml_iter_next(&root_iter)) { const char *root_key = ogs_yaml_iter_key(&root_iter); ogs_assert(root_key); - if (!strcmp(root_key, "metrics")) { + if (local && !strcmp(root_key, local)) { ogs_yaml_iter_t local_iter; ogs_yaml_iter_recurse(&root_iter, &local_iter); while (ogs_yaml_iter_next(&local_iter)) { const char *local_key = ogs_yaml_iter_key(&local_iter); - if (!strcmp(local_key, "addr")) { - if ((v = ogs_yaml_iter_value(&local_iter))) - hostname = v; - } else if (!strcmp(local_key, "port")) { - if ((v = ogs_yaml_iter_value(&local_iter))) - port = atoi(v); + ogs_assert(local_key); + if (!strcmp(local_key, "metrics")) { + ogs_yaml_iter_t metrics_iter; + ogs_yaml_iter_recurse(&local_iter, &metrics_iter); + while (ogs_yaml_iter_next(&metrics_iter)) { + 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); + } + } } } } diff --git a/lib/metrics/void/context.c b/lib/metrics/void/context.c index ac7e41dd0..465d4322e 100644 --- a/lib/metrics/void/context.c +++ b/lib/metrics/void/context.c @@ -50,7 +50,7 @@ ogs_metrics_context_t *ogs_metrics_self(void) return &self; } -int ogs_metrics_context_parse_config(void) +int ogs_metrics_context_parse_config(const char *local) { return OGS_OK; } diff --git a/src/amf/context.c b/src/amf/context.c index a3feead1b..719d4fb6c 100644 --- a/src/amf/context.c +++ b/src/amf/context.c @@ -825,6 +825,8 @@ int amf_context_parse_config(void) /* handle config in sbi library */ } else if (!strcmp(amf_key, "discovery")) { /* handle config in sbi library */ + } else if (!strcmp(amf_key, "metrics")) { + /* handle config in metrics library */ } else ogs_warn("unknown key `%s`", amf_key); } diff --git a/src/amf/init.c b/src/amf/init.c index 5b91e40b0..8519e9fd5 100644 --- a/src/amf/init.c +++ b/src/amf/init.c @@ -37,7 +37,7 @@ int amf_initialize() rv = ogs_sbi_context_parse_config("amf", "nrf", "scp"); 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; rv = amf_context_parse_config(); diff --git a/src/mme/mme-context.c b/src/mme/mme-context.c index c1cc9abcb..5368f1f2e 100644 --- a/src/mme/mme-context.c +++ b/src/mme/mme-context.c @@ -1277,6 +1277,8 @@ int mme_context_parse_config() YAML_SEQUENCE_NODE); } else if (!strcmp(mme_key, "mme_name")) { self.mme_name = ogs_yaml_iter_value(&mme_iter); + } else if (!strcmp(mme_key, "metrics")) { + /* handle config in metrics library */ } else ogs_warn("unknown key `%s`", mme_key); } diff --git a/src/mme/mme-init.c b/src/mme/mme-init.c index 44e4f3ec9..82173d38e 100644 --- a/src/mme/mme-init.c +++ b/src/mme/mme-init.c @@ -49,7 +49,7 @@ int mme_initialize() rv = ogs_gtp_context_parse_config("mme", "sgwc"); 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; rv = mme_context_parse_config(); diff --git a/src/smf/context.c b/src/smf/context.c index 7ceb962b1..cf09db526 100644 --- a/src/smf/context.c +++ b/src/smf/context.c @@ -835,6 +835,8 @@ int smf_context_parse_config(void) /* handle config in sbi library */ } else if (!strcmp(smf_key, "discovery")) { /* handle config in sbi library */ + } else if (!strcmp(smf_key, "metrics")) { + /* handle config in metrics library */ } else ogs_warn("unknown key `%s`", smf_key); } diff --git a/src/smf/init.c b/src/smf/init.c index 669bc0637..f7024609c 100644 --- a/src/smf/init.c +++ b/src/smf/init.c @@ -55,7 +55,7 @@ int smf_initialize() rv = ogs_sbi_context_parse_config("smf", "nrf", "scp"); 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; rv = smf_context_parse_config();