1515
1616package main
1717
18+ // [START opentelemetry_otlp_grpc_imports].
1819import (
1920 "context"
21+ // [START_EXCLUDE silent].
2022 "flag"
2123 "fmt"
2224 "log"
2325 "time"
2426
27+ // [END_EXCLUDE].
2528 "go.opentelemetry.io/otel"
2629 "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc"
2730 sdktrace "go.opentelemetry.io/otel/sdk/trace"
31+
32+ // [START_EXCLUDE].
2833 semconv "go.opentelemetry.io/otel/semconv/v1.37.0"
2934 "go.opentelemetry.io/otel/trace"
3035
36+ // [START opentelemetry_otlp_grpc_auth_imports].
3137 "google.golang.org/grpc"
3238 "google.golang.org/grpc/credentials/oauth"
39+ // [END opentelemetry_otlp_grpc_auth_imports].
40+ // [END_EXCLUDE].
3341)
3442
43+ // [END opentelemetry_otlp_grpc_imports]
44+
3545var keepRunning = flag .Bool ("keepRunning" , false , "Set to true for generating spans at a fixed rate indefinitely. Default is false." )
3646
3747func initTracer () (func (), error ) {
48+ // [START opentelemetry_otlp_grpc_init]
49+ // Initializes OpenTelemetry with OTLP exporters
3850 ctx := context .Background ()
3951
52+ // Configure gRPC client with Google Application Default Credentials
4053 creds , err := oauth .NewApplicationDefault (ctx )
4154 if err != nil {
4255 panic (err )
@@ -45,6 +58,7 @@ func initTracer() (func(), error) {
4558 // set OTEL_RESOURCE_ATTRIBUTES="gcp.project_id=<project_id>"
4659 // set endpoint with OTEL_EXPORTER_OTLP_ENDPOINT=https://<endpoint>
4760 // set OTEL_EXPORTER_OTLP_HEADERS="x-goog-user-project=<project_id>"
61+ // Configure exporter to use the credentials
4862 exporter , err := otlptracegrpc .New (ctx , otlptracegrpc .WithDialOption (grpc .WithPerRPCCredentials (creds )))
4963 if err != nil {
5064 panic (err )
@@ -57,6 +71,7 @@ func initTracer() (func(), error) {
5771 sdktrace .WithBatcher (exporter ))
5872
5973 otel .SetTracerProvider (tp )
74+ // [END opentelemetry_otlp_grpc_init]
6075 return func () {
6176 err := tp .Shutdown (context .Background ())
6277 if err != nil {
0 commit comments