main.go 1.7 KB

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