diff --git a/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb b/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb index 6eb0f29d438..6408cf96c14 100644 --- a/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +++ b/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb @@ -59,6 +59,8 @@ def annotate!(span, metadata) span.set_tag(header, value) end + span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER) + span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_SERVICE) diff --git a/lib/datadog/tracing/contrib/mongodb/subscribers.rb b/lib/datadog/tracing/contrib/mongodb/subscribers.rb index 1d87796c2dd..cce070e7e05 100644 --- a/lib/datadog/tracing/contrib/mongodb/subscribers.rb +++ b/lib/datadog/tracing/contrib/mongodb/subscribers.rb @@ -33,6 +33,8 @@ def started(event) span.set_tag(Contrib::Ext::DB::TAG_SYSTEM, Ext::TAG_SYSTEM) + span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT) + span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_COMMAND) diff --git a/lib/datadog/tracing/contrib/rack/middlewares.rb b/lib/datadog/tracing/contrib/rack/middlewares.rb index 75957de1006..889d9ed07eb 100644 --- a/lib/datadog/tracing/contrib/rack/middlewares.rb +++ b/lib/datadog/tracing/contrib/rack/middlewares.rb @@ -45,6 +45,7 @@ def compute_queue_time(env) # Tag this span as belonging to Rack frontend_span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) frontend_span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_HTTP_SERVER_QUEUE) + frontend_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER) # Set peer service (so its not believed to belong to this app) frontend_span.set_tag(Tracing::Metadata::Ext::TAG_PEER_SERVICE, configuration[:web_service_name]) @@ -157,6 +158,7 @@ def set_request_tags!(trace, request_span, env, status, headers, response, origi request_span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT) request_span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST) + request_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER) # Set analytics sample rate if Contrib::Analytics.enabled?(configuration[:analytics_enabled]) diff --git a/spec/datadog/tracing/contrib/grpc/datadog_interceptor/server_spec.rb b/spec/datadog/tracing/contrib/grpc/datadog_interceptor/server_spec.rb index 17620314e47..dcaf7a60622 100644 --- a/spec/datadog/tracing/contrib/grpc/datadog_interceptor/server_spec.rb +++ b/spec/datadog/tracing/contrib/grpc/datadog_interceptor/server_spec.rb @@ -35,6 +35,7 @@ it { expect(span.get_tag('rpc.system')).to eq 'grpc' } it { expect(span.get_tag('rpc.service')).to eq 'My::Server' } it { expect(span.get_tag('rpc.method')).to eq 'endpoint' } + it { expect(span.get_tag('span.kind')).to eq('server') } it 'has component and operation tags' do expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('grpc') @@ -80,6 +81,7 @@ expect(span).to have_error_type('TestError') expect(span).to have_error_stack(include('server_spec.rb')) expect(span.get_tag('rpc.system')).to eq 'grpc' + expect(span.get_tag('span.kind')).to eq('server') end end @@ -97,6 +99,7 @@ expect(span).to_not have_error expect(span.get_tag('custom.handler')).to eq('Got error test error, but ignored it') expect(span.get_tag('rpc.system')).to eq('grpc') + expect(span.get_tag('span.kind')).to eq('server') end end end diff --git a/spec/datadog/tracing/contrib/mongodb/client_spec.rb b/spec/datadog/tracing/contrib/mongodb/client_spec.rb index 3d8ae1bdfe3..be9b5bb3d65 100644 --- a/spec/datadog/tracing/contrib/mongodb/client_spec.rb +++ b/spec/datadog/tracing/contrib/mongodb/client_spec.rb @@ -154,6 +154,7 @@ expect(span.get_tag('out.port')).to eq(port) expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('mongodb') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)).to eq('command') + expect(span.get_tag('span.kind')).to eq('client') end it_behaves_like 'analytics for integration' do diff --git a/spec/datadog/tracing/contrib/rack/integration_test_spec.rb b/spec/datadog/tracing/contrib/rack/integration_test_spec.rb index d62c0b3b293..f2fab1b6072 100644 --- a/spec/datadog/tracing/contrib/rack/integration_test_spec.rb +++ b/spec/datadog/tracing/contrib/rack/integration_test_spec.rb @@ -31,6 +31,7 @@ expect(span.status).to eq(0) expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)).to eq('request') + expect(span.get_tag('span.kind')).to eq('server') end end @@ -77,6 +78,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -286,6 +289,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -322,6 +327,8 @@ expect(web_server_span.get_tag('operation')).to eq('queue') expect(web_server_span.get_tag('peer.service')).to eq('web-server') expect(web_server_span.status).to eq(0) + expect(web_server_span.get_tag('span.kind')) + .to eq('server') expect(rack_span.span_type).to eq('web') expect(rack_span.service).to eq(tracer.default_service) @@ -331,6 +338,8 @@ expect(rack_span.status).to eq(0) expect(rack_span.get_tag('component')).to eq('rack') expect(rack_span.get_tag('operation')).to eq('request') + expect(rack_span.get_tag('span.kind')) + .to eq('server') end end end @@ -367,6 +376,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -404,6 +415,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -444,6 +457,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -483,6 +498,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -538,6 +555,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -582,6 +601,7 @@ expect(web_server_span.get_tag('operation')).to eq('queue') expect(web_server_span.get_tag('peer.service')).to eq('web-server') expect(web_server_span.status).to eq(0) + expect(web_server_span.get_tag('span.kind')).to eq('server') expect(rack_span.span_type).to eq('web') expect(rack_span.service).to eq(tracer.default_service) @@ -591,6 +611,7 @@ expect(rack_span.status).to eq(0) expect(rack_span.get_tag('component')).to eq('rack') expect(rack_span.get_tag('operation')).to eq('request') + expect(rack_span.get_tag('span.kind')).to eq('server') expect(nested_app_span.resource).to eq('UserController#show') end @@ -640,6 +661,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -681,6 +704,8 @@ .to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)) .to eq('request') + expect(span.get_tag('span.kind')) + .to eq('server') end end end @@ -891,6 +916,7 @@ expect(span.status).to eq(0) expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_COMPONENT)).to eq('rack') expect(span.get_tag(Datadog::Tracing::Metadata::Ext::TAG_OPERATION)).to eq('request') + expect(span.get_tag('span.kind')).to eq('server') end end end