Loading go-apps/meep-gis-engine/server/gis-engine.go +2 −2 Original line number Diff line number Diff line Loading @@ -809,7 +809,7 @@ func updateCache() { updateRequired = true } else { cachedMeas, found := cachedUeMeas.Measurements[ueMeas.Poa] if !found || cachedMeas.Rssi != ueMeas.Rssi || cachedMeas.Rsrp != ueMeas.Rsrp || cachedMeas.Rsrq != ueMeas.Rsrq { if !found || cachedMeas.Distance != ueMeas.Distance || cachedMeas.Rssi != ueMeas.Rssi || cachedMeas.Rsrp != ueMeas.Rsrp || cachedMeas.Rsrq != ueMeas.Rsrq { updateRequired = true } } Loading @@ -820,7 +820,7 @@ func updateCache() { measurement.Rsrp = ueMeas.Rsrp measurement.Rsrq = ueMeas.Rsrq measurement.Distance = ueMeas.Distance _ = ge.gisCache.SetMeasurement(ue.Name, ueMeas.SubType, ueMeas.Poa, measurement) _ = ge.gisCache.SetMeasurement(ue.Name, AssetTypeUe, ueMeas.Poa, ueMeas.SubType, measurement) } } } Loading go-packages/meep-gis-cache/gis-cache.go +38 −38 Original line number Diff line number Diff line Loading @@ -39,15 +39,16 @@ const ( ) const ( fieldDistance = "distance" fieldDistance = "dist" fieldLatitude = "lat" fieldLongitude = "long" fieldPoa = "poa" fieldPoaType = "poatype" fieldDest = "dest" fieldDestType = "destType" fieldRssi = "rssi" fieldRsrp = "rsrp" fieldRsrq = "rsrq" fieldSrc = "src" fieldSrcType = "srcType" ) const ( Loading Loading @@ -217,20 +218,20 @@ func (gc *GisCache) DelPosition(typ string, name string) { } // SetMeasurement - Create or update entry in DB func (gc *GisCache) SetMeasurement(ue string, poaType string, poa string, meas *Measurement) error { key := gc.baseKey + measKey + ue + ":" + poa func (gc *GisCache) SetMeasurement(src string, srcType string, dest string, destType string, meas *Measurement) error { key := gc.baseKey + measKey + src + ":" + dest // Prepare data fields := make(map[string]interface{}) fields[fieldSrc] = fmt.Sprintf("%s", ue) fields[fieldPoa] = fmt.Sprintf("%s", poa) fields[fieldPoaType] = fmt.Sprintf("%s", poaType) fields[fieldSrc] = fmt.Sprintf("%s", src) fields[fieldSrcType] = fmt.Sprintf("%s", srcType) fields[fieldDest] = fmt.Sprintf("%s", dest) fields[fieldDestType] = fmt.Sprintf("%s", destType) fields[fieldRssi] = fmt.Sprintf("%f", meas.Rssi) fields[fieldRsrp] = fmt.Sprintf("%f", meas.Rsrp) fields[fieldRsrq] = fmt.Sprintf("%f", meas.Rsrq) fields[fieldDistance] = fmt.Sprintf("%f", meas.Distance) // Update entry in DB err := gc.rc.SetEntry(key, fields) if err != nil { Loading Loading @@ -288,7 +289,6 @@ func getMeasurement(key string, fields map[string]string, userData interface{}) meas.Distance = float32(distance) } // Add measurement to map ueMeas, found := measurementMap[ueName] if !found { Loading go-packages/meep-gis-cache/gis.go +62 −40 Original line number Diff line number Diff line Loading @@ -28,12 +28,16 @@ import ( const UeMetName = "meas" const UeMetNameInflux = "gis" const UeMetSrc = "src" const UeMetPoa = "poa" const UeMetPoaType = "poatype" const UeMetSrcType = "srcType" const UeMetDest = "dest" const UeMetDestType = "destType" const UeMetMeasType = "measType" const UeMetMeasTypeDistance = "distance" const UeMetMeasTypeSignal = "signal" const UeMetRssi = "rssi" const UeMetRsrp = "rsrp" const UeMetRsrq = "rsrq" const UeMetDistance = "distance" const UeMetDistance = "dist" const UeMetTime = "time" type Metric struct { Loading @@ -44,8 +48,9 @@ type Metric struct { type UeMetric struct { Src string Poa string PoaType string SrcType string Dest string DestType string Time interface{} Rssi int32 Rsrp int32 Loading Loading @@ -173,15 +178,20 @@ func (gc *GisCache) formatCachedUeMetric(values map[string]interface{}) (metric } metric.Src = val.(string) if val, ok = values[UeMetPoa]; !ok { if val, ok = values[UeMetSrcType]; !ok { val = "" } metric.Poa = val.(string) metric.SrcType = val.(string) if val, ok = values[UeMetPoaType]; !ok { if val, ok = values[UeMetDest]; !ok { val = "" } metric.PoaType = val.(string) metric.Dest = val.(string) if val, ok = values[UeMetDestType]; !ok { val = "" } metric.DestType = val.(string) if val, ok = values[UeMetRssi]; !ok { val = "" Loading Loading @@ -253,7 +263,8 @@ func (gc *GisCache) TakeUeMetricSnapshot() { // logTimeLapse("GetRedisMetric wildcard") // Prepare ue metrics list metricList := make([]Metric, len(valuesArray)) metricSignalList := make([]Metric, len(valuesArray)) metricDistanceList := make([]Metric, len(valuesArray)) for index, values := range valuesArray { // Format network metric nm, err := gc.formatCachedUeMetric(values) Loading @@ -262,19 +273,30 @@ func (gc *GisCache) TakeUeMetricSnapshot() { } // Add metric to list metric := &metricList[index] metric.Name = UeMetNameInflux metric.Tags = map[string]string{UeMetSrc: nm.Src, UeMetPoa: nm.Poa, UeMetPoaType: nm.PoaType} metric.Fields = map[string]interface{}{ metricSignal := &metricSignalList[index] metricSignal.Name = UeMetNameInflux metricSignal.Tags = map[string]string{UeMetSrc: nm.Src, UeMetSrcType: nm.SrcType, UeMetDest: nm.Dest, UeMetDestType: nm.DestType, UeMetMeasType: UeMetMeasTypeSignal} metricSignal.Fields = map[string]interface{}{ UeMetRssi: nm.Rssi, UeMetRsrp: nm.Rsrp, UeMetRsrq: nm.Rsrq, } metricDistance := &metricDistanceList[index] metricDistance.Name = UeMetNameInflux metricDistance.Tags = map[string]string{UeMetSrc: nm.Src, UeMetSrcType: nm.SrcType, UeMetDest: nm.Dest, UeMetDestType: nm.DestType, UeMetMeasType: UeMetMeasTypeDistance} metricDistance.Fields = map[string]interface{}{ UeMetDistance: nm.Distance, } } // Store metrics in influx err = gc.SetInfluxMetric(metricList) err = gc.SetInfluxMetric(metricSignalList) if err != nil { log.Error("Fail to write influx metrics with error: ", err.Error()) } // Store metrics in influx err = gc.SetInfluxMetric(metricDistanceList) if err != nil { log.Error("Fail to write influx metrics with error: ", err.Error()) } Loading Loading
go-apps/meep-gis-engine/server/gis-engine.go +2 −2 Original line number Diff line number Diff line Loading @@ -809,7 +809,7 @@ func updateCache() { updateRequired = true } else { cachedMeas, found := cachedUeMeas.Measurements[ueMeas.Poa] if !found || cachedMeas.Rssi != ueMeas.Rssi || cachedMeas.Rsrp != ueMeas.Rsrp || cachedMeas.Rsrq != ueMeas.Rsrq { if !found || cachedMeas.Distance != ueMeas.Distance || cachedMeas.Rssi != ueMeas.Rssi || cachedMeas.Rsrp != ueMeas.Rsrp || cachedMeas.Rsrq != ueMeas.Rsrq { updateRequired = true } } Loading @@ -820,7 +820,7 @@ func updateCache() { measurement.Rsrp = ueMeas.Rsrp measurement.Rsrq = ueMeas.Rsrq measurement.Distance = ueMeas.Distance _ = ge.gisCache.SetMeasurement(ue.Name, ueMeas.SubType, ueMeas.Poa, measurement) _ = ge.gisCache.SetMeasurement(ue.Name, AssetTypeUe, ueMeas.Poa, ueMeas.SubType, measurement) } } } Loading
go-packages/meep-gis-cache/gis-cache.go +38 −38 Original line number Diff line number Diff line Loading @@ -39,15 +39,16 @@ const ( ) const ( fieldDistance = "distance" fieldDistance = "dist" fieldLatitude = "lat" fieldLongitude = "long" fieldPoa = "poa" fieldPoaType = "poatype" fieldDest = "dest" fieldDestType = "destType" fieldRssi = "rssi" fieldRsrp = "rsrp" fieldRsrq = "rsrq" fieldSrc = "src" fieldSrcType = "srcType" ) const ( Loading Loading @@ -217,20 +218,20 @@ func (gc *GisCache) DelPosition(typ string, name string) { } // SetMeasurement - Create or update entry in DB func (gc *GisCache) SetMeasurement(ue string, poaType string, poa string, meas *Measurement) error { key := gc.baseKey + measKey + ue + ":" + poa func (gc *GisCache) SetMeasurement(src string, srcType string, dest string, destType string, meas *Measurement) error { key := gc.baseKey + measKey + src + ":" + dest // Prepare data fields := make(map[string]interface{}) fields[fieldSrc] = fmt.Sprintf("%s", ue) fields[fieldPoa] = fmt.Sprintf("%s", poa) fields[fieldPoaType] = fmt.Sprintf("%s", poaType) fields[fieldSrc] = fmt.Sprintf("%s", src) fields[fieldSrcType] = fmt.Sprintf("%s", srcType) fields[fieldDest] = fmt.Sprintf("%s", dest) fields[fieldDestType] = fmt.Sprintf("%s", destType) fields[fieldRssi] = fmt.Sprintf("%f", meas.Rssi) fields[fieldRsrp] = fmt.Sprintf("%f", meas.Rsrp) fields[fieldRsrq] = fmt.Sprintf("%f", meas.Rsrq) fields[fieldDistance] = fmt.Sprintf("%f", meas.Distance) // Update entry in DB err := gc.rc.SetEntry(key, fields) if err != nil { Loading Loading @@ -288,7 +289,6 @@ func getMeasurement(key string, fields map[string]string, userData interface{}) meas.Distance = float32(distance) } // Add measurement to map ueMeas, found := measurementMap[ueName] if !found { Loading
go-packages/meep-gis-cache/gis.go +62 −40 Original line number Diff line number Diff line Loading @@ -28,12 +28,16 @@ import ( const UeMetName = "meas" const UeMetNameInflux = "gis" const UeMetSrc = "src" const UeMetPoa = "poa" const UeMetPoaType = "poatype" const UeMetSrcType = "srcType" const UeMetDest = "dest" const UeMetDestType = "destType" const UeMetMeasType = "measType" const UeMetMeasTypeDistance = "distance" const UeMetMeasTypeSignal = "signal" const UeMetRssi = "rssi" const UeMetRsrp = "rsrp" const UeMetRsrq = "rsrq" const UeMetDistance = "distance" const UeMetDistance = "dist" const UeMetTime = "time" type Metric struct { Loading @@ -44,8 +48,9 @@ type Metric struct { type UeMetric struct { Src string Poa string PoaType string SrcType string Dest string DestType string Time interface{} Rssi int32 Rsrp int32 Loading Loading @@ -173,15 +178,20 @@ func (gc *GisCache) formatCachedUeMetric(values map[string]interface{}) (metric } metric.Src = val.(string) if val, ok = values[UeMetPoa]; !ok { if val, ok = values[UeMetSrcType]; !ok { val = "" } metric.Poa = val.(string) metric.SrcType = val.(string) if val, ok = values[UeMetPoaType]; !ok { if val, ok = values[UeMetDest]; !ok { val = "" } metric.PoaType = val.(string) metric.Dest = val.(string) if val, ok = values[UeMetDestType]; !ok { val = "" } metric.DestType = val.(string) if val, ok = values[UeMetRssi]; !ok { val = "" Loading Loading @@ -253,7 +263,8 @@ func (gc *GisCache) TakeUeMetricSnapshot() { // logTimeLapse("GetRedisMetric wildcard") // Prepare ue metrics list metricList := make([]Metric, len(valuesArray)) metricSignalList := make([]Metric, len(valuesArray)) metricDistanceList := make([]Metric, len(valuesArray)) for index, values := range valuesArray { // Format network metric nm, err := gc.formatCachedUeMetric(values) Loading @@ -262,19 +273,30 @@ func (gc *GisCache) TakeUeMetricSnapshot() { } // Add metric to list metric := &metricList[index] metric.Name = UeMetNameInflux metric.Tags = map[string]string{UeMetSrc: nm.Src, UeMetPoa: nm.Poa, UeMetPoaType: nm.PoaType} metric.Fields = map[string]interface{}{ metricSignal := &metricSignalList[index] metricSignal.Name = UeMetNameInflux metricSignal.Tags = map[string]string{UeMetSrc: nm.Src, UeMetSrcType: nm.SrcType, UeMetDest: nm.Dest, UeMetDestType: nm.DestType, UeMetMeasType: UeMetMeasTypeSignal} metricSignal.Fields = map[string]interface{}{ UeMetRssi: nm.Rssi, UeMetRsrp: nm.Rsrp, UeMetRsrq: nm.Rsrq, } metricDistance := &metricDistanceList[index] metricDistance.Name = UeMetNameInflux metricDistance.Tags = map[string]string{UeMetSrc: nm.Src, UeMetSrcType: nm.SrcType, UeMetDest: nm.Dest, UeMetDestType: nm.DestType, UeMetMeasType: UeMetMeasTypeDistance} metricDistance.Fields = map[string]interface{}{ UeMetDistance: nm.Distance, } } // Store metrics in influx err = gc.SetInfluxMetric(metricList) err = gc.SetInfluxMetric(metricSignalList) if err != nil { log.Error("Fail to write influx metrics with error: ", err.Error()) } // Store metrics in influx err = gc.SetInfluxMetric(metricDistanceList) if err != nil { log.Error("Fail to write influx metrics with error: ", err.Error()) } Loading