From 6d256e1a13ada4f9840ee610691a6b59e896983f Mon Sep 17 00:00:00 2001 From: Wael Nasreddine Date: Tue, 24 Dec 2024 16:19:12 -0800 Subject: [PATCH] fix(pkg/server): use hostname for OpenTelemetry tracer name (#154) ### TL;DR Updated OpenTelemetry middleware configuration to use dynamic hostname instead of static tracer name ### What changed? Replaced the static `tracerName` with `s.cache.GetHostname()` in both the OpenTelemetry Chi middleware and metrics base configuration. This change ensures that telemetry data is properly tagged with the actual host identifier. ### How to test? 1. Deploy the application 2. Check OpenTelemetry traces and metrics 3. Verify that the service name in traces and metrics matches the host's hostname 4. Confirm that all middleware functions (heartbeat, RealIP, Recoverer) continue to work as expected ### Why make this change? Using the actual hostname instead of a static tracer name provides better observability by allowing proper identification of the source of telemetry data in distributed environments. This makes it easier to track and debug issues across multiple instances of the service. --- pkg/server/server.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/server/server.go b/pkg/server/server.go index 9a58b3a..71cfd1a 100644 --- a/pkg/server/server.go +++ b/pkg/server/server.go @@ -79,13 +79,13 @@ func (s *Server) createRouter() { s.router = chi.NewRouter() mp := otel.GetMeterProvider() - baseCfg := otelchimetric.NewBaseConfig(tracerName, otelchimetric.WithMeterProvider(mp)) + baseCfg := otelchimetric.NewBaseConfig(s.cache.GetHostname(), otelchimetric.WithMeterProvider(mp)) s.router.Use(middleware.Heartbeat("/healthz")) s.router.Use(middleware.RealIP) s.router.Use(middleware.Recoverer) s.router.Use( - otelchi.Middleware(tracerName, otelchi.WithChiRoutes(s.router)), + otelchi.Middleware(s.cache.GetHostname(), otelchi.WithChiRoutes(s.router)), otelchimetric.NewRequestDurationMillis(baseCfg), otelchimetric.NewRequestInFlight(baseCfg), otelchimetric.NewResponseSizeBytes(baseCfg),