]> Sergey Matveev's repositories - btrtrc.git/commitdiff
cmd/torrent: Time and log TracerProvider.Shutdown
authorMatt Joiner <anacrolix@gmail.com>
Mon, 11 Jul 2022 01:37:14 +0000 (11:37 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Tue, 12 Jul 2022 06:15:50 +0000 (16:15 +1000)
cmd/torrent/main.go

index 51f5f84a42e6bef07ba665c05e808192f6ee1ca2..33e4eea9dcc9505346441d0971842d93817c7208 100644 (file)
@@ -4,19 +4,22 @@ package main
 import (
        "context"
        "fmt"
-       "github.com/anacrolix/log"
+       stdLog "log"
+       "net/http"
+       "time"
+
+       "github.com/prometheus/client_golang/prometheus"
+       "github.com/prometheus/client_golang/prometheus/promhttp"
        "go.opentelemetry.io/otel"
        "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
        "go.opentelemetry.io/otel/sdk/trace"
-       stdLog "log"
-       "net/http"
 
        "github.com/anacrolix/bargle"
        "github.com/anacrolix/envpprof"
+       "github.com/anacrolix/log"
        xprometheus "github.com/anacrolix/missinggo/v2/prometheus"
+
        "github.com/anacrolix/torrent/version"
-       "github.com/prometheus/client_golang/prometheus"
-       "github.com/prometheus/client_golang/prometheus/promhttp"
 )
 
 func init() {
@@ -24,6 +27,13 @@ func init() {
        http.Handle("/metrics", promhttp.Handler())
 }
 
+func shutdownTracerProvider(ctx context.Context, tp *trace.TracerProvider) {
+       started := time.Now()
+       err := tp.Shutdown(ctx)
+       elapsed := time.Since(started)
+       log.Levelf(log.Error, "shutting down tracer provider (took %v): %v", elapsed, err)
+}
+
 func main() {
        defer stdLog.SetFlags(stdLog.Flags() | stdLog.Lshortfile)
 
@@ -32,19 +42,13 @@ func main() {
        if err != nil {
                log.Fatalf("creating tracing exporter: %v", err)
        }
-       tracingProvider := trace.NewTracerProvider(trace.WithBatcher(tracingExporter))
-       defer tracingProvider.Shutdown(ctx)
-       otel.SetTracerProvider(tracingProvider)
-       //otel.SetTextMapPropagator(
-       //      propagation.NewCompositeTextMapPropagator(
-       //              propagation.TraceContext{},
-       //              propagation.Baggage{},
-       //      ),
-       //)
+       tracerProvider := trace.NewTracerProvider(trace.WithBatcher(tracingExporter))
+       defer shutdownTracerProvider(ctx, tracerProvider)
+       otel.SetTracerProvider(tracerProvider)
 
        main := bargle.Main{}
        main.Defer(envpprof.Stop)
-       main.Defer(func() { tracingProvider.Shutdown(ctx) })
+       main.Defer(func() { shutdownTracerProvider(ctx, tracerProvider) })
        debug := false
        debugFlag := bargle.NewFlag(&debug)
        debugFlag.AddLong("debug")