|
@@ -2,6 +2,8 @@ package main
|
|
|
|
|
|
import (
|
|
import (
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
"github.com/prometheus/client_golang/prometheus"
|
|
|
|
+ "net/http"
|
|
|
|
+ _ "net/http/pprof"
|
|
"sparrow/pkg/rpcs"
|
|
"sparrow/pkg/rpcs"
|
|
"sparrow/pkg/server"
|
|
"sparrow/pkg/server"
|
|
)
|
|
)
|
|
@@ -10,6 +12,15 @@ var deviceOnlineCount prometheus.Gauge
|
|
var deviceMessageCount *prometheus.CounterVec
|
|
var deviceMessageCount *prometheus.CounterVec
|
|
|
|
|
|
func main() {
|
|
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
|
|
// init server
|
|
err := server.Init(rpcs.MQTTAccessName)
|
|
err := server.Init(rpcs.MQTTAccessName)
|
|
if err != nil {
|
|
if err != nil {
|
|
@@ -36,23 +47,24 @@ func main() {
|
|
server.Log.Errorf("Register TCP service Error: %s", err)
|
|
server.Log.Errorf("Register TCP service Error: %s", err)
|
|
return
|
|
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
|
|
// start to run
|
|
err = server.Run()
|
|
err = server.Run()
|
|
if err != nil {
|
|
if err != nil {
|