diff --git a/pkg/solver/loracloud/loracloud.go b/pkg/solver/loracloud/loracloud.go index 31b4cdf..ffcc125 100644 --- a/pkg/solver/loracloud/loracloud.go +++ b/pkg/solver/loracloud/loracloud.go @@ -309,6 +309,11 @@ func (m LoracloudClient) DeliverUplinkMessage(devEui string, uplinkMsg UplinkMsg uplinkResponse.GetLongitude() != 0 { loracloudPositionEstimateNoCapturedAtSetWithValidCoordinatesCounter.WithLabelValues(metricDevEui).Inc() } + if uplinkResponse.GetTimestamp() != nil && + uplinkResponse.GetLatitude() != 0 && + uplinkResponse.GetLongitude() != 0 { + loracloudPositionEstimateValidCounter.WithLabelValues(metricDevEui).Inc() + } return &uplinkResponse, nil } diff --git a/pkg/solver/loracloud/metrics.go b/pkg/solver/loracloud/metrics.go index ab63622..c33192e 100644 --- a/pkg/solver/loracloud/metrics.go +++ b/pkg/solver/loracloud/metrics.go @@ -22,4 +22,8 @@ var ( Name: "truvami_loracloud_position_estimate_no_captured_at_set_with_valid_coordinates_total", Help: "The total number of position estimate responses where the captured at (UTC) timestamp is not set and the coordinates are valid", }, []string{"devEUI"}) + loracloudPositionEstimateValidCounter = promauto.NewCounterVec(prometheus.CounterOpts{ + Name: "truvami_loracloud_position_estimate_valid_total", + Help: "The total number of position estimate responses where the captured at (UTC) timestamp is set and the coordinates are valid", + }, []string{"devEUI"}) )