diff --git a/instrumentation/github.com/Shopify/sarama/otelsarama/example/consumer/consumer.go b/instrumentation/github.com/Shopify/sarama/otelsarama/example/consumer/consumer.go index aa2b6adc4ba..f140f07f06e 100644 --- a/instrumentation/github.com/Shopify/sarama/otelsarama/example/consumer/consumer.go +++ b/instrumentation/github.com/Shopify/sarama/otelsarama/example/consumer/consumer.go @@ -37,7 +37,8 @@ var ( ) func main() { - example.InitTracer() + tp := example.InitTracer() + defer tp.ForceFlush(context.Background()) flag.Parse() if *brokers == "" { diff --git a/instrumentation/github.com/Shopify/sarama/otelsarama/example/init.go b/instrumentation/github.com/Shopify/sarama/otelsarama/example/init.go index 0b8fe3617e9..c30a8bb0337 100644 --- a/instrumentation/github.com/Shopify/sarama/otelsarama/example/init.go +++ b/instrumentation/github.com/Shopify/sarama/otelsarama/example/init.go @@ -28,15 +28,16 @@ const ( KafkaTopic = "sarama-instrumentation-example" ) -func InitTracer() { +func InitTracer() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{})) + return tp } diff --git a/instrumentation/github.com/Shopify/sarama/otelsarama/example/producer/producer.go b/instrumentation/github.com/Shopify/sarama/otelsarama/example/producer/producer.go index 24f4781d5e1..fdc09cfedef 100644 --- a/instrumentation/github.com/Shopify/sarama/otelsarama/example/producer/producer.go +++ b/instrumentation/github.com/Shopify/sarama/otelsarama/example/producer/producer.go @@ -38,7 +38,8 @@ var ( ) func main() { - example.InitTracer() + tp := example.InitTracer() + defer tp.ForceFlush(context.Background()) flag.Parse() if *brokers == "" { diff --git a/instrumentation/github.com/astaxie/beego/otelbeego/example/server/server.go b/instrumentation/github.com/astaxie/beego/otelbeego/example/server/server.go index 18409e3cc83..d1215b1af5e 100644 --- a/instrumentation/github.com/astaxie/beego/otelbeego/example/server/server.go +++ b/instrumentation/github.com/astaxie/beego/otelbeego/example/server/server.go @@ -15,6 +15,7 @@ package main import ( + "context" "log" "github.com/astaxie/beego" @@ -49,7 +50,7 @@ func (c *ExampleController) Template() { } } -func initTracer() { +func initTracer() *sdktrace.TracerProvider { // Create stdout exporter to be able to retrieve // the collected spans. exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) @@ -61,14 +62,16 @@ func initTracer() { // In a production application, use sdktrace.ProbabilitySampler with a desired probability. tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), sdktrace.WithResource(resource.NewWithAttributes(semconv.ServiceNameKey.String("ExampleService")))) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) // To enable tracing on template rendering, disable autorender beego.BConfig.WebConfig.AutoRender = false diff --git a/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/client.go b/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/client.go index 7d5155ae2d2..54b31e3ddb8 100644 --- a/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/client.go +++ b/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/client.go @@ -22,7 +22,6 @@ import ( "github.com/bradfitz/gomemcache/memcache" "go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache" - oteltrace "go.opentelemetry.io/otel/trace" oteltracestdout "go.opentelemetry.io/otel/exporters/stdout" sdktrace "go.opentelemetry.io/otel/sdk/trace" @@ -33,6 +32,7 @@ func main() { tp := initTracer() ctx := context.Background() + defer tp.ForceFlush(ctx) c := otelmemcache.NewClientWithTracing( memcache.New( @@ -73,14 +73,14 @@ func doMemcacheOperations(ctx context.Context, c *otelmemcache.Client) { } } -func initTracer() oteltrace.TracerProvider { +func initTracer() *sdktrace.TracerProvider { exporter, err := oteltracestdout.NewExporter(oteltracestdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) return tp diff --git a/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/go.mod b/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/go.mod index 0443f647320..86bec3af4e6 100644 --- a/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/go.mod +++ b/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache/example/go.mod @@ -12,5 +12,4 @@ require ( go.opentelemetry.io/contrib/instrumentation/github.com/bradfitz/gomemcache/memcache/otelmemcache v0.20.0 go.opentelemetry.io/otel/exporters/stdout v0.20.0 go.opentelemetry.io/otel/sdk v0.20.0 - go.opentelemetry.io/otel/trace v0.20.0 ) diff --git a/instrumentation/github.com/emicklei/go-restful/otelrestful/example/server.go b/instrumentation/github.com/emicklei/go-restful/otelrestful/example/server.go index eb30e1ab702..b01bfaf165a 100644 --- a/instrumentation/github.com/emicklei/go-restful/otelrestful/example/server.go +++ b/instrumentation/github.com/emicklei/go-restful/otelrestful/example/server.go @@ -15,6 +15,7 @@ package main import ( + "context" "log" "net/http" "strconv" @@ -49,7 +50,8 @@ func (u UserResource) WebService() *restful.WebService { } func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) u := UserResource{} // create the Otel filter filter := otelrestful.OTelFilter("my-service") @@ -60,17 +62,18 @@ func main() { _ = http.ListenAndServe(":8080", nil) } -func initTracer() { +func initTracer() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) tracer = otel.GetTracerProvider().Tracer("go-restful-server", oteltrace.WithInstrumentationVersion("0.1")) + return tp } func (u UserResource) getUser(req *restful.Request, resp *restful.Response) { diff --git a/instrumentation/github.com/gin-gonic/gin/otelgin/example/server.go b/instrumentation/github.com/gin-gonic/gin/otelgin/example/server.go index 0bde11d3067..d83c4286650 100644 --- a/instrumentation/github.com/gin-gonic/gin/otelgin/example/server.go +++ b/instrumentation/github.com/gin-gonic/gin/otelgin/example/server.go @@ -15,6 +15,7 @@ package main import ( + "context" "html/template" "log" "net/http" @@ -33,7 +34,8 @@ import ( var tracer = otel.Tracer("gin-server") func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) r := gin.New() r.Use(otelgin.Middleware("my-server")) tmplName := "user" @@ -51,17 +53,18 @@ func main() { _ = r.Run(":8080") } -func initTracer() { +func initTracer() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func getUser(c *gin.Context, id string) string { diff --git a/instrumentation/github.com/go-kit/kit/otelkit/example/server.go b/instrumentation/github.com/go-kit/kit/otelkit/example/server.go index c549746e6e7..f0fcf1279c8 100644 --- a/instrumentation/github.com/go-kit/kit/otelkit/example/server.go +++ b/instrumentation/github.com/go-kit/kit/otelkit/example/server.go @@ -35,7 +35,8 @@ import ( var tracer = otel.Tracer("kit-server") func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) ep := otelkit.EndpointMiddleware( otelkit.WithOperation("getUser"), )(func(ctx context.Context, request interface{}) (response interface{}, err error) { @@ -56,17 +57,18 @@ func main() { _ = http.ListenAndServe(":8080", nil) } -func initTracer() { +func initTracer() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func getUser(ctx context.Context, id string) string { diff --git a/instrumentation/github.com/gorilla/mux/otelmux/example/server.go b/instrumentation/github.com/gorilla/mux/otelmux/example/server.go index 72656cbf17c..36ceb5b9dbd 100644 --- a/instrumentation/github.com/gorilla/mux/otelmux/example/server.go +++ b/instrumentation/github.com/gorilla/mux/otelmux/example/server.go @@ -34,7 +34,8 @@ import ( var tracer = otel.Tracer("mux-server") func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) r := mux.NewRouter() r.Use(otelmux.Middleware("my-server")) r.HandleFunc("/users/{id:[0-9]+}", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { @@ -48,17 +49,18 @@ func main() { _ = http.ListenAndServe(":8080", nil) } -func initTracer() { +func initTracer() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func getUser(ctx context.Context, id string) string { diff --git a/instrumentation/github.com/labstack/echo/otelecho/example/server.go b/instrumentation/github.com/labstack/echo/otelecho/example/server.go index e25c6f62166..186338a789c 100644 --- a/instrumentation/github.com/labstack/echo/otelecho/example/server.go +++ b/instrumentation/github.com/labstack/echo/otelecho/example/server.go @@ -33,7 +33,8 @@ import ( var tracer = otel.Tracer("gin-server") func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) r := echo.New() r.Use(otelecho.Middleware("my-server")) @@ -51,17 +52,18 @@ func main() { _ = r.Start(":8080") } -func initTracer() { +func initTracer() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func getUser(ctx context.Context, id string) string { diff --git a/instrumentation/google.golang.org/grpc/otelgrpc/example/client/main.go b/instrumentation/google.golang.org/grpc/otelgrpc/example/client/main.go index da0775dd66e..e704ada11ce 100644 --- a/instrumentation/google.golang.org/grpc/otelgrpc/example/client/main.go +++ b/instrumentation/google.golang.org/grpc/otelgrpc/example/client/main.go @@ -30,7 +30,8 @@ import ( ) func main() { - config.Init() + tp := config.Init() + defer tp.ForceFlush(context.Background()) var conn *grpc.ClientConn conn, err := grpc.Dial(":7777", grpc.WithInsecure(), diff --git a/instrumentation/google.golang.org/grpc/otelgrpc/example/config/config.go b/instrumentation/google.golang.org/grpc/otelgrpc/example/config/config.go index 682f44a6ae9..e4af73aba64 100644 --- a/instrumentation/google.golang.org/grpc/otelgrpc/example/config/config.go +++ b/instrumentation/google.golang.org/grpc/otelgrpc/example/config/config.go @@ -24,15 +24,16 @@ import ( ) // Init configures an OpenTelemetry exporter and trace provider -func Init() { +func Init() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } diff --git a/instrumentation/google.golang.org/grpc/otelgrpc/example/server/main.go b/instrumentation/google.golang.org/grpc/otelgrpc/example/server/main.go index cba5481146a..14aa20875f2 100644 --- a/instrumentation/google.golang.org/grpc/otelgrpc/example/server/main.go +++ b/instrumentation/google.golang.org/grpc/otelgrpc/example/server/main.go @@ -109,7 +109,8 @@ func (s *server) SayHelloBidiStream(stream api.HelloService_SayHelloBidiStreamSe } func main() { - config.Init() + tp := config.Init() + defer tp.ForceFlush(context.Background()) lis, err := net.Listen("tcp", port) if err != nil { diff --git a/instrumentation/gopkg.in/macaron.v1/otelmacaron/example/server.go b/instrumentation/gopkg.in/macaron.v1/otelmacaron/example/server.go index a4c5d8c24c2..4d003893589 100644 --- a/instrumentation/gopkg.in/macaron.v1/otelmacaron/example/server.go +++ b/instrumentation/gopkg.in/macaron.v1/otelmacaron/example/server.go @@ -33,7 +33,8 @@ import ( var tracer = otel.Tracer("macaron-server") func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) m := macaron.Classic() m.Use(otelmacaron.Middleware("my-server")) m.Get("/users/:id", func(ctx *macaron.Context) string { @@ -44,17 +45,18 @@ func main() { m.Run() } -func initTracer() { +func initTracer() *sdktrace.TracerProvider { exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) if err != nil { log.Fatal(err) } tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func getUser(ctx context.Context, id string) string { diff --git a/instrumentation/net/http/httptrace/otelhttptrace/example/client/client.go b/instrumentation/net/http/httptrace/otelhttptrace/example/client/client.go index e8b0b1107c3..084dfd9fdb1 100644 --- a/instrumentation/net/http/httptrace/otelhttptrace/example/client/client.go +++ b/instrumentation/net/http/httptrace/otelhttptrace/example/client/client.go @@ -38,7 +38,7 @@ import ( "go.opentelemetry.io/otel/trace" ) -func initTracer() { +func initTracer() *sdktrace.TracerProvider { // Create stdout exporter to be able to retrieve // the collected spans. exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) @@ -50,14 +50,16 @@ func initTracer() { // In a production application, use sdktrace.ProbabilitySampler with a desired probability. tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) url := flag.String("server", "http://localhost:7777/hello", "server url") flag.Parse() diff --git a/instrumentation/net/http/httptrace/otelhttptrace/example/server/server.go b/instrumentation/net/http/httptrace/otelhttptrace/example/server/server.go index d04a09d6914..571db89cc03 100644 --- a/instrumentation/net/http/httptrace/otelhttptrace/example/server/server.go +++ b/instrumentation/net/http/httptrace/otelhttptrace/example/server/server.go @@ -15,6 +15,7 @@ package main import ( + "context" "io" "log" "net/http" @@ -32,7 +33,7 @@ import ( "go.opentelemetry.io/otel/trace" ) -func initTracer() { +func initTracer() *sdktrace.TracerProvider { // Create stdout exporter to be able to retrieve // the collected spans. exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) @@ -44,15 +45,17 @@ func initTracer() { // In a production application, use sdktrace.ProbabilitySampler with a desired probability. tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), sdktrace.WithResource(resource.NewWithAttributes(semconv.ServiceNameKey.String("ExampleService"))), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) uk := attribute.Key("username") diff --git a/instrumentation/net/http/otelhttp/example/client/client.go b/instrumentation/net/http/otelhttp/example/client/client.go index 524c38201b9..65e6a7e3722 100644 --- a/instrumentation/net/http/otelhttp/example/client/client.go +++ b/instrumentation/net/http/otelhttp/example/client/client.go @@ -36,7 +36,7 @@ import ( "go.opentelemetry.io/otel/trace" ) -func initTracer() { +func initTracer() *sdktrace.TracerProvider { // Create stdout exporter to be able to retrieve // the collected spans. exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) @@ -48,14 +48,16 @@ func initTracer() { // In a production application, use sdktrace.ProbabilitySampler with a desired probability. tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) url := flag.String("server", "http://localhost:7777/hello", "server url") flag.Parse() diff --git a/instrumentation/net/http/otelhttp/example/server/server.go b/instrumentation/net/http/otelhttp/example/server/server.go index d04a09d6914..571db89cc03 100644 --- a/instrumentation/net/http/otelhttp/example/server/server.go +++ b/instrumentation/net/http/otelhttp/example/server/server.go @@ -15,6 +15,7 @@ package main import ( + "context" "io" "log" "net/http" @@ -32,7 +33,7 @@ import ( "go.opentelemetry.io/otel/trace" ) -func initTracer() { +func initTracer() *sdktrace.TracerProvider { // Create stdout exporter to be able to retrieve // the collected spans. exporter, err := stdout.NewExporter(stdout.WithPrettyPrint()) @@ -44,15 +45,17 @@ func initTracer() { // In a production application, use sdktrace.ProbabilitySampler with a desired probability. tp := sdktrace.NewTracerProvider( sdktrace.WithSampler(sdktrace.AlwaysSample()), - sdktrace.WithSyncer(exporter), + sdktrace.WithBatcher(exporter), sdktrace.WithResource(resource.NewWithAttributes(semconv.ServiceNameKey.String("ExampleService"))), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) + return tp } func main() { - initTracer() + tp := initTracer() + defer tp.ForceFlush(context.Background()) uk := attribute.Key("username") diff --git a/propagators/opencensus/examples/opentelemetry_server/server.go b/propagators/opencensus/examples/opentelemetry_server/server.go index b860697841a..6d1ebe8ce2a 100644 --- a/propagators/opencensus/examples/opentelemetry_server/server.go +++ b/propagators/opencensus/examples/opentelemetry_server/server.go @@ -57,9 +57,10 @@ func main() { log.Fatal(err) } tp := sdktrace.NewTracerProvider( - sdktrace.WithSyncer(otExporter), + sdktrace.WithBatcher(otExporter), sdktrace.WithSampler(sdktrace.AlwaysSample()), ) + defer tp.ForceFlush(context.Background()) otel.SetTracerProvider(tp) // Set up a new server with the OpenCensus