diff --git a/CHANGELOG.md b/CHANGELOG.md index 037d5043d27..1b5b6dc82b5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,6 +8,10 @@ This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.htm ## [Unreleased] +### Added + +- Add `peer.service` semantic attribute. (#898) + ### Changed - Update `CONTRIBUTING.md` to ask for updates to `CHANGELOG.md` with each pull request. (#879) diff --git a/api/standard/trace.go b/api/standard/trace.go index b3e2f4b8b26..850b5dd4c2a 100644 --- a/api/standard/trace.go +++ b/api/standard/trace.go @@ -50,6 +50,13 @@ var ( NetTransportOther = NetTransportKey.String("other") ) +// General attribute keys for spans. +const ( + // Service name of the remote service. Should equal the actual + // `service.name` resource attribute of the remote service, if any. + PeerServiceKey = kv.Key("peer.service") +) + // Standard attribute keys used to identify an authorized enduser. const ( // Username or the client identifier extracted from the access token or diff --git a/example/http/client/client.go b/example/http/client/client.go index d96b96f2d0e..d63ea9579ac 100644 --- a/example/http/client/client.go +++ b/example/http/client/client.go @@ -22,6 +22,8 @@ import ( "log" "go.opentelemetry.io/otel/api/kv" + "go.opentelemetry.io/otel/api/standard" + "go.opentelemetry.io/otel/api/trace" "net/http" "time" @@ -80,7 +82,8 @@ func main() { _ = res.Body.Close() return err - }) + }, + trace.WithAttributes(standard.PeerServiceKey.String("ExampleService"))) if err != nil { panic(err) diff --git a/example/http/server/server.go b/example/http/server/server.go index 58737996e94..b6944d5f3bb 100644 --- a/example/http/server/server.go +++ b/example/http/server/server.go @@ -21,9 +21,11 @@ import ( "go.opentelemetry.io/otel/api/correlation" "go.opentelemetry.io/otel/api/global" + "go.opentelemetry.io/otel/api/standard" "go.opentelemetry.io/otel/api/trace" "go.opentelemetry.io/otel/exporters/trace/stdout" "go.opentelemetry.io/otel/instrumentation/httptrace" + "go.opentelemetry.io/otel/sdk/resource" sdktrace "go.opentelemetry.io/otel/sdk/trace" ) @@ -38,7 +40,8 @@ func initTracer() { // For the demonstration, use sdktrace.AlwaysSample sampler to sample all traces. // In a production application, use sdktrace.ProbabilitySampler with a desired probability. tp, err := sdktrace.NewProvider(sdktrace.WithConfig(sdktrace.Config{DefaultSampler: sdktrace.AlwaysSample()}), - sdktrace.WithSyncer(exporter)) + sdktrace.WithSyncer(exporter), + sdktrace.WithResource(resource.New(standard.ServiceNameKey.String("ExampleService")))) if err != nil { log.Fatal(err) }