Enha: tracing [WIP]
This commit is contained in:
@ -4,4 +4,5 @@ services:
|
||||
image: jaegertracing/all-in-one:latest
|
||||
ports:
|
||||
- "6831:6831/udp"
|
||||
- "14268:14268"
|
||||
- "16686:16686"
|
||||
|
22
main.go
22
main.go
@ -9,6 +9,7 @@ import (
|
||||
"gralias/telemetry"
|
||||
"log/slog"
|
||||
"net/http"
|
||||
_ "net/http/pprof"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
@ -111,16 +112,33 @@ func main() {
|
||||
cm := crons.NewCronManager(repo, slog.Default())
|
||||
cm.Start()
|
||||
server := ListenToRequests(cfg.ServerConfig.Port)
|
||||
pprofPort := "6060"
|
||||
pprofServer := &http.Server{
|
||||
Addr: ":" + pprofPort,
|
||||
}
|
||||
|
||||
go func() {
|
||||
slog.Info("Pprof server listening", "addr", pprofPort)
|
||||
if err := pprofServer.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
slog.Error("Pprof server failed", "error", err)
|
||||
}
|
||||
}()
|
||||
|
||||
go func() {
|
||||
if err := server.ListenAndServe(); err != nil && err != http.ErrServerClosed {
|
||||
panic(err)
|
||||
}
|
||||
}()
|
||||
|
||||
<-stop
|
||||
slog.Info("Shutting down server...")
|
||||
slog.Info("Shutting down servers...")
|
||||
ctx, cancel := context.WithTimeout(context.Background(), 2*time.Second)
|
||||
defer cancel()
|
||||
|
||||
if err := server.Shutdown(ctx); err != nil {
|
||||
slog.Error("server shutdown failed", "error", err)
|
||||
slog.Error("Main server shutdown failed", "error", err)
|
||||
}
|
||||
if err := pprofServer.Shutdown(ctx); err != nil {
|
||||
slog.Error("Pprof server shutdown failed", "error", err)
|
||||
}
|
||||
}
|
||||
|
@ -36,7 +36,11 @@ func NewTracerProvider(exp sdktrace.SpanExporter) *sdktrace.TracerProvider {
|
||||
|
||||
// OtelMiddleware wraps the provided http.Handler with OpenTelemetry tracing.
|
||||
func OtelMiddleware(handler http.Handler) http.Handler {
|
||||
return otelhttp.NewHandler(handler, "http.server")
|
||||
return otelhttp.NewHandler(handler, "http.server",
|
||||
otelhttp.WithSpanNameFormatter(func(operation string, r *http.Request) string {
|
||||
return r.URL.Path
|
||||
}),
|
||||
)
|
||||
}
|
||||
|
||||
func InitTracer() func() {
|
||||
|
Reference in New Issue
Block a user