fix(telemetry): start telemetry independently from the API server (#12448)
* fix(telemetry): start telemetry independently from the API server * fix unlock * add changelog * Update CHANGELOG.md Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com> Co-authored-by: Aleksandr Bezobchuk <alexanderbez@users.noreply.github.com>
This commit is contained in:
co-authored by
Aleksandr Bezobchuk
parent
18da0e9c15
commit
9057db6ec8
+9
-13
@@ -90,16 +90,6 @@ func New(clientCtx client.Context, logger log.Logger) *Server {
|
||||
// non-blocking, so an external signal handler must be used.
|
||||
func (s *Server) Start(cfg config.Config) error {
|
||||
s.mtx.Lock()
|
||||
if cfg.Telemetry.Enabled {
|
||||
m, err := telemetry.New(cfg.Telemetry)
|
||||
if err != nil {
|
||||
s.mtx.Unlock()
|
||||
return err
|
||||
}
|
||||
|
||||
s.metrics = m
|
||||
s.registerMetrics()
|
||||
}
|
||||
|
||||
tmCfg := tmrpcserver.DefaultConfig()
|
||||
tmCfg.MaxOpenConnections = int(cfg.API.MaxOpenConnections)
|
||||
@@ -114,18 +104,17 @@ func (s *Server) Start(cfg config.Config) error {
|
||||
}
|
||||
|
||||
s.registerGRPCGatewayRoutes()
|
||||
|
||||
s.listener = listener
|
||||
var h http.Handler = s.Router
|
||||
|
||||
s.mtx.Unlock()
|
||||
|
||||
if cfg.API.EnableUnsafeCORS {
|
||||
allowAllCORS := handlers.CORS(handlers.AllowedHeaders([]string{"Content-Type"}))
|
||||
s.mtx.Unlock()
|
||||
return tmrpcserver.Serve(s.listener, allowAllCORS(h), s.logger, tmCfg)
|
||||
}
|
||||
|
||||
s.logger.Info("starting API server...")
|
||||
s.mtx.Unlock()
|
||||
return tmrpcserver.Serve(s.listener, s.Router, s.logger, tmCfg)
|
||||
}
|
||||
|
||||
@@ -140,6 +129,13 @@ func (s *Server) registerGRPCGatewayRoutes() {
|
||||
s.Router.PathPrefix("/").Handler(s.GRPCGatewayRouter)
|
||||
}
|
||||
|
||||
func (s *Server) SetTelemetry(m *telemetry.Metrics) {
|
||||
s.mtx.Lock()
|
||||
s.metrics = m
|
||||
s.registerMetrics()
|
||||
s.mtx.Unlock()
|
||||
}
|
||||
|
||||
func (s *Server) registerMetrics() {
|
||||
metricsHandler := func(w http.ResponseWriter, r *http.Request) {
|
||||
format := strings.TrimSpace(r.FormValue("format"))
|
||||
|
||||
Reference in New Issue
Block a user