소스 검색

add pprof

liuxiulin 1 개월 전
부모
커밋
417511e751
1개의 변경된 파일28개의 추가작업 그리고 16개의 파일을 삭제
  1. 28 16
      services/mqttaccess/main.go

+ 28 - 16
services/mqttaccess/main.go

@@ -2,6 +2,8 @@ package main
 
 import (
 	"github.com/prometheus/client_golang/prometheus"
+	"net/http"
+	_ "net/http/pprof"
 	"sparrow/pkg/rpcs"
 	"sparrow/pkg/server"
 )
@@ -10,6 +12,15 @@ var deviceOnlineCount prometheus.Gauge
 var deviceMessageCount *prometheus.CounterVec
 
 func main() {
+
+	go func() {
+		pprofPort := "6060"
+		server.Log.Infof("pprof server started at :%s/debug/pprof", pprofPort)
+		if err := http.ListenAndServe(":"+pprofPort, nil); err != nil {
+			server.Log.Errorf("pprof server failed: %v", err)
+		}
+	}()
+
 	// init server
 	err := server.Init(rpcs.MQTTAccessName)
 	if err != nil {
@@ -36,23 +47,24 @@ func main() {
 		server.Log.Errorf("Register TCP service Error: %s", err)
 		return
 	}
-	deviceOnlineMetric := &server.Metric{
-		ID:          "device_online_count",
-		Name:        "device_online_count",
-		Description: "MQTT Device Online Count",
-		Type:        "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)
+	//deviceOnlineMetric := &server.Metric{
+	//	ID:          "device_online_count",
+	//	Name:        "device_online_count",
+	//	Description: "MQTT Device Online Count",
+	//	Type:        "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 {