main.go 1018 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package main
  2. import (
  3. "github.com/prometheus/client_golang/prometheus"
  4. "sparrow/pkg/rpcs"
  5. "sparrow/pkg/server"
  6. )
  7. var deviceOnlineCount prometheus.Gauge
  8. func main() {
  9. // init server
  10. err := server.Init(rpcs.MQTTAccessName)
  11. if err != nil {
  12. server.Log.Fatal(err)
  13. return
  14. }
  15. a, err := NewAccess()
  16. if err != nil {
  17. server.Log.Fatal(err)
  18. return
  19. }
  20. // register a rpc service
  21. err = server.RegisterRPCHandler(a)
  22. if err != nil {
  23. server.Log.Errorf("Register RPC service Error: %s", err)
  24. return
  25. }
  26. // register a tcp service for mqtt
  27. err = server.RegisterTCPHandler(a.MqttBroker)
  28. if err != nil {
  29. server.Log.Errorf("Register TCP service Error: %s", err)
  30. return
  31. }
  32. m := &server.Metric{
  33. ID: "device_online_count",
  34. Name: "device_online_count",
  35. Description: "MQTT Device Online Count",
  36. Type: "gauge",
  37. }
  38. server.RegisterMetric(m)
  39. deviceOnlineCount = m.MetricCollector.(prometheus.Gauge)
  40. // start to run
  41. err = server.Run()
  42. if err != nil {
  43. server.Log.Fatal(err)
  44. }
  45. }