package main import ( "github.com/prometheus/client_golang/prometheus" "sparrow/pkg/rpcs" "sparrow/pkg/server" ) var deviceOnlineCount prometheus.Gauge func main() { // init server err := server.Init(rpcs.MQTTAccessName) if err != nil { server.Log.Fatal(err) return } a, err := NewAccess() if err != nil { server.Log.Fatal(err) return } // register a rpc service err = server.RegisterRPCHandler(a) if err != nil { server.Log.Errorf("Register RPC service Error: %s", err) return } // register a tcp service for mqtt err = server.RegisterTCPHandler(a.MqttBroker) if err != nil { server.Log.Errorf("Register TCP service Error: %s", err) return } m := &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) // start to run err = server.Run() if err != nil { server.Log.Fatal(err) } }