main.go 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. package main
  2. import (
  3. "github.com/prometheus/client_golang/prometheus"
  4. "net/http"
  5. _ "net/http/pprof"
  6. "sparrow/pkg/rpcs"
  7. "sparrow/pkg/server"
  8. )
  9. var deviceOnlineCount prometheus.Gauge
  10. var deviceMessageCount *prometheus.CounterVec
  11. func main() {
  12. // init server
  13. err := server.Init(rpcs.MQTTAccessName)
  14. if err != nil {
  15. server.Log.Fatal(err)
  16. return
  17. }
  18. a, err := NewAccess()
  19. if err != nil {
  20. server.Log.Fatal(err)
  21. return
  22. }
  23. // register a rpc service
  24. err = server.RegisterRPCHandler(a)
  25. if err != nil {
  26. server.Log.Errorf("Register RPC service Error: %s", err)
  27. return
  28. }
  29. // register a tcp service for mqtt
  30. err = server.RegisterTCPHandler(a.MqttBroker)
  31. if err != nil {
  32. server.Log.Errorf("Register TCP service Error: %s", err)
  33. return
  34. }
  35. //deviceOnlineMetric := &server.Metric{
  36. // ID: "device_online_count",
  37. // Name: "device_online_count",
  38. // Description: "MQTT Device Online Count",
  39. // Type: "gauge",
  40. //}
  41. //recvMessageCount := &server.Metric{
  42. // ID: "device_message_total",
  43. // Name: "device_message_total",
  44. // Description: "device report message total count",
  45. // Type: "counter_vec",
  46. // Args: []string{"device_code"},
  47. //}
  48. //
  49. //server.RegisterMetric(deviceOnlineMetric, recvMessageCount)
  50. //deviceOnlineCount = deviceOnlineMetric.MetricCollector.(prometheus.Gauge)
  51. //deviceMessageCount = recvMessageCount.MetricCollector.(*prometheus.CounterVec)
  52. go func() {
  53. pprofPort := "6060"
  54. server.Log.Infof("pprof server started at :%s/debug/pprof", pprofPort)
  55. if err := http.ListenAndServe(":"+pprofPort, nil); err != nil {
  56. server.Log.Errorf("pprof server failed: %v", err)
  57. }
  58. }()
  59. // start to run
  60. err = server.Run()
  61. if err != nil {
  62. server.Log.Fatal(err)
  63. }
  64. }