forked from acouzens/open5gs
Structure AMF and MME metrics code similar to SMF (#1590)
* AMF metrics initial support * MME metrics initial support * set amf/mme metrics.[c|h] similar to smf
This commit is contained in:
parent
0b97954208
commit
cfe21c61da
|
@ -12,34 +12,25 @@ typedef struct amf_metrics_spec_def_s {
|
|||
const char **labels;
|
||||
} amf_metrics_spec_def_t;
|
||||
|
||||
ogs_metrics_spec_t *amf_metrics_spec_global[_AMF_METR_GLOB_MAX];
|
||||
ogs_metrics_inst_t *amf_metrics_inst_global[_AMF_METR_GLOB_MAX];
|
||||
amf_metrics_spec_def_t amf_metrics_spec_def_global[_AMF_METR_GLOB_MAX] = {
|
||||
[AMF_METR_GLOB_GAUGE_RAN_UE] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "ran_ue",
|
||||
.description = "RAN UEs",
|
||||
.initial_val = 0,
|
||||
.num_labels = 0,
|
||||
.labels = NULL,
|
||||
},
|
||||
[AMF_METR_GLOB_GAUGE_AMF_SESS] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "amf_session",
|
||||
.description = "AMF Sessions",
|
||||
.initial_val = 0,
|
||||
.num_labels = 0,
|
||||
.labels = NULL,
|
||||
},
|
||||
[AMF_METR_GLOB_GAUGE_GNB] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "gnb",
|
||||
.description = "gNodeBs",
|
||||
.initial_val = 0,
|
||||
.num_labels = 0,
|
||||
.labels = NULL,
|
||||
},
|
||||
};
|
||||
/* Helper generic functions: */
|
||||
static int amf_metrics_init_inst(ogs_metrics_inst_t **inst, ogs_metrics_spec_t **specs,
|
||||
unsigned int len, unsigned int num_labels, const char **labels)
|
||||
{
|
||||
unsigned int i;
|
||||
for (i = 0; i < len; i++)
|
||||
inst[i] = ogs_metrics_inst_new(specs[i], num_labels, labels);
|
||||
return OGS_OK;
|
||||
}
|
||||
|
||||
static int amf_metrics_free_inst(ogs_metrics_inst_t **inst,
|
||||
unsigned int len)
|
||||
{
|
||||
unsigned int i;
|
||||
for (i = 0; i < len; i++)
|
||||
ogs_metrics_inst_free(inst[i]);
|
||||
memset(inst, 0, sizeof(inst[0]) * len);
|
||||
return OGS_OK;
|
||||
}
|
||||
|
||||
static int amf_metrics_init_spec(ogs_metrics_context_t *ctx,
|
||||
ogs_metrics_spec_t **dst, amf_metrics_spec_def_t *src, unsigned int len)
|
||||
|
@ -53,13 +44,35 @@ static int amf_metrics_init_spec(ogs_metrics_context_t *ctx,
|
|||
return OGS_OK;
|
||||
}
|
||||
|
||||
|
||||
static int amf_metrics_init_inst_global(ogs_metrics_inst_t **inst, ogs_metrics_spec_t **specs, unsigned int len)
|
||||
/* GLOBAL */
|
||||
ogs_metrics_spec_t *amf_metrics_spec_global[_AMF_METR_GLOB_MAX];
|
||||
ogs_metrics_inst_t *amf_metrics_inst_global[_AMF_METR_GLOB_MAX];
|
||||
amf_metrics_spec_def_t amf_metrics_spec_def_global[_AMF_METR_GLOB_MAX] = {
|
||||
/* Global Gauges: */
|
||||
[AMF_METR_GLOB_GAUGE_RAN_UE] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "ran_ue",
|
||||
.description = "RAN UEs",
|
||||
},
|
||||
[AMF_METR_GLOB_GAUGE_AMF_SESS] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "amf_session",
|
||||
.description = "AMF Sessions",
|
||||
},
|
||||
[AMF_METR_GLOB_GAUGE_GNB] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "gnb",
|
||||
.description = "gNodeBs",
|
||||
},
|
||||
};
|
||||
static int amf_metrics_init_inst_global(void)
|
||||
{
|
||||
unsigned int i;
|
||||
for (i = 0; i < len; i++)
|
||||
inst[i] = ogs_metrics_inst_new(specs[i], 0, NULL);
|
||||
return OGS_OK;
|
||||
return amf_metrics_init_inst(amf_metrics_inst_global, amf_metrics_spec_global,
|
||||
_AMF_METR_GLOB_MAX, 0, NULL);
|
||||
}
|
||||
static int amf_metrics_free_inst_global(void)
|
||||
{
|
||||
return amf_metrics_free_inst(amf_metrics_inst_global, _AMF_METR_GLOB_MAX);
|
||||
}
|
||||
|
||||
int amf_metrics_open(void)
|
||||
|
@ -70,14 +83,14 @@ int amf_metrics_open(void)
|
|||
amf_metrics_init_spec(ctx, amf_metrics_spec_global, amf_metrics_spec_def_global,
|
||||
_AMF_METR_GLOB_MAX);
|
||||
|
||||
amf_metrics_init_inst_global(amf_metrics_inst_global, amf_metrics_spec_global,
|
||||
_AMF_METR_GLOB_MAX);
|
||||
amf_metrics_init_inst_global();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int amf_metrics_close(void)
|
||||
{
|
||||
ogs_metrics_context_t *ctx = ogs_metrics_self();
|
||||
amf_metrics_free_inst_global();
|
||||
ogs_metrics_context_close(ctx);
|
||||
return OGS_OK;
|
||||
}
|
|
@ -16,21 +16,13 @@ typedef enum amf_metric_type_global_s {
|
|||
extern ogs_metrics_inst_t *amf_metrics_inst_global[_AMF_METR_GLOB_MAX];
|
||||
|
||||
static inline void amf_metrics_inst_global_set(amf_metric_type_global_t t, int val)
|
||||
{
|
||||
ogs_metrics_inst_set(amf_metrics_inst_global[t], val);
|
||||
}
|
||||
{ ogs_metrics_inst_set(amf_metrics_inst_global[t], val); }
|
||||
static inline void amf_metrics_inst_global_add(amf_metric_type_global_t t, int val)
|
||||
{
|
||||
ogs_metrics_inst_add(amf_metrics_inst_global[t], val);
|
||||
}
|
||||
{ ogs_metrics_inst_add(amf_metrics_inst_global[t], val); }
|
||||
static inline void amf_metrics_inst_global_inc(amf_metric_type_global_t t)
|
||||
{
|
||||
ogs_metrics_inst_inc(amf_metrics_inst_global[t]);
|
||||
}
|
||||
{ ogs_metrics_inst_inc(amf_metrics_inst_global[t]); }
|
||||
static inline void amf_metrics_inst_global_dec(amf_metric_type_global_t t)
|
||||
{
|
||||
ogs_metrics_inst_dec(amf_metrics_inst_global[t]);
|
||||
}
|
||||
{ ogs_metrics_inst_dec(amf_metrics_inst_global[t]); }
|
||||
|
||||
int amf_metrics_open(void);
|
||||
int amf_metrics_close(void);
|
||||
|
|
|
@ -12,34 +12,25 @@ typedef struct mme_metrics_spec_def_s {
|
|||
const char **labels;
|
||||
} mme_metrics_spec_def_t;
|
||||
|
||||
ogs_metrics_spec_t *mme_metrics_spec_global[_MME_METR_GLOB_MAX];
|
||||
ogs_metrics_inst_t *mme_metrics_inst_global[_MME_METR_GLOB_MAX];
|
||||
mme_metrics_spec_def_t mme_metrics_spec_def_global[_MME_METR_GLOB_MAX] = {
|
||||
[MME_METR_GLOB_GAUGE_ENB_UE] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "enb_ue",
|
||||
.description = "Number of UEs connected to eNodeBs",
|
||||
.initial_val = 0,
|
||||
.num_labels = 0,
|
||||
.labels = NULL,
|
||||
},
|
||||
[MME_METR_GLOB_GAUGE_MME_SESS] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "mme_session",
|
||||
.description = "MME Sessions",
|
||||
.initial_val = 0,
|
||||
.num_labels = 0,
|
||||
.labels = NULL,
|
||||
},
|
||||
[MME_METR_GLOB_GAUGE_ENB] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "enb",
|
||||
.description = "eNodeBs",
|
||||
.initial_val = 0,
|
||||
.num_labels = 0,
|
||||
.labels = NULL,
|
||||
},
|
||||
};
|
||||
/* Helper generic functions: */
|
||||
static int mme_metrics_init_inst(ogs_metrics_inst_t **inst, ogs_metrics_spec_t **specs,
|
||||
unsigned int len, unsigned int num_labels, const char **labels)
|
||||
{
|
||||
unsigned int i;
|
||||
for (i = 0; i < len; i++)
|
||||
inst[i] = ogs_metrics_inst_new(specs[i], num_labels, labels);
|
||||
return OGS_OK;
|
||||
}
|
||||
|
||||
static int mme_metrics_free_inst(ogs_metrics_inst_t **inst,
|
||||
unsigned int len)
|
||||
{
|
||||
unsigned int i;
|
||||
for (i = 0; i < len; i++)
|
||||
ogs_metrics_inst_free(inst[i]);
|
||||
memset(inst, 0, sizeof(inst[0]) * len);
|
||||
return OGS_OK;
|
||||
}
|
||||
|
||||
static int mme_metrics_init_spec(ogs_metrics_context_t *ctx,
|
||||
ogs_metrics_spec_t **dst, mme_metrics_spec_def_t *src, unsigned int len)
|
||||
|
@ -53,13 +44,35 @@ static int mme_metrics_init_spec(ogs_metrics_context_t *ctx,
|
|||
return OGS_OK;
|
||||
}
|
||||
|
||||
|
||||
static int mme_metrics_init_inst_global(ogs_metrics_inst_t **inst, ogs_metrics_spec_t **specs, unsigned int len)
|
||||
/* GLOBAL */
|
||||
ogs_metrics_spec_t *mme_metrics_spec_global[_MME_METR_GLOB_MAX];
|
||||
ogs_metrics_inst_t *mme_metrics_inst_global[_MME_METR_GLOB_MAX];
|
||||
mme_metrics_spec_def_t mme_metrics_spec_def_global[_MME_METR_GLOB_MAX] = {
|
||||
/* Global Gauges: */
|
||||
[MME_METR_GLOB_GAUGE_ENB_UE] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "enb_ue",
|
||||
.description = "Number of UEs connected to eNodeBs",
|
||||
},
|
||||
[MME_METR_GLOB_GAUGE_MME_SESS] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "mme_session",
|
||||
.description = "MME Sessions",
|
||||
},
|
||||
[MME_METR_GLOB_GAUGE_ENB] = {
|
||||
.type = OGS_METRICS_METRIC_TYPE_GAUGE,
|
||||
.name = "enb",
|
||||
.description = "eNodeBs",
|
||||
},
|
||||
};
|
||||
static int mme_metrics_init_inst_global(void)
|
||||
{
|
||||
unsigned int i;
|
||||
for (i = 0; i < len; i++)
|
||||
inst[i] = ogs_metrics_inst_new(specs[i], 0, NULL);
|
||||
return OGS_OK;
|
||||
return mme_metrics_init_inst(mme_metrics_inst_global, mme_metrics_spec_global,
|
||||
_MME_METR_GLOB_MAX, 0, NULL);
|
||||
}
|
||||
static int mme_metrics_free_inst_global(void)
|
||||
{
|
||||
return mme_metrics_free_inst(mme_metrics_inst_global, _MME_METR_GLOB_MAX);
|
||||
}
|
||||
|
||||
int mme_metrics_open(void)
|
||||
|
@ -70,14 +83,14 @@ int mme_metrics_open(void)
|
|||
mme_metrics_init_spec(ctx, mme_metrics_spec_global, mme_metrics_spec_def_global,
|
||||
_MME_METR_GLOB_MAX);
|
||||
|
||||
mme_metrics_init_inst_global(mme_metrics_inst_global, mme_metrics_spec_global,
|
||||
_MME_METR_GLOB_MAX);
|
||||
mme_metrics_init_inst_global();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int mme_metrics_close(void)
|
||||
{
|
||||
ogs_metrics_context_t *ctx = ogs_metrics_self();
|
||||
mme_metrics_free_inst_global();
|
||||
ogs_metrics_context_close(ctx);
|
||||
return OGS_OK;
|
||||
}
|
||||
|
|
|
@ -7,6 +7,7 @@
|
|||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* GLOBAL */
|
||||
typedef enum mme_metric_type_global_s {
|
||||
MME_METR_GLOB_GAUGE_ENB_UE,
|
||||
MME_METR_GLOB_GAUGE_MME_SESS,
|
||||
|
@ -16,21 +17,13 @@ typedef enum mme_metric_type_global_s {
|
|||
extern ogs_metrics_inst_t *mme_metrics_inst_global[_MME_METR_GLOB_MAX];
|
||||
|
||||
static inline void mme_metrics_inst_global_set(mme_metric_type_global_t t, int val)
|
||||
{
|
||||
ogs_metrics_inst_set(mme_metrics_inst_global[t], val);
|
||||
}
|
||||
{ ogs_metrics_inst_set(mme_metrics_inst_global[t], val); }
|
||||
static inline void mme_metrics_inst_global_add(mme_metric_type_global_t t, int val)
|
||||
{
|
||||
ogs_metrics_inst_add(mme_metrics_inst_global[t], val);
|
||||
}
|
||||
{ ogs_metrics_inst_add(mme_metrics_inst_global[t], val); }
|
||||
static inline void mme_metrics_inst_global_inc(mme_metric_type_global_t t)
|
||||
{
|
||||
ogs_metrics_inst_inc(mme_metrics_inst_global[t]);
|
||||
}
|
||||
{ ogs_metrics_inst_inc(mme_metrics_inst_global[t]); }
|
||||
static inline void mme_metrics_inst_global_dec(mme_metric_type_global_t t)
|
||||
{
|
||||
ogs_metrics_inst_dec(mme_metrics_inst_global[t]);
|
||||
}
|
||||
{ ogs_metrics_inst_dec(mme_metrics_inst_global[t]); }
|
||||
|
||||
int mme_metrics_open(void);
|
||||
int mme_metrics_close(void);
|
||||
|
|
Loading…
Reference in New Issue