add: custom kpi features

This commit is contained in:
2024-08-07 15:24:08 +08:00
parent de6535e99b
commit 299d618551
12 changed files with 616 additions and 0 deletions

View File

@@ -10,7 +10,10 @@ import (
"strings"
"time"
"be.ems/features/pm/kpi_c_report"
"be.ems/features/pm/kpi_c_title"
"be.ems/lib/dborm"
evaluate "be.ems/lib/eval"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/services"
@@ -251,6 +254,9 @@ func PostKPIReportFromNF(w http.ResponseWriter, r *http.Request) {
"startIndex": kpiIndex,
"timeGroup": kpiData.CreatedAt,
}
// for custom kpi
kpiValMap := map[string]any{}
for _, k := range kpiReport.Task.NE.KPIs {
kpiEvent[k.KPIID] = k.Value // kip_id
@@ -258,7 +264,9 @@ func PostKPIReportFromNF(w http.ResponseWriter, r *http.Request) {
kpiVal.Value = int64(k.Value)
kpiVal.Err = k.Err
kpiData.KPIValues = append(kpiData.KPIValues, *kpiVal)
kpiValMap[k.KPIID] = k.Value
}
kpiValMap["granularity"] = kpiData.Granularity
// set tenant_name if exist
where := fmt.Sprintf("status='1' and tenancy_type='UPF' and tenancy_key='%s'", kpiData.RmUid)
@@ -272,6 +280,34 @@ func PostKPIReportFromNF(w http.ResponseWriter, r *http.Request) {
return
}
report := kpi_c_report.KpiCReport{
NeType: &kpiData.NEType,
NeName: &kpiData.NEName,
RmUID: &kpiData.RmUid,
Date: kpiData.Date,
StartTime: &kpiData.StartTime,
EndTime: &kpiData.EndTime,
Index: int16(kpiData.Index),
Granularity: &kpiData.Granularity,
TenantID: &kpiData.TenantID,
}
kpiCList := kpi_c_title.GetActiveKPICList(kpiData.NEType)
for _, k := range kpiCList {
result, err := evaluate.CalcExpr(*k.Expression, kpiValMap)
kpiCVal := new(kpi_c_report.KpiCVal)
kpiCVal.KPIID = *k.KpiID
if err != nil {
kpiCVal.Value = 0.0
kpiCVal.Err = err.Error()
} else {
kpiCVal.Value = result
}
report.KpiValues = append(report.KpiValues, *kpiCVal)
}
kpi_c_report.InsertKpiCReport(kpiData.NEType, report)
// 发送到匹配的网元
neInfo := neService.NewNeInfoImpl.SelectNeInfoByRmuid(kpiData.RmUid)
if neInfo.RmUID == kpiData.RmUid {