Kaynağa Gözat

更新指标

lijian 2 yıl önce
ebeveyn
işleme
d588ecfd98

+ 13 - 3
services/mqttaccess/main.go

@@ -7,6 +7,7 @@ import (
 )
 
 var deviceOnlineCount prometheus.Gauge
+var deviceMessageCount prometheus.CounterVec
 
 func main() {
 	// init server
@@ -35,14 +36,23 @@ func main() {
 		server.Log.Errorf("Register TCP service Error: %s", err)
 		return
 	}
-	m := &server.Metric{
+	deviceOnlineMetric := &server.Metric{
 		ID:          "device_online_count",
 		Name:        "device_online_count",
 		Description: "MQTT Device Online Count",
 		Type:        "gauge",
 	}
-	server.RegisterMetric(m)
-	deviceOnlineCount = m.MetricCollector.(prometheus.Gauge)
+	recvMessageCount := &server.Metric{
+		ID:          "device_message_total",
+		Name:        "device_message_total",
+		Description: "device report message total count",
+		Type:        "counter_vec",
+		Args:        []string{"device_code"},
+	}
+
+	server.RegisterMetric(deviceOnlineMetric, recvMessageCount)
+	deviceOnlineCount = deviceOnlineMetric.MetricCollector.(prometheus.Gauge)
+	deviceMessageCount = recvMessageCount.MetricCollector.(prometheus.CounterVec)
 	// start to run
 	err = server.Run()
 	if err != nil {

+ 2 - 0
services/mqttaccess/mqtt_provider.go

@@ -64,6 +64,7 @@ func (mp *MQTTProvider) OnDeviceOffline(deviceid string, vendorId string) error
 	return err
 }
 func (mp *MQTTProvider) OnDeviceHeartBeat(deviceid string) error {
+	deviceMessageCount.WithLabelValues(deviceid).Inc()
 	args := rpcs.ArgsDeviceId{
 		Id: deviceid,
 	}
@@ -75,6 +76,7 @@ func (mp *MQTTProvider) OnDeviceHeartBeat(deviceid string) error {
 	return err
 }
 func (mp *MQTTProvider) OnDeviceMessage(deviceid, vendorId string, msgtype string, message *gjson.Json) {
+	deviceMessageCount.WithLabelValues(deviceid).Inc()
 	server.Log.Infof("device {%v} message {%v} : %s", deviceid, msgtype, message.MustToJsonString())
 	switch msgtype {
 	case "s":