diff --git a/CHANGELOG.md b/CHANGELOG.md index c8b5cbf8ef..ef5d47b844 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -178,3 +178,5 @@ significant modifications will be credited to OpenTelemetry Authors. ([#664](https://github.com/open-telemetry/opentelemetry-demo/pull/664)) * Update loadgenerator python base image and dependencies ([#669](https://github.com/open-telemetry/opentelemetry-demo/pull/669)) +* Add resource detectors to accounting service +([#676](https://github.com/open-telemetry/opentelemetry-demo/pull/676)) diff --git a/docs/services/accountingservice.md b/docs/services/accountingservice.md index 861912452f..47180f5b4c 100644 --- a/docs/services/accountingservice.md +++ b/docs/services/accountingservice.md @@ -22,6 +22,7 @@ func initTracerProvider() (*sdktrace.TracerProvider, error) { } tp := sdktrace.NewTracerProvider( sdktrace.WithBatcher(exporter), + sdktrace.WithResource(initResource()), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{})) diff --git a/src/accountingservice/main.go b/src/accountingservice/main.go index 9070c4cc12..77084de5aa 100644 --- a/src/accountingservice/main.go +++ b/src/accountingservice/main.go @@ -20,18 +20,22 @@ import ( "os" "os/signal" "strings" + "sync" "time" "github.com/sirupsen/logrus" "go.opentelemetry.io/otel" "go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc" "go.opentelemetry.io/otel/propagation" + sdkresource "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" "github.com/open-telemetry/opentelemetry-demo/src/accountingservice/kafka" ) var log *logrus.Logger +var resource *sdkresource.Resource +var initResourcesOnce sync.Once func init() { log = logrus.New() @@ -47,6 +51,23 @@ func init() { log.Out = os.Stdout } +func initResource() *sdkresource.Resource { + initResourcesOnce.Do(func() { + extraResources, _ := sdkresource.New( + context.Background(), + sdkresource.WithOS(), + sdkresource.WithProcess(), + sdkresource.WithContainer(), + sdkresource.WithHost(), + ) + resource, _ = sdkresource.Merge( + sdkresource.Default(), + extraResources, + ) + }) + return resource +} + func initTracerProvider() (*sdktrace.TracerProvider, error) { ctx := context.Background() @@ -56,6 +77,7 @@ func initTracerProvider() (*sdktrace.TracerProvider, error) { } tp := sdktrace.NewTracerProvider( sdktrace.WithBatcher(exporter), + sdktrace.WithResource(initResource()), ) otel.SetTracerProvider(tp) otel.SetTextMapPropagator(propagation.NewCompositeTextMapPropagator(propagation.TraceContext{}, propagation.Baggage{}))