datadog 2.33.0 → 2.35.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +99 -1
- data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +20 -0
- data/ext/datadog_profiling_native_extension/collectors_thread_context.c +2 -15
- data/ext/datadog_profiling_native_extension/macos_sampler_thread.h +55 -0
- data/ext/datadog_profiling_native_extension/stack_recorder.c +6 -11
- data/lib/datadog/ai_guard/configuration.rb +1 -0
- data/lib/datadog/ai_guard/contrib/rack/request_middleware.rb +53 -39
- data/lib/datadog/ai_guard/evaluation.rb +6 -1
- data/lib/datadog/ai_guard/ext.rb +12 -1
- data/lib/datadog/appsec/api_security/route_extractor.rb +3 -0
- data/lib/datadog/appsec/component.rb +4 -1
- data/lib/datadog/appsec/compressed_json.rb +2 -2
- data/lib/datadog/appsec/contrib/aws_lambda/waf_addresses.rb +3 -3
- data/lib/datadog/appsec/contrib/rack/ext.rb +1 -1
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +9 -40
- data/lib/datadog/appsec/default_header_tags.rb +48 -0
- data/lib/datadog/core/configuration/components.rb +8 -1
- data/lib/datadog/core/configuration/settings.rb +16 -7
- data/lib/datadog/core/configuration/supported_configurations.rb +10 -0
- data/lib/datadog/core/environment/ext.rb +4 -0
- data/lib/datadog/core/environment/identity.rb +15 -1
- data/lib/datadog/core/environment/process.rb +50 -27
- data/lib/datadog/core/remote/client/capabilities.rb +11 -2
- data/lib/datadog/core/remote/transport/http/config.rb +5 -5
- data/lib/datadog/core/telemetry/request.rb +0 -2
- data/lib/datadog/core/transport/response.rb +1 -1
- data/lib/datadog/core/utils/{base64.rb → base64_codec.rb} +3 -2
- data/lib/datadog/core/utils/{array.rb → enumerable_compat.rb} +2 -2
- data/lib/datadog/core/utils/hash.rb +0 -23
- data/lib/datadog/core/utils/spawn_monkey_patch.rb +46 -16
- data/lib/datadog/data_streams/pathway_context.rb +3 -3
- data/lib/datadog/di/code_tracker.rb +43 -22
- data/lib/datadog/di/contrib/active_record.rb +6 -2
- data/lib/datadog/di/instrumenter.rb +24 -4
- data/lib/datadog/di/probe_notification_builder.rb +1 -1
- data/lib/datadog/di/remote.rb +4 -4
- data/lib/datadog/di/serializer.rb +5 -5
- data/lib/datadog/di/utils.rb +42 -14
- data/lib/datadog/opentelemetry/configuration/settings.rb +65 -0
- data/lib/datadog/opentelemetry/ext.rb +9 -0
- data/lib/datadog/opentelemetry/logs.rb +98 -0
- data/lib/datadog/opentelemetry/metrics.rb +10 -46
- data/lib/datadog/opentelemetry/sdk/configurator.rb +40 -0
- data/lib/datadog/opentelemetry/sdk/logs_exporter.rb +37 -0
- data/lib/datadog/opentelemetry/signal_configuration.rb +53 -0
- data/lib/datadog/opentelemetry.rb +1 -0
- data/lib/datadog/profiling/collectors/thread_context.rb +0 -4
- data/lib/datadog/profiling/component.rb +3 -11
- data/lib/datadog/profiling/ext/dir_monkey_patches.rb +3 -2
- data/lib/datadog/profiling/stack_recorder.rb +0 -4
- data/lib/datadog/symbol_database/component.rb +409 -0
- data/lib/datadog/symbol_database/configuration.rb +2 -2
- data/lib/datadog/symbol_database/extractor.rb +32 -4
- data/lib/datadog/symbol_database/remote.rb +175 -0
- data/lib/datadog/symbol_database/scope_batcher.rb +8 -0
- data/lib/datadog/symbol_database/service_version.rb +11 -2
- data/lib/datadog/symbol_database/symbol.rb +6 -3
- data/lib/datadog/symbol_database/uploader.rb +62 -8
- data/lib/datadog/tracing/contrib/action_cable/events/broadcast.rb +4 -1
- data/lib/datadog/tracing/contrib/action_cable/events/perform_action.rb +4 -1
- data/lib/datadog/tracing/contrib/action_cable/events/transmit.rb +4 -1
- data/lib/datadog/tracing/contrib/action_cable/instrumentation.rb +4 -1
- data/lib/datadog/tracing/contrib/action_mailer/event.rb +4 -1
- data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +1 -0
- data/lib/datadog/tracing/contrib/action_pack/action_dispatch/instrumentation.rb +8 -0
- data/lib/datadog/tracing/contrib/action_view/events/render_partial.rb +4 -1
- data/lib/datadog/tracing/contrib/action_view/events/render_template.rb +4 -1
- data/lib/datadog/tracing/contrib/active_job/events/discard.rb +4 -1
- data/lib/datadog/tracing/contrib/active_job/events/enqueue.rb +4 -1
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_at.rb +4 -1
- data/lib/datadog/tracing/contrib/active_job/events/enqueue_retry.rb +4 -1
- data/lib/datadog/tracing/contrib/active_job/events/perform.rb +4 -1
- data/lib/datadog/tracing/contrib/active_job/events/retry_stopped.rb +4 -1
- data/lib/datadog/tracing/contrib/active_record/events/sql.rb +1 -4
- data/lib/datadog/tracing/contrib/active_support/cache/events/cache.rb +1 -4
- data/lib/datadog/tracing/contrib/active_support/cache/instrumentation.rb +1 -4
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/dalli/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/delayed_job/plugin.rb +2 -0
- data/lib/datadog/tracing/contrib/delayed_job/server_internal_tracer/worker.rb +1 -0
- data/lib/datadog/tracing/contrib/elasticsearch/patcher.rb +1 -5
- data/lib/datadog/tracing/contrib/elasticsearch/quantize.rb +2 -2
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +1 -5
- data/lib/datadog/tracing/contrib/ethon/multi_patch.rb +1 -8
- data/lib/datadog/tracing/contrib/excon/middleware.rb +1 -5
- data/lib/datadog/tracing/contrib/ext.rb +3 -1
- data/lib/datadog/tracing/contrib/faraday/middleware.rb +1 -5
- data/lib/datadog/tracing/contrib/grape/endpoint.rb +3 -0
- data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +1 -0
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/client.rb +1 -5
- data/lib/datadog/tracing/contrib/grpc/datadog_interceptor/server.rb +1 -5
- data/lib/datadog/tracing/contrib/hanami/action_tracer.rb +1 -0
- data/lib/datadog/tracing/contrib/hanami/renderer_policy_tracing.rb +1 -0
- data/lib/datadog/tracing/contrib/hanami/router_tracing.rb +1 -0
- data/lib/datadog/tracing/contrib/http/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/httpclient/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/httprb/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/kafka/event.rb +1 -0
- data/lib/datadog/tracing/contrib/mongodb/parsers.rb +5 -5
- data/lib/datadog/tracing/contrib/mongodb/subscribers.rb +2 -5
- data/lib/datadog/tracing/contrib/mysql2/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/opensearch/patcher.rb +1 -5
- data/lib/datadog/tracing/contrib/opensearch/quantize.rb +2 -2
- data/lib/datadog/tracing/contrib/pg/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/presto/instrumentation.rb +3 -5
- data/lib/datadog/tracing/contrib/propagation/sql_comment/ext.rb +3 -0
- data/lib/datadog/tracing/contrib/propagation/sql_comment/mode.rb +2 -2
- data/lib/datadog/tracing/contrib/que/tracer.rb +1 -0
- data/lib/datadog/tracing/contrib/racecar/event.rb +1 -5
- data/lib/datadog/tracing/contrib/rack/header_tagging.rb +23 -0
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +1 -0
- data/lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb +2 -0
- data/lib/datadog/tracing/contrib/rails/runner.rb +2 -0
- data/lib/datadog/tracing/contrib/rake/instrumentation.rb +4 -2
- data/lib/datadog/tracing/contrib/redis/tags.rb +0 -5
- data/lib/datadog/tracing/contrib/redis/trace_middleware.rb +2 -0
- data/lib/datadog/tracing/contrib/resque/resque_job.rb +1 -0
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +1 -5
- data/lib/datadog/tracing/contrib/roda/ext.rb +1 -0
- data/lib/datadog/tracing/contrib/roda/instrumentation.rb +4 -1
- data/lib/datadog/tracing/contrib/sequel/database.rb +1 -0
- data/lib/datadog/tracing/contrib/sequel/dataset.rb +1 -0
- data/lib/datadog/tracing/contrib/sequel/utils.rb +0 -5
- data/lib/datadog/tracing/contrib/shoryuken/tracer.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/client_tracer.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/heartbeat.rb +2 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/job_fetch.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/redis_info.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/scheduled_poller.rb +2 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_internal_tracer/stop.rb +1 -0
- data/lib/datadog/tracing/contrib/sidekiq/server_tracer.rb +3 -2
- data/lib/datadog/tracing/contrib/sinatra/tracer.rb +1 -0
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +1 -0
- data/lib/datadog/tracing/contrib/sneakers/tracer.rb +1 -0
- data/lib/datadog/tracing/contrib/sucker_punch/instrumentation.rb +1 -0
- data/lib/datadog/tracing/contrib/trilogy/instrumentation.rb +1 -5
- data/lib/datadog/tracing/contrib/utils/quantization/{hash.rb → hash_formatter.rb} +1 -1
- data/lib/datadog/tracing/distributed/datadog_tags_codec.rb +0 -13
- data/lib/datadog/tracing/distributed/trace_context.rb +0 -28
- data/lib/datadog/tracing/metadata/ext.rb +10 -0
- data/lib/datadog/tracing/span_operation.rb +13 -0
- data/lib/datadog/tracing/trace_operation.rb +22 -0
- data/lib/datadog/tracing/tracer.rb +9 -0
- data/lib/datadog/tracing/transport/traces.rb +2 -2
- data/lib/datadog/version.rb +1 -1
- metadata +16 -10
|
@@ -119,6 +119,7 @@ module Datadog
|
|
|
119
119
|
def annotate!(span, datum)
|
|
120
120
|
span.resource = datum[:method].to_s.upcase
|
|
121
121
|
span.service = service_name(datum[:host], @options)
|
|
122
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
122
123
|
span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
|
|
123
124
|
|
|
124
125
|
if @options[:peer_service]
|
|
@@ -128,11 +129,6 @@ module Datadog
|
|
|
128
129
|
)
|
|
129
130
|
end
|
|
130
131
|
|
|
131
|
-
# Tag original global service name if not used
|
|
132
|
-
if span.service != Datadog.configuration.service
|
|
133
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
134
|
-
end
|
|
135
|
-
|
|
136
132
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
137
133
|
|
|
138
134
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative '../metadata/ext'
|
|
4
|
+
|
|
3
5
|
module Datadog
|
|
4
6
|
module Tracing
|
|
5
7
|
module Contrib
|
|
@@ -62,7 +64,7 @@ module Datadog
|
|
|
62
64
|
TAG_PEER_SERVICE_REMAP = '_dd.peer.service.remapped_from'
|
|
63
65
|
|
|
64
66
|
# Set equal to the global service when contrib span.service is overriden
|
|
65
|
-
TAG_BASE_SERVICE =
|
|
67
|
+
TAG_BASE_SERVICE = Tracing::Metadata::Ext::TAG_BASE_SERVICE
|
|
66
68
|
end
|
|
67
69
|
end
|
|
68
70
|
end
|
|
@@ -47,6 +47,7 @@ module Datadog
|
|
|
47
47
|
def annotate!(span, env, options)
|
|
48
48
|
span.resource = resource_name(env)
|
|
49
49
|
span.service = service_name(env[:url].host, options)
|
|
50
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
50
51
|
span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
|
|
51
52
|
|
|
52
53
|
if options[:peer_service]
|
|
@@ -56,11 +57,6 @@ module Datadog
|
|
|
56
57
|
)
|
|
57
58
|
end
|
|
58
59
|
|
|
59
|
-
# Tag original global service name if not used
|
|
60
|
-
if span.service != Datadog.configuration.service
|
|
61
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
62
|
-
end
|
|
63
|
-
|
|
64
60
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
65
61
|
|
|
66
62
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
@@ -62,6 +62,7 @@ module Datadog
|
|
|
62
62
|
|
|
63
63
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
64
64
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RUN)
|
|
65
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
65
66
|
|
|
66
67
|
if (grape_route = env['grape.routing_args']) && grape_route[:route_info]
|
|
67
68
|
trace.set_tag(
|
|
@@ -162,6 +163,7 @@ module Datadog
|
|
|
162
163
|
|
|
163
164
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
164
165
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RENDER)
|
|
166
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
165
167
|
|
|
166
168
|
Thread.current[KEY_RENDER] = true
|
|
167
169
|
rescue => e
|
|
@@ -213,6 +215,7 @@ module Datadog
|
|
|
213
215
|
begin
|
|
214
216
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
215
217
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ENDPOINT_RUN_FILTERS)
|
|
218
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
216
219
|
|
|
217
220
|
# Set analytics sample rate
|
|
218
221
|
Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
|
|
@@ -214,6 +214,7 @@ module Datadog
|
|
|
214
214
|
resource: resource,
|
|
215
215
|
service: @service_name
|
|
216
216
|
) do |span|
|
|
217
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
217
218
|
if Contrib::Analytics.enabled?(@analytics_enabled)
|
|
218
219
|
Contrib::Analytics.set_sample_rate(span, @analytics_sample_rate)
|
|
219
220
|
end
|
|
@@ -29,6 +29,7 @@ module Datadog
|
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
Tracing.trace(Ext::SPAN_CLIENT, **options) do |span, trace|
|
|
32
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
32
33
|
annotate!(trace, span, keywords, formatter)
|
|
33
34
|
|
|
34
35
|
begin
|
|
@@ -59,11 +60,6 @@ module Datadog
|
|
|
59
60
|
)
|
|
60
61
|
end
|
|
61
62
|
|
|
62
|
-
# Tag original global service name if not used
|
|
63
|
-
if span.service != Datadog.configuration.service
|
|
64
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
65
|
-
end
|
|
66
|
-
|
|
67
63
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
68
64
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
69
65
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_CLIENT)
|
|
@@ -33,6 +33,7 @@ module Datadog
|
|
|
33
33
|
set_distributed_context!(metadata)
|
|
34
34
|
|
|
35
35
|
Tracing.trace(Ext::SPAN_SERVICE, **options) do |span|
|
|
36
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
36
37
|
annotate!(span, metadata, formatter)
|
|
37
38
|
|
|
38
39
|
begin
|
|
@@ -66,11 +67,6 @@ module Datadog
|
|
|
66
67
|
span.set_tag(header, value)
|
|
67
68
|
end
|
|
68
69
|
|
|
69
|
-
# Tag original global service name if not used
|
|
70
|
-
if span.service != Datadog.configuration.service
|
|
71
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
70
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER)
|
|
75
71
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
76
72
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_SERVICE)
|
|
@@ -22,6 +22,7 @@ module Datadog
|
|
|
22
22
|
service: configuration[:service_name],
|
|
23
23
|
type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
|
|
24
24
|
) do |span_op, trace_op|
|
|
25
|
+
span_op.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
25
26
|
span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
26
27
|
span_op.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ACTION)
|
|
27
28
|
|
|
@@ -24,6 +24,7 @@ module Datadog
|
|
|
24
24
|
resource: action_klass.to_s,
|
|
25
25
|
type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
|
|
26
26
|
) do |span_op, _trace_op|
|
|
27
|
+
span_op.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
27
28
|
span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
28
29
|
span_op.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_RENDER)
|
|
29
30
|
|
|
@@ -17,6 +17,7 @@ module Datadog
|
|
|
17
17
|
service: configuration[:service_name],
|
|
18
18
|
type: Tracing::Metadata::Ext::HTTP::TYPE_INBOUND
|
|
19
19
|
) do |span_op, trace_op|
|
|
20
|
+
span_op.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
20
21
|
span_op.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
21
22
|
span_op.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_ROUTING)
|
|
22
23
|
|
|
@@ -32,6 +32,7 @@ module Datadog
|
|
|
32
32
|
|
|
33
33
|
Tracing.trace(Ext::SPAN_REQUEST) do |span, trace|
|
|
34
34
|
span.service = service_name(host, request_options, client_config)
|
|
35
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
35
36
|
span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
|
|
36
37
|
span.resource = req.method
|
|
37
38
|
|
|
@@ -63,11 +64,6 @@ module Datadog
|
|
|
63
64
|
)
|
|
64
65
|
end
|
|
65
66
|
|
|
66
|
-
# Tag original global service name if not used
|
|
67
|
-
if span.service != Datadog.configuration.service
|
|
68
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
69
|
-
end
|
|
70
|
-
|
|
71
67
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
72
68
|
|
|
73
69
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
@@ -28,6 +28,7 @@ module Datadog
|
|
|
28
28
|
Tracing.trace(Ext::SPAN_REQUEST) do |span, trace|
|
|
29
29
|
begin
|
|
30
30
|
span.service = service_name(host, request_options, client_config)
|
|
31
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
31
32
|
span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
|
|
32
33
|
|
|
33
34
|
if Tracing::Distributed::PropagationPolicy.enabled?(
|
|
@@ -68,11 +69,6 @@ module Datadog
|
|
|
68
69
|
)
|
|
69
70
|
end
|
|
70
71
|
|
|
71
|
-
# Tag original global service name if not used
|
|
72
|
-
if span.service != Datadog.configuration.service
|
|
73
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
74
|
-
end
|
|
75
|
-
|
|
76
72
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
77
73
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
|
|
78
74
|
|
|
@@ -28,6 +28,7 @@ module Datadog
|
|
|
28
28
|
Tracing.trace(Ext::SPAN_REQUEST) do |span, trace|
|
|
29
29
|
begin
|
|
30
30
|
span.service = service_name(host, request_options, client_config)
|
|
31
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
31
32
|
span.type = Tracing::Metadata::Ext::HTTP::TYPE_OUTBOUND
|
|
32
33
|
|
|
33
34
|
if Tracing::Distributed::PropagationPolicy.enabled?(
|
|
@@ -66,11 +67,6 @@ module Datadog
|
|
|
66
67
|
)
|
|
67
68
|
end
|
|
68
69
|
|
|
69
|
-
# Tag original global service name if not used
|
|
70
|
-
if span.service != Datadog.configuration.service
|
|
71
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
72
|
-
end
|
|
73
|
-
|
|
74
70
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
75
71
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
|
|
76
72
|
|
|
@@ -30,6 +30,7 @@ module Datadog
|
|
|
30
30
|
end
|
|
31
31
|
|
|
32
32
|
def on_start(span, _event, _id, payload)
|
|
33
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
33
34
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
34
35
|
span.set_tag(Contrib::Ext::Messaging::TAG_SYSTEM, Ext::TAG_MESSAGING_SYSTEM)
|
|
35
36
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative '../utils/quantization/
|
|
3
|
+
require_relative '../utils/quantization/hash_formatter'
|
|
4
4
|
|
|
5
5
|
module Datadog
|
|
6
6
|
module Tracing
|
|
@@ -20,11 +20,11 @@ module Datadog
|
|
|
20
20
|
# returns a formatted and normalized query
|
|
21
21
|
def query_builder(command_name, database_name, command)
|
|
22
22
|
# always exclude the command name
|
|
23
|
-
options = Contrib::Utils::Quantization::
|
|
23
|
+
options = Contrib::Utils::Quantization::HashFormatter.merge_options(quantization_options, exclude: [command_name.to_s])
|
|
24
24
|
|
|
25
25
|
# quantized statements keys are strings to avoid leaking Symbols in older Rubies
|
|
26
26
|
# as Symbols are not GC'ed in Rubies prior to 2.2
|
|
27
|
-
base_info = Contrib::Utils::Quantization::
|
|
27
|
+
base_info = Contrib::Utils::Quantization::HashFormatter.format(
|
|
28
28
|
{
|
|
29
29
|
'operation' => command_name,
|
|
30
30
|
'database' => database_name,
|
|
@@ -33,11 +33,11 @@ module Datadog
|
|
|
33
33
|
options
|
|
34
34
|
)
|
|
35
35
|
|
|
36
|
-
base_info.merge(Contrib::Utils::Quantization::
|
|
36
|
+
base_info.merge(Contrib::Utils::Quantization::HashFormatter.format(command, options))
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def quantization_options
|
|
40
|
-
Contrib::Utils::Quantization::
|
|
40
|
+
Contrib::Utils::Quantization::HashFormatter.merge_options(DEFAULT_OPTIONS, configuration[:quantize])
|
|
41
41
|
end
|
|
42
42
|
|
|
43
43
|
def configuration
|
|
@@ -30,6 +30,8 @@ module Datadog
|
|
|
30
30
|
span = Tracing.trace(Ext::SPAN_COMMAND, service: service, type: Ext::SPAN_TYPE_COMMAND)
|
|
31
31
|
set_span(event, span)
|
|
32
32
|
|
|
33
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
34
|
+
|
|
33
35
|
# build a quantized Query using the Parser module
|
|
34
36
|
query = MongoDB.query_builder(event.command_name, event.database_name, event.command)
|
|
35
37
|
serialized_query = serialize_query(query)
|
|
@@ -41,11 +43,6 @@ module Datadog
|
|
|
41
43
|
)
|
|
42
44
|
end
|
|
43
45
|
|
|
44
|
-
# Tag original global service name if not used
|
|
45
|
-
if span.service != Datadog.configuration.service
|
|
46
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
47
|
-
end
|
|
48
|
-
|
|
49
46
|
span.set_tag(Contrib::Ext::DB::TAG_SYSTEM, Ext::TAG_SYSTEM)
|
|
50
47
|
|
|
51
48
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
@@ -24,6 +24,7 @@ module Datadog
|
|
|
24
24
|
on_error = Datadog.configuration_for(self, :on_error) || datadog_configuration[:on_error]
|
|
25
25
|
|
|
26
26
|
Tracing.trace(Ext::SPAN_QUERY, service: service, on_error: on_error) do |span, trace_op|
|
|
27
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
27
28
|
span.resource = sql
|
|
28
29
|
span.type = Tracing::Metadata::Ext::SQL::TYPE
|
|
29
30
|
|
|
@@ -34,11 +35,6 @@ module Datadog
|
|
|
34
35
|
)
|
|
35
36
|
end
|
|
36
37
|
|
|
37
|
-
# Tag original global service name if not used
|
|
38
|
-
if span.service != Datadog.configuration.service
|
|
39
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
40
|
-
end
|
|
41
|
-
|
|
42
38
|
span.set_tag(Contrib::Ext::DB::TAG_SYSTEM, Ext::TAG_SYSTEM)
|
|
43
39
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
44
40
|
|
|
@@ -34,6 +34,7 @@ module Datadog
|
|
|
34
34
|
response = nil
|
|
35
35
|
# rubocop:disable Metrics/BlockLength
|
|
36
36
|
Tracing.trace('opensearch.query', service: datadog_configuration[:service_name]) do |span|
|
|
37
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
37
38
|
# Set generic tags
|
|
38
39
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
39
40
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
@@ -62,11 +63,6 @@ module Datadog
|
|
|
62
63
|
)
|
|
63
64
|
end
|
|
64
65
|
|
|
65
|
-
# Tag original global service name if not used
|
|
66
|
-
if span.service != Datadog.configuration.service
|
|
67
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
68
|
-
end
|
|
69
|
-
|
|
70
66
|
# Set url tags
|
|
71
67
|
span.set_tag(OpenSearch::Ext::TAG_URL, url)
|
|
72
68
|
span.set_tag(OpenSearch::Ext::TAG_HOST, host)
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
-
require_relative '../utils/quantization/
|
|
3
|
+
require_relative '../utils/quantization/hash_formatter'
|
|
4
4
|
|
|
5
5
|
module Datadog
|
|
6
6
|
module Tracing
|
|
@@ -41,7 +41,7 @@ module Datadog
|
|
|
41
41
|
# Parse each statement and quantize them.
|
|
42
42
|
statements.collect do |string|
|
|
43
43
|
reserialize_json(string, options[:placeholder]) do |obj|
|
|
44
|
-
Contrib::Utils::Quantization::
|
|
44
|
+
Contrib::Utils::Quantization::HashFormatter.format(obj, options)
|
|
45
45
|
end
|
|
46
46
|
end.join("\n")
|
|
47
47
|
end
|
|
@@ -109,6 +109,7 @@ module Datadog
|
|
|
109
109
|
resource: resource,
|
|
110
110
|
type: Tracing::Metadata::Ext::SQL::TYPE
|
|
111
111
|
) do |span, trace_op|
|
|
112
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
112
113
|
annotate_span_with_query!(span, service)
|
|
113
114
|
# Set analytics sample rate
|
|
114
115
|
Contrib::Analytics.set_sample_rate(span, analytics_sample_rate) if analytics_enabled?
|
|
@@ -160,11 +161,6 @@ module Datadog
|
|
|
160
161
|
)
|
|
161
162
|
end
|
|
162
163
|
|
|
163
|
-
# Tag original global service name if not used
|
|
164
|
-
if span.service != Datadog.configuration.service
|
|
165
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
166
|
-
end
|
|
167
|
-
|
|
168
164
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
169
165
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_QUERY)
|
|
170
166
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
@@ -23,6 +23,7 @@ module Datadog
|
|
|
23
23
|
service: datadog_configuration[:service_name]
|
|
24
24
|
) do |span|
|
|
25
25
|
begin
|
|
26
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
26
27
|
decorate!(span, Ext::TAG_OPERATION_QUERY)
|
|
27
28
|
span.resource = query
|
|
28
29
|
span.type = Tracing::Metadata::Ext::SQL::TYPE
|
|
@@ -41,6 +42,7 @@ module Datadog
|
|
|
41
42
|
service: datadog_configuration[:service_name]
|
|
42
43
|
) do |span|
|
|
43
44
|
begin
|
|
45
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
44
46
|
decorate!(span, Ext::TAG_OPERATION_QUERY)
|
|
45
47
|
span.resource = query
|
|
46
48
|
span.type = Tracing::Metadata::Ext::SQL::TYPE
|
|
@@ -59,6 +61,7 @@ module Datadog
|
|
|
59
61
|
service: datadog_configuration[:service_name]
|
|
60
62
|
) do |span|
|
|
61
63
|
begin
|
|
64
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
62
65
|
decorate!(span, Ext::TAG_OPERATION_KILL)
|
|
63
66
|
span.resource = Ext::SPAN_KILL
|
|
64
67
|
span.type = Tracing::Metadata::Ext::AppTypes::TYPE_DB
|
|
@@ -92,11 +95,6 @@ module Datadog
|
|
|
92
95
|
)
|
|
93
96
|
end
|
|
94
97
|
|
|
95
|
-
# Tag original global service name if not used
|
|
96
|
-
if span.service != Datadog.configuration.service
|
|
97
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
98
|
-
end
|
|
99
|
-
|
|
100
98
|
if (host_port = @options[:server])
|
|
101
99
|
host, port = Core::Utils.extract_host_port(host_port)
|
|
102
100
|
if host && port
|
|
@@ -18,6 +18,9 @@ module Datadog
|
|
|
18
18
|
# The `service` mode propagates service configuration
|
|
19
19
|
SERVICE = 'service'
|
|
20
20
|
|
|
21
|
+
# The `dynamic_service` mode propagates service configuration + DBM service hash
|
|
22
|
+
DYNAMIC_SERVICE = 'dynamic_service'
|
|
23
|
+
|
|
21
24
|
# The `full` mode propagates service configuration + trace context
|
|
22
25
|
FULL = 'full'
|
|
23
26
|
|
|
@@ -14,7 +14,7 @@ module Datadog
|
|
|
14
14
|
end
|
|
15
15
|
|
|
16
16
|
def service?
|
|
17
|
-
mode == Ext::SERVICE
|
|
17
|
+
mode == Ext::SERVICE || mode == Ext::DYNAMIC_SERVICE
|
|
18
18
|
end
|
|
19
19
|
|
|
20
20
|
def full?
|
|
@@ -26,7 +26,7 @@ module Datadog
|
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def inject_sql_basehash?
|
|
29
|
-
inject_sql_basehash
|
|
29
|
+
inject_sql_basehash || mode == Ext::DYNAMIC_SERVICE
|
|
30
30
|
end
|
|
31
31
|
end
|
|
32
32
|
end
|
|
@@ -16,6 +16,7 @@ module Datadog
|
|
|
16
16
|
}
|
|
17
17
|
|
|
18
18
|
Tracing.trace(Ext::SPAN_JOB, **trace_options) do |request_span|
|
|
19
|
+
request_span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
19
20
|
request_span.set_tag(Contrib::Ext::Messaging::TAG_SYSTEM, Ext::TAG_COMPONENT)
|
|
20
21
|
|
|
21
22
|
request_span.resource = job.class.name.to_s
|
|
@@ -35,6 +35,7 @@ module Datadog
|
|
|
35
35
|
|
|
36
36
|
def on_start(span, event, _id, payload)
|
|
37
37
|
span.service = configuration[:service_name]
|
|
38
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
38
39
|
span.resource = payload[:consumer_class]
|
|
39
40
|
|
|
40
41
|
span.set_tag(Contrib::Ext::Messaging::TAG_SYSTEM, Ext::TAG_MESSAGING_SYSTEM)
|
|
@@ -48,11 +49,6 @@ module Datadog
|
|
|
48
49
|
# Measure service stats
|
|
49
50
|
Contrib::Analytics.set_measured(span)
|
|
50
51
|
|
|
51
|
-
# Tag original global service name if not used
|
|
52
|
-
if span.service != Datadog.configuration.service
|
|
53
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
54
|
-
end
|
|
55
|
-
|
|
56
52
|
span.set_tag(Ext::TAG_TOPIC, payload[:topic])
|
|
57
53
|
span.set_tag(Ext::TAG_CONSUMER, payload[:consumer_class])
|
|
58
54
|
span.set_tag(Ext::TAG_PARTITION, payload[:partition])
|
|
@@ -1,11 +1,18 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require_relative 'header_collection'
|
|
4
|
+
|
|
3
5
|
module Datadog
|
|
4
6
|
module Tracing
|
|
5
7
|
module Contrib
|
|
6
8
|
module Rack
|
|
7
9
|
# Matches Rack-style headers with a matcher and sets matching headers into a span.
|
|
8
10
|
module HeaderTagging
|
|
11
|
+
DATADOG_REQUEST_ATTRIBUTION_HEADERS = [
|
|
12
|
+
'x-datadog-endpoint-scan',
|
|
13
|
+
'x-datadog-security-test'
|
|
14
|
+
].freeze
|
|
15
|
+
|
|
9
16
|
def self.tag_request_headers(span, env, configuration)
|
|
10
17
|
# Wrap env in a case-insensitive Rack-style accessor.
|
|
11
18
|
headers = env.is_a?(Header::RequestHeaderCollection) ? env : Header::RequestHeaderCollection.new(env)
|
|
@@ -25,6 +32,7 @@ module Datadog
|
|
|
25
32
|
end
|
|
26
33
|
|
|
27
34
|
span.set_tags(tags)
|
|
35
|
+
tag_datadog_request_attribution_headers(span, headers)
|
|
28
36
|
end
|
|
29
37
|
|
|
30
38
|
def self.tag_response_headers(span, headers, configuration)
|
|
@@ -56,6 +64,21 @@ module Datadog
|
|
|
56
64
|
|
|
57
65
|
span.set_tags(tags)
|
|
58
66
|
end
|
|
67
|
+
|
|
68
|
+
# Datadog-originated requests use these headers for request attribution.
|
|
69
|
+
# They are tagged independently of user-configured header tagging so
|
|
70
|
+
# downstream systems can distinguish them from regular application traffic.
|
|
71
|
+
#
|
|
72
|
+
# @api private
|
|
73
|
+
private_class_method def self.tag_datadog_request_attribution_headers(span, headers)
|
|
74
|
+
DATADOG_REQUEST_ATTRIBUTION_HEADERS.each do |header|
|
|
75
|
+
header_value = headers.get(header)
|
|
76
|
+
next unless header_value
|
|
77
|
+
|
|
78
|
+
header_tag = Tracing::Metadata::Ext::HTTP::RequestHeaders.to_tag(header)
|
|
79
|
+
span.set_tag(header_tag, header_value)
|
|
80
|
+
end
|
|
81
|
+
end
|
|
59
82
|
end
|
|
60
83
|
end
|
|
61
84
|
end
|
|
@@ -135,6 +135,7 @@ module Datadog
|
|
|
135
135
|
# Otherwise, the getter method would delegate to its root span
|
|
136
136
|
trace.resource = request_span.resource unless trace.resource_override?
|
|
137
137
|
|
|
138
|
+
request_span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
138
139
|
request_span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
139
140
|
request_span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_REQUEST)
|
|
140
141
|
request_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_SERVER)
|
|
@@ -32,12 +32,14 @@ module Datadog
|
|
|
32
32
|
|
|
33
33
|
request_span = Tracing.trace(Ext::SPAN_HTTP_PROXY_REQUEST, **options)
|
|
34
34
|
|
|
35
|
+
request_span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT_HTTP_PROXY)
|
|
35
36
|
request_span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT_HTTP_PROXY)
|
|
36
37
|
request_span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_HTTP_PROXY_REQUEST)
|
|
37
38
|
request_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_PROXY)
|
|
38
39
|
|
|
39
40
|
queue_span = Tracing.trace(Ext::SPAN_HTTP_PROXY_QUEUE, **options)
|
|
40
41
|
|
|
42
|
+
queue_span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT_HTTP_PROXY)
|
|
41
43
|
queue_span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT_HTTP_PROXY)
|
|
42
44
|
queue_span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_HTTP_PROXY_QUEUE)
|
|
43
45
|
queue_span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_PROXY)
|
|
@@ -53,6 +53,7 @@ module Datadog
|
|
|
53
53
|
name,
|
|
54
54
|
service: Datadog.configuration.tracing[:rails][:service_name],
|
|
55
55
|
tags: {
|
|
56
|
+
Tracing::Metadata::Ext::TAG_SVC_SRC => Ext::TAG_COMPONENT,
|
|
56
57
|
Tracing::Metadata::Ext::TAG_COMPONENT => Ext::TAG_COMPONENT,
|
|
57
58
|
Tracing::Metadata::Ext::TAG_OPERATION => operation,
|
|
58
59
|
}
|
|
@@ -94,6 +95,7 @@ module Datadog
|
|
|
94
95
|
service: Datadog.configuration.tracing[:rails][:service_name],
|
|
95
96
|
resource: resource,
|
|
96
97
|
tags: {
|
|
98
|
+
Tracing::Metadata::Ext::TAG_SVC_SRC => Ext::TAG_COMPONENT,
|
|
97
99
|
Tracing::Metadata::Ext::TAG_COMPONENT => Ext::TAG_COMPONENT,
|
|
98
100
|
Tracing::Metadata::Ext::TAG_OPERATION => operation,
|
|
99
101
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
require_relative '../../metadata/ext'
|
|
4
4
|
require_relative '../analytics'
|
|
5
5
|
require_relative 'ext'
|
|
6
|
-
require_relative '../utils/quantization/
|
|
6
|
+
require_relative '../utils/quantization/hash_formatter'
|
|
7
7
|
|
|
8
8
|
module Datadog
|
|
9
9
|
module Tracing
|
|
@@ -53,6 +53,7 @@ module Datadog
|
|
|
53
53
|
|
|
54
54
|
def annotate_invoke!(span, args)
|
|
55
55
|
span.resource = name
|
|
56
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
56
57
|
# Set analytics sample rate
|
|
57
58
|
if Contrib::Analytics.enabled?(configuration[:analytics_enabled])
|
|
58
59
|
Contrib::Analytics.set_sample_rate(span, configuration[:analytics_sample_rate])
|
|
@@ -71,6 +72,7 @@ module Datadog
|
|
|
71
72
|
|
|
72
73
|
def annotate_execute!(span, args)
|
|
73
74
|
span.resource = name
|
|
75
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
74
76
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
75
77
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_EXECUTE)
|
|
76
78
|
span.set_tag(Ext::TAG_EXECUTE_ARGS, quantize_args(args.to_hash)) unless args.nil?
|
|
@@ -80,7 +82,7 @@ module Datadog
|
|
|
80
82
|
|
|
81
83
|
def quantize_args(args)
|
|
82
84
|
quantize_options = configuration[:quantize][:args]
|
|
83
|
-
Contrib::Utils::Quantization::
|
|
85
|
+
Contrib::Utils::Quantization::HashFormatter.format(args, quantize_options)
|
|
84
86
|
end
|
|
85
87
|
|
|
86
88
|
def enabled?
|
|
@@ -21,11 +21,6 @@ module Datadog
|
|
|
21
21
|
)
|
|
22
22
|
end
|
|
23
23
|
|
|
24
|
-
# Tag original global service name if not used
|
|
25
|
-
if span.service != Datadog.configuration.service
|
|
26
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
27
|
-
end
|
|
28
|
-
|
|
29
24
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|
|
30
25
|
span.set_tag(Tracing::Metadata::Ext::TAG_OPERATION, Ext::TAG_OPERATION_COMMAND)
|
|
31
26
|
|
|
@@ -26,6 +26,7 @@ module Datadog
|
|
|
26
26
|
class << self
|
|
27
27
|
def call(client, command, service_name, command_args)
|
|
28
28
|
Tracing.trace(Redis::Ext::SPAN_COMMAND, type: Redis::Ext::TYPE, service: service_name) do |span|
|
|
29
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Redis::Ext::TAG_COMPONENT)
|
|
29
30
|
raw_command = get_command(command, true)
|
|
30
31
|
span.resource = command_args ? raw_command : get_command(command, false)
|
|
31
32
|
|
|
@@ -37,6 +38,7 @@ module Datadog
|
|
|
37
38
|
|
|
38
39
|
def call_pipelined(client, commands, service_name, command_args)
|
|
39
40
|
Tracing.trace(Redis::Ext::SPAN_COMMAND, type: Redis::Ext::TYPE, service: service_name) do |span|
|
|
41
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Redis::Ext::TAG_COMPONENT)
|
|
40
42
|
raw_command = get_pipeline_commands(commands, true)
|
|
41
43
|
span.resource = command_args ? raw_command : get_pipeline_commands(commands, false)
|
|
42
44
|
|
|
@@ -35,6 +35,7 @@ module Datadog
|
|
|
35
35
|
return yield unless datadog_configuration && Tracing.enabled?
|
|
36
36
|
|
|
37
37
|
Tracing.trace(Ext::SPAN_JOB, **span_options) do |span|
|
|
38
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
38
39
|
span.resource = args.first.is_a?(Hash) && args.first['job_class'] || name
|
|
39
40
|
span.type = Tracing::Metadata::Ext::AppTypes::TYPE_WORKER
|
|
40
41
|
|
|
@@ -37,6 +37,7 @@ module Datadog
|
|
|
37
37
|
end
|
|
38
38
|
|
|
39
39
|
def datadog_tag_request(uri, span)
|
|
40
|
+
span.set_tag(Tracing::Metadata::Ext::TAG_SVC_SRC, Ext::TAG_COMPONENT)
|
|
40
41
|
span.resource = method.to_s.upcase
|
|
41
42
|
|
|
42
43
|
if datadog_configuration[:peer_service]
|
|
@@ -46,11 +47,6 @@ module Datadog
|
|
|
46
47
|
)
|
|
47
48
|
end
|
|
48
49
|
|
|
49
|
-
# Tag original global service name if not used
|
|
50
|
-
if span.service != Datadog.configuration.service
|
|
51
|
-
span.set_tag(Tracing::Contrib::Ext::Metadata::TAG_BASE_SERVICE, Datadog.configuration.service)
|
|
52
|
-
end
|
|
53
|
-
|
|
54
50
|
span.set_tag(Tracing::Metadata::Ext::TAG_KIND, Tracing::Metadata::Ext::SpanKind::TAG_CLIENT)
|
|
55
51
|
|
|
56
52
|
span.set_tag(Tracing::Metadata::Ext::TAG_COMPONENT, Ext::TAG_COMPONENT)
|