open5gs/src/amf/metrics.h

76 lines
2.3 KiB
C

#ifndef AMF_METRICS_H
#define AMF_METRICS_H
#include "ogs-metrics.h"
#ifdef __cplusplus
extern "C" {
#endif
typedef enum amf_metric_type_global_s {
AMF_METR_GLOB_GAUGE_RAN_UE,
AMF_METR_GLOB_GAUGE_AMF_SESS,
AMF_METR_GLOB_GAUGE_GNB,
AMF_METR_GLOB_CTR_RM_REG_INIT_REQ,
AMF_METR_GLOB_CTR_RM_REG_INIT_SUCC,
AMF_METR_GLOB_CTR_RM_REG_MOB_REQ,
AMF_METR_GLOB_CTR_RM_REG_MOB_SUCC,
AMF_METR_GLOB_CTR_RM_REG_PERIOD_REQ,
AMF_METR_GLOB_CTR_RM_REG_PERIOD_SUCC,
AMF_METR_GLOB_CTR_RM_REG_EMERG_REQ,
AMF_METR_GLOB_CTR_RM_REG_EMERG_SUCC,
AMF_METR_GLOB_CTR_MM_PAGING_5G_REQ,
AMF_METR_GLOB_CTR_MM_PAGING_5G_SUCC,
AMF_METR_GLOB_CTR_AMF_AUTH_REQ,
AMF_METR_GLOB_CTR_AMF_AUTH_REJECT,
AMF_METR_GLOB_CTR_MM_CONF_UPDATE,
AMF_METR_GLOB_CTR_MM_CONF_UPDATE_SUCC,
AMF_METR_GLOB_HIST_REG_TIME,
_AMF_METR_GLOB_MAX,
} amf_metric_type_global_t;
extern ogs_metrics_inst_t *amf_metrics_inst_global[_AMF_METR_GLOB_MAX];
int amf_metrics_init_inst_global(void);
int amf_metrics_free_inst_global(void);
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); }
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); }
static inline void amf_metrics_inst_global_inc(amf_metric_type_global_t 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]); }
/* BY SLICE */
typedef enum amf_metric_type_by_slice_s {
AMF_METR_GAUGE_RM_REGISTERED_SUB_NBR = 0,
_AMF_METR_BY_SLICE_MAX,
} amf_metric_type_by_slice_t;
void amf_metrics_inst_by_slice_add(
ogs_plmn_id_t *plmn, ogs_s_nssai_t *snssai,
amf_metric_type_by_slice_t t, int val);
/* BY CAUSE */
typedef enum amf_metric_type_by_cause_s {
AMF_METR_CTR_RM_REG_INIT_FAIL = 0,
AMF_METR_CTR_RM_REG_MOB_FAIL,
AMF_METR_CTR_RM_REG_PERIOD_FAIL,
AMF_METR_CTR_RM_REG_EMERG_FAIL,
AMF_METR_CTR_AMF_AUTH_FAIL,
_AMF_METR_BY_CAUSE_MAX,
} amf_metric_type_by_cause_t;
void amf_metrics_inst_by_cause_add(
uint8_t cause, amf_metric_type_by_cause_t t, int val);
void amf_metrics_init(void);
void amf_metrics_final(void);
#ifdef __cplusplus
}
#endif
#endif /* AMF_METRICS_H */