datadog 2.22.0 → 2.24.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 +100 -1
- data/ext/LIBDATADOG_DEVELOPMENT.md +1 -58
- data/ext/datadog_profiling_native_extension/collectors_stack.c +21 -5
- data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +239 -0
- data/ext/datadog_profiling_native_extension/datadog_ruby_common.h +1 -1
- data/ext/datadog_profiling_native_extension/extconf.rb +9 -4
- data/ext/datadog_profiling_native_extension/heap_recorder.c +1 -1
- data/ext/datadog_profiling_native_extension/private_vm_api_access.c +12 -0
- data/ext/datadog_profiling_native_extension/private_vm_api_access.h +4 -0
- data/ext/datadog_profiling_native_extension/profiling.c +2 -0
- data/ext/libdatadog_api/datadog_ruby_common.h +1 -1
- data/ext/libdatadog_api/feature_flags.c +554 -0
- data/ext/libdatadog_api/feature_flags.h +5 -0
- data/ext/libdatadog_api/init.c +2 -0
- data/ext/libdatadog_api/library_config.c +12 -11
- data/ext/libdatadog_extconf_helpers.rb +1 -1
- data/lib/datadog/appsec/api_security/route_extractor.rb +23 -6
- data/lib/datadog/appsec/api_security/sampler.rb +7 -4
- data/lib/datadog/appsec/assets/blocked.html +8 -0
- data/lib/datadog/appsec/assets/blocked.json +1 -1
- data/lib/datadog/appsec/assets/blocked.text +3 -1
- data/lib/datadog/appsec/assets.rb +1 -1
- data/lib/datadog/appsec/context.rb +2 -1
- data/lib/datadog/appsec/remote.rb +5 -9
- data/lib/datadog/appsec/response.rb +18 -4
- data/lib/datadog/appsec/security_engine/result.rb +2 -1
- data/lib/datadog/core/configuration/components.rb +30 -3
- data/lib/datadog/core/configuration/config_helper.rb +2 -2
- data/lib/datadog/core/configuration/deprecations.rb +2 -2
- data/lib/datadog/core/configuration/option_definition.rb +4 -2
- data/lib/datadog/core/configuration/options.rb +8 -5
- data/lib/datadog/core/configuration/settings.rb +28 -3
- data/lib/datadog/core/configuration/supported_configurations.rb +332 -302
- data/lib/datadog/core/ddsketch.rb +0 -2
- data/lib/datadog/core/environment/cgroup.rb +52 -25
- data/lib/datadog/core/environment/container.rb +140 -46
- data/lib/datadog/core/environment/ext.rb +7 -0
- data/lib/datadog/core/environment/process.rb +87 -0
- data/lib/datadog/core/feature_flags.rb +61 -0
- data/lib/datadog/core/rate_limiter.rb +9 -1
- data/lib/datadog/core/remote/client/capabilities.rb +7 -0
- data/lib/datadog/core/remote/client.rb +14 -6
- data/lib/datadog/core/remote/component.rb +6 -4
- data/lib/datadog/core/remote/configuration/content.rb +15 -2
- data/lib/datadog/core/remote/configuration/digest.rb +14 -7
- data/lib/datadog/core/remote/configuration/repository.rb +1 -1
- data/lib/datadog/core/remote/configuration/target.rb +13 -6
- data/lib/datadog/core/remote/transport/config.rb +4 -25
- data/lib/datadog/core/remote/transport/http/config.rb +10 -50
- data/lib/datadog/core/remote/transport/http/negotiation.rb +14 -44
- data/lib/datadog/core/remote/transport/http.rb +15 -24
- data/lib/datadog/core/remote/transport/negotiation.rb +8 -33
- data/lib/datadog/core/remote/worker.rb +25 -37
- data/lib/datadog/core/tag_builder.rb +0 -4
- data/lib/datadog/core/tag_normalizer.rb +84 -0
- data/lib/datadog/core/telemetry/component.rb +59 -16
- data/lib/datadog/core/telemetry/event/app_started.rb +86 -49
- data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +27 -4
- data/lib/datadog/core/telemetry/logger.rb +2 -2
- data/lib/datadog/core/telemetry/logging.rb +2 -8
- data/lib/datadog/core/telemetry/metrics_manager.rb +9 -0
- data/lib/datadog/core/telemetry/request.rb +17 -3
- data/lib/datadog/core/telemetry/transport/http/telemetry.rb +3 -34
- data/lib/datadog/core/telemetry/transport/http.rb +21 -16
- data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -11
- data/lib/datadog/core/telemetry/worker.rb +88 -32
- data/lib/datadog/core/transport/ext.rb +2 -0
- data/lib/datadog/core/transport/http/api/endpoint.rb +9 -4
- data/lib/datadog/core/transport/http/api/instance.rb +4 -21
- data/lib/datadog/core/transport/http/builder.rb +9 -5
- data/lib/datadog/core/transport/http/client.rb +80 -0
- data/lib/datadog/core/transport/http.rb +22 -19
- data/lib/datadog/core/transport/response.rb +9 -0
- data/lib/datadog/core/transport/transport.rb +90 -0
- data/lib/datadog/core/utils/array.rb +29 -0
- data/lib/datadog/{appsec/api_security → core/utils}/lru_cache.rb +10 -21
- data/lib/datadog/core/utils/network.rb +3 -1
- data/lib/datadog/core/utils/only_once_successful.rb +8 -2
- data/lib/datadog/core/utils/time.rb +1 -1
- data/lib/datadog/core/utils.rb +2 -0
- data/lib/datadog/core/workers/async.rb +10 -1
- data/lib/datadog/core/workers/interval_loop.rb +44 -3
- data/lib/datadog/core/workers/polling.rb +2 -0
- data/lib/datadog/core/workers/queue.rb +100 -1
- data/lib/datadog/data_streams/configuration/settings.rb +49 -0
- data/lib/datadog/data_streams/configuration.rb +11 -0
- data/lib/datadog/data_streams/ext.rb +11 -0
- data/lib/datadog/data_streams/extensions.rb +16 -0
- data/lib/datadog/data_streams/pathway_context.rb +169 -0
- data/lib/datadog/data_streams/processor.rb +509 -0
- data/lib/datadog/data_streams/transport/http/stats.rb +52 -0
- data/lib/datadog/data_streams/transport/http.rb +40 -0
- data/lib/datadog/data_streams/transport/stats.rb +46 -0
- data/lib/datadog/data_streams.rb +100 -0
- data/lib/datadog/di/component.rb +0 -16
- data/lib/datadog/di/contrib/active_record.rb +31 -5
- data/lib/datadog/di/el/compiler.rb +8 -4
- data/lib/datadog/di/el/evaluator.rb +1 -1
- data/lib/datadog/di/error.rb +9 -0
- data/lib/datadog/di/instrumenter.rb +93 -34
- data/lib/datadog/di/probe.rb +20 -0
- data/lib/datadog/di/probe_builder.rb +2 -1
- data/lib/datadog/di/probe_manager.rb +47 -33
- data/lib/datadog/di/probe_notification_builder.rb +77 -25
- data/lib/datadog/di/proc_responder.rb +32 -0
- data/lib/datadog/di/remote.rb +89 -84
- data/lib/datadog/di/transport/diagnostics.rb +8 -36
- data/lib/datadog/di/transport/http/diagnostics.rb +1 -33
- data/lib/datadog/di/transport/http/input.rb +1 -33
- data/lib/datadog/di/transport/http.rb +32 -17
- data/lib/datadog/di/transport/input.rb +67 -34
- data/lib/datadog/di.rb +61 -5
- data/lib/datadog/open_feature/component.rb +60 -0
- data/lib/datadog/open_feature/configuration.rb +27 -0
- data/lib/datadog/open_feature/evaluation_engine.rb +70 -0
- data/lib/datadog/open_feature/exposures/batch_builder.rb +32 -0
- data/lib/datadog/open_feature/exposures/buffer.rb +43 -0
- data/lib/datadog/open_feature/exposures/deduplicator.rb +30 -0
- data/lib/datadog/open_feature/exposures/event.rb +60 -0
- data/lib/datadog/open_feature/exposures/reporter.rb +40 -0
- data/lib/datadog/open_feature/exposures/worker.rb +116 -0
- data/lib/datadog/open_feature/ext.rb +14 -0
- data/lib/datadog/open_feature/native_evaluator.rb +38 -0
- data/lib/datadog/open_feature/noop_evaluator.rb +26 -0
- data/lib/datadog/open_feature/provider.rb +141 -0
- data/lib/datadog/open_feature/remote.rb +67 -0
- data/lib/datadog/open_feature/resolution_details.rb +35 -0
- data/lib/datadog/open_feature/transport.rb +70 -0
- data/lib/datadog/open_feature.rb +19 -0
- data/lib/datadog/opentelemetry/api/baggage.rb +1 -1
- data/lib/datadog/opentelemetry/configuration/settings.rb +159 -0
- data/lib/datadog/opentelemetry/metrics.rb +117 -0
- data/lib/datadog/opentelemetry/sdk/configurator.rb +25 -1
- data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +35 -0
- data/lib/datadog/opentelemetry.rb +3 -0
- data/lib/datadog/profiling/collectors/code_provenance.rb +41 -7
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +1 -1
- data/lib/datadog/profiling/collectors/idle_sampling_helper.rb +1 -1
- data/lib/datadog/profiling/collectors/info.rb +2 -1
- data/lib/datadog/profiling/component.rb +12 -11
- data/lib/datadog/profiling/http_transport.rb +4 -1
- data/lib/datadog/profiling/profiler.rb +4 -0
- data/lib/datadog/profiling/tag_builder.rb +36 -3
- data/lib/datadog/profiling.rb +1 -2
- data/lib/datadog/single_step_instrument.rb +1 -1
- data/lib/datadog/tracing/configuration/ext.rb +9 -0
- data/lib/datadog/tracing/configuration/settings.rb +74 -0
- data/lib/datadog/tracing/contrib/action_pack/action_controller/instrumentation.rb +4 -4
- data/lib/datadog/tracing/contrib/action_pack/utils.rb +1 -2
- data/lib/datadog/tracing/contrib/active_job/log_injection.rb +21 -7
- data/lib/datadog/tracing/contrib/active_job/patcher.rb +5 -1
- data/lib/datadog/tracing/contrib/aws/instrumentation.rb +4 -2
- data/lib/datadog/tracing/contrib/ethon/easy_patch.rb +4 -1
- data/lib/datadog/tracing/contrib/excon/configuration/settings.rb +11 -3
- data/lib/datadog/tracing/contrib/extensions.rb +10 -2
- data/lib/datadog/tracing/contrib/faraday/configuration/settings.rb +11 -7
- data/lib/datadog/tracing/contrib/grape/configuration/settings.rb +7 -3
- data/lib/datadog/tracing/contrib/graphql/unified_trace.rb +22 -17
- data/lib/datadog/tracing/contrib/http/configuration/settings.rb +11 -3
- data/lib/datadog/tracing/contrib/httpclient/configuration/settings.rb +11 -3
- data/lib/datadog/tracing/contrib/httprb/configuration/settings.rb +11 -3
- data/lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb +66 -0
- data/lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb +66 -0
- data/lib/datadog/tracing/contrib/kafka/patcher.rb +14 -0
- data/lib/datadog/tracing/contrib/karafka/framework.rb +30 -0
- data/lib/datadog/tracing/contrib/karafka/monitor.rb +11 -0
- data/lib/datadog/tracing/contrib/karafka/patcher.rb +35 -4
- data/lib/datadog/tracing/contrib/rack/middlewares.rb +59 -27
- data/lib/datadog/tracing/contrib/rack/route_inference.rb +53 -0
- data/lib/datadog/tracing/contrib/rails/middlewares.rb +2 -2
- data/lib/datadog/tracing/contrib/rest_client/request_patch.rb +4 -1
- data/lib/datadog/tracing/contrib/roda/instrumentation.rb +3 -1
- data/lib/datadog/tracing/contrib/sinatra/tracer_middleware.rb +3 -1
- data/lib/datadog/tracing/contrib/status_range_matcher.rb +9 -1
- data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +3 -1
- data/lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb +27 -0
- data/lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb +48 -0
- data/lib/datadog/tracing/contrib/waterdrop/ext.rb +17 -0
- data/lib/datadog/tracing/contrib/waterdrop/integration.rb +43 -0
- data/lib/datadog/tracing/contrib/waterdrop/middleware.rb +46 -0
- data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +49 -0
- data/lib/datadog/tracing/contrib/waterdrop/producer.rb +50 -0
- data/lib/datadog/tracing/contrib/waterdrop.rb +37 -0
- data/lib/datadog/tracing/contrib.rb +1 -0
- data/lib/datadog/tracing/diagnostics/environment_logger.rb +1 -1
- data/lib/datadog/tracing/metadata/ext.rb +1 -1
- data/lib/datadog/tracing/remote.rb +1 -9
- data/lib/datadog/tracing/span_event.rb +2 -2
- data/lib/datadog/tracing/span_operation.rb +9 -4
- data/lib/datadog/tracing/trace_operation.rb +44 -6
- data/lib/datadog/tracing/tracer.rb +42 -16
- data/lib/datadog/tracing/transport/http/client.rb +12 -26
- data/lib/datadog/tracing/transport/http/traces.rb +2 -50
- data/lib/datadog/tracing/transport/http.rb +15 -9
- data/lib/datadog/tracing/transport/io/client.rb +1 -1
- data/lib/datadog/tracing/transport/trace_formatter.rb +11 -0
- data/lib/datadog/tracing/transport/traces.rb +9 -71
- data/lib/datadog/tracing/workers/trace_writer.rb +5 -0
- data/lib/datadog/tracing/writer.rb +1 -0
- data/lib/datadog/version.rb +2 -2
- data/lib/datadog.rb +2 -0
- metadata +78 -21
- data/lib/datadog/core/remote/transport/http/api.rb +0 -53
- data/lib/datadog/core/remote/transport/http/client.rb +0 -49
- data/lib/datadog/core/telemetry/transport/http/api.rb +0 -43
- data/lib/datadog/core/telemetry/transport/http/client.rb +0 -49
- data/lib/datadog/core/transport/http/api/spec.rb +0 -36
- data/lib/datadog/di/transport/http/api.rb +0 -42
- data/lib/datadog/di/transport/http/client.rb +0 -47
- data/lib/datadog/opentelemetry/api/baggage.rbs +0 -26
- data/lib/datadog/tracing/transport/http/api.rb +0 -44
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
require_relative '../../core/chunker'
|
|
4
4
|
require_relative '../../core/transport/parcel'
|
|
5
5
|
require_relative '../../core/transport/request'
|
|
6
|
+
require_relative '../../core/transport/transport'
|
|
7
|
+
require_relative '../../core/utils/array'
|
|
8
|
+
require_relative 'http/client'
|
|
6
9
|
require_relative 'serializable_trace'
|
|
7
10
|
require_relative 'trace_formatter'
|
|
8
11
|
|
|
@@ -65,11 +68,8 @@ module Datadog
|
|
|
65
68
|
# @return [Enumerable[Array[Bytes,Integer]]] list of encoded chunks: each containing a byte array and
|
|
66
69
|
# number of traces
|
|
67
70
|
def encode_in_chunks(traces)
|
|
68
|
-
encoded_traces =
|
|
69
|
-
|
|
70
|
-
traces.filter_map { |t| encode_one(t) }
|
|
71
|
-
else
|
|
72
|
-
traces.map { |t| encode_one(t) }.reject(&:nil?)
|
|
71
|
+
encoded_traces = Core::Utils::Array.filter_map(traces) do |trace|
|
|
72
|
+
encode_one(trace)
|
|
73
73
|
end
|
|
74
74
|
|
|
75
75
|
Datadog::Core::Chunker.chunk_by_size(encoded_traces, max_size).map do |chunk|
|
|
@@ -123,16 +123,8 @@ module Datadog
|
|
|
123
123
|
# This class initializes the HTTP client, breaks down large
|
|
124
124
|
# batches of traces into smaller chunks and handles
|
|
125
125
|
# API version downgrade handshake.
|
|
126
|
-
class Transport
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
def initialize(apis, default_api, logger: Datadog.logger)
|
|
130
|
-
@apis = apis
|
|
131
|
-
@default_api = default_api
|
|
132
|
-
@logger = logger
|
|
133
|
-
|
|
134
|
-
change_api!(default_api)
|
|
135
|
-
end
|
|
126
|
+
class Transport < Core::Transport::Transport
|
|
127
|
+
self.http_client_class = Tracing::Transport::HTTP::Client
|
|
136
128
|
|
|
137
129
|
def send_traces(traces)
|
|
138
130
|
encoder = current_api.encoder
|
|
@@ -145,7 +137,7 @@ module Datadog
|
|
|
145
137
|
responses = chunker.encode_in_chunks(traces.lazy).map do |encoded_traces, trace_count|
|
|
146
138
|
request = Request.new(EncodedParcel.new(encoded_traces, trace_count))
|
|
147
139
|
|
|
148
|
-
client.
|
|
140
|
+
client.send_request(:traces, request).tap do |response|
|
|
149
141
|
if downgrade?(response)
|
|
150
142
|
downgrade!
|
|
151
143
|
return send_traces(traces)
|
|
@@ -173,35 +165,11 @@ module Datadog
|
|
|
173
165
|
end
|
|
174
166
|
|
|
175
167
|
def stats
|
|
176
|
-
|
|
177
|
-
end
|
|
178
|
-
|
|
179
|
-
def current_api
|
|
180
|
-
apis[@current_api_id]
|
|
168
|
+
client.stats
|
|
181
169
|
end
|
|
182
170
|
|
|
183
171
|
private
|
|
184
172
|
|
|
185
|
-
def downgrade?(response)
|
|
186
|
-
return false unless apis.fallbacks.key?(@current_api_id)
|
|
187
|
-
|
|
188
|
-
response.not_found? || response.unsupported?
|
|
189
|
-
end
|
|
190
|
-
|
|
191
|
-
def downgrade!
|
|
192
|
-
downgrade_api_id = apis.fallbacks[@current_api_id]
|
|
193
|
-
raise NoDowngradeAvailableError, @current_api_id if downgrade_api_id.nil?
|
|
194
|
-
|
|
195
|
-
change_api!(downgrade_api_id)
|
|
196
|
-
end
|
|
197
|
-
|
|
198
|
-
def change_api!(api_id)
|
|
199
|
-
raise UnknownApiVersionError, api_id unless apis.key?(api_id)
|
|
200
|
-
|
|
201
|
-
@current_api_id = api_id
|
|
202
|
-
@client = HTTP::Client.new(current_api, logger: logger)
|
|
203
|
-
end
|
|
204
|
-
|
|
205
173
|
# Queries the agent for native span events serialization support.
|
|
206
174
|
# This changes how the serialization of span events performed.
|
|
207
175
|
def native_events_supported?
|
|
@@ -221,36 +189,6 @@ module Datadog
|
|
|
221
189
|
false
|
|
222
190
|
end
|
|
223
191
|
end
|
|
224
|
-
|
|
225
|
-
# Raised when configured with an unknown API version
|
|
226
|
-
class UnknownApiVersionError < StandardError
|
|
227
|
-
attr_reader :version
|
|
228
|
-
|
|
229
|
-
def initialize(version)
|
|
230
|
-
super
|
|
231
|
-
|
|
232
|
-
@version = version
|
|
233
|
-
end
|
|
234
|
-
|
|
235
|
-
def message
|
|
236
|
-
"No matching transport API for version #{version}!"
|
|
237
|
-
end
|
|
238
|
-
end
|
|
239
|
-
|
|
240
|
-
# Raised when configured with an unknown API version
|
|
241
|
-
class NoDowngradeAvailableError < StandardError
|
|
242
|
-
attr_reader :version
|
|
243
|
-
|
|
244
|
-
def initialize(version)
|
|
245
|
-
super
|
|
246
|
-
|
|
247
|
-
@version = version
|
|
248
|
-
end
|
|
249
|
-
|
|
250
|
-
def message
|
|
251
|
-
"No downgrade from transport API version #{version} is available!"
|
|
252
|
-
end
|
|
253
|
-
end
|
|
254
192
|
end
|
|
255
193
|
end
|
|
256
194
|
end
|
|
@@ -21,6 +21,8 @@ module Datadog
|
|
|
21
21
|
:transport,
|
|
22
22
|
:agent_settings
|
|
23
23
|
|
|
24
|
+
# DEV-3.0: change to keyword arguments
|
|
25
|
+
#
|
|
24
26
|
# rubocop:disable Lint/MissingSuper
|
|
25
27
|
def initialize(options = {})
|
|
26
28
|
@logger = options[:logger] || Datadog.logger
|
|
@@ -143,6 +145,9 @@ module Datadog
|
|
|
143
145
|
|
|
144
146
|
# Are there more traces to be processed next?
|
|
145
147
|
def work_pending?
|
|
148
|
+
# This is the same implementation as in Queue, but it was
|
|
149
|
+
# overwritten by IntervalLoop on its way to this worker class.
|
|
150
|
+
# See the comments in those two methods for more info.
|
|
146
151
|
!buffer.empty?
|
|
147
152
|
end
|
|
148
153
|
|
data/lib/datadog/version.rb
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
module Datadog
|
|
4
4
|
module VERSION
|
|
5
5
|
MAJOR = 2
|
|
6
|
-
MINOR =
|
|
6
|
+
MINOR = 24
|
|
7
7
|
PATCH = 0
|
|
8
8
|
PRE = nil
|
|
9
9
|
BUILD = nil
|
|
@@ -21,6 +21,6 @@ module Datadog
|
|
|
21
21
|
# To allow testing with the next unreleased version of Ruby, the version check is performed
|
|
22
22
|
# as `< #{MAXIMUM_RUBY_VERSION}`, meaning prereleases of MAXIMUM_RUBY_VERSION are allowed
|
|
23
23
|
# but not stable MAXIMUM_RUBY_VERSION releases.
|
|
24
|
-
MAXIMUM_RUBY_VERSION = '
|
|
24
|
+
MAXIMUM_RUBY_VERSION = '4.1'
|
|
25
25
|
end
|
|
26
26
|
end
|
data/lib/datadog.rb
CHANGED
|
@@ -8,6 +8,8 @@ require_relative 'datadog/tracing/contrib'
|
|
|
8
8
|
require_relative 'datadog/profiling'
|
|
9
9
|
require_relative 'datadog/appsec'
|
|
10
10
|
require_relative 'datadog/di'
|
|
11
|
+
require_relative 'datadog/data_streams'
|
|
12
|
+
require_relative 'datadog/open_feature'
|
|
11
13
|
|
|
12
14
|
# Line probes will not work on Ruby < 2.6 because of lack of :script_compiled
|
|
13
15
|
# trace point. Activate DI automatically on supported Ruby versions but
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: datadog
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 2.
|
|
4
|
+
version: 2.24.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Datadog, Inc.
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-01-08 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: msgpack
|
|
@@ -33,7 +33,7 @@ dependencies:
|
|
|
33
33
|
version: '3.4'
|
|
34
34
|
- - ">="
|
|
35
35
|
- !ruby/object:Gem::Version
|
|
36
|
-
version: 3.4.
|
|
36
|
+
version: 3.4.2
|
|
37
37
|
type: :runtime
|
|
38
38
|
prerelease: false
|
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -43,35 +43,35 @@ dependencies:
|
|
|
43
43
|
version: '3.4'
|
|
44
44
|
- - ">="
|
|
45
45
|
- !ruby/object:Gem::Version
|
|
46
|
-
version: 3.4.
|
|
46
|
+
version: 3.4.2
|
|
47
47
|
- !ruby/object:Gem::Dependency
|
|
48
48
|
name: libddwaf
|
|
49
49
|
requirement: !ruby/object:Gem::Requirement
|
|
50
50
|
requirements:
|
|
51
51
|
- - "~>"
|
|
52
52
|
- !ruby/object:Gem::Version
|
|
53
|
-
version: 1.
|
|
53
|
+
version: 1.30.0.0.0
|
|
54
54
|
type: :runtime
|
|
55
55
|
prerelease: false
|
|
56
56
|
version_requirements: !ruby/object:Gem::Requirement
|
|
57
57
|
requirements:
|
|
58
58
|
- - "~>"
|
|
59
59
|
- !ruby/object:Gem::Version
|
|
60
|
-
version: 1.
|
|
60
|
+
version: 1.30.0.0.0
|
|
61
61
|
- !ruby/object:Gem::Dependency
|
|
62
62
|
name: libdatadog
|
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
|
64
64
|
requirements:
|
|
65
65
|
- - "~>"
|
|
66
66
|
- !ruby/object:Gem::Version
|
|
67
|
-
version:
|
|
67
|
+
version: 24.0.1.1.0
|
|
68
68
|
type: :runtime
|
|
69
69
|
prerelease: false
|
|
70
70
|
version_requirements: !ruby/object:Gem::Requirement
|
|
71
71
|
requirements:
|
|
72
72
|
- - "~>"
|
|
73
73
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
74
|
+
version: 24.0.1.1.0
|
|
75
75
|
- !ruby/object:Gem::Dependency
|
|
76
76
|
name: logger
|
|
77
77
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -86,6 +86,20 @@ dependencies:
|
|
|
86
86
|
- - ">="
|
|
87
87
|
- !ruby/object:Gem::Version
|
|
88
88
|
version: '0'
|
|
89
|
+
- !ruby/object:Gem::Dependency
|
|
90
|
+
name: cgi
|
|
91
|
+
requirement: !ruby/object:Gem::Requirement
|
|
92
|
+
requirements:
|
|
93
|
+
- - ">="
|
|
94
|
+
- !ruby/object:Gem::Version
|
|
95
|
+
version: '0'
|
|
96
|
+
type: :runtime
|
|
97
|
+
prerelease: false
|
|
98
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
99
|
+
requirements:
|
|
100
|
+
- - ">="
|
|
101
|
+
- !ruby/object:Gem::Version
|
|
102
|
+
version: '0'
|
|
89
103
|
description: |
|
|
90
104
|
datadog is Datadog's client library for Ruby. It includes a suite of tools
|
|
91
105
|
which provide visibility into the performance and security of Ruby applications,
|
|
@@ -125,6 +139,7 @@ files:
|
|
|
125
139
|
- ext/datadog_profiling_native_extension/collectors_stack.h
|
|
126
140
|
- ext/datadog_profiling_native_extension/collectors_thread_context.c
|
|
127
141
|
- ext/datadog_profiling_native_extension/collectors_thread_context.h
|
|
142
|
+
- ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c
|
|
128
143
|
- ext/datadog_profiling_native_extension/datadog_ruby_common.c
|
|
129
144
|
- ext/datadog_profiling_native_extension/datadog_ruby_common.h
|
|
130
145
|
- ext/datadog_profiling_native_extension/encoded_profile.c
|
|
@@ -158,6 +173,8 @@ files:
|
|
|
158
173
|
- ext/libdatadog_api/datadog_ruby_common.h
|
|
159
174
|
- ext/libdatadog_api/ddsketch.c
|
|
160
175
|
- ext/libdatadog_api/extconf.rb
|
|
176
|
+
- ext/libdatadog_api/feature_flags.c
|
|
177
|
+
- ext/libdatadog_api/feature_flags.h
|
|
161
178
|
- ext/libdatadog_api/init.c
|
|
162
179
|
- ext/libdatadog_api/library_config.c
|
|
163
180
|
- ext/libdatadog_api/library_config.h
|
|
@@ -175,7 +192,6 @@ files:
|
|
|
175
192
|
- lib/datadog/appsec/api_security/endpoint_collection/rails_collector.rb
|
|
176
193
|
- lib/datadog/appsec/api_security/endpoint_collection/rails_route_serializer.rb
|
|
177
194
|
- lib/datadog/appsec/api_security/endpoint_collection/sinatra_route_serializer.rb
|
|
178
|
-
- lib/datadog/appsec/api_security/lru_cache.rb
|
|
179
195
|
- lib/datadog/appsec/api_security/route_extractor.rb
|
|
180
196
|
- lib/datadog/appsec/api_security/sampler.rb
|
|
181
197
|
- lib/datadog/appsec/assets.rb
|
|
@@ -319,6 +335,7 @@ files:
|
|
|
319
335
|
- lib/datadog/core/environment/git.rb
|
|
320
336
|
- lib/datadog/core/environment/identity.rb
|
|
321
337
|
- lib/datadog/core/environment/platform.rb
|
|
338
|
+
- lib/datadog/core/environment/process.rb
|
|
322
339
|
- lib/datadog/core/environment/socket.rb
|
|
323
340
|
- lib/datadog/core/environment/thread_count.rb
|
|
324
341
|
- lib/datadog/core/environment/variable_helpers.rb
|
|
@@ -326,6 +343,7 @@ files:
|
|
|
326
343
|
- lib/datadog/core/environment/yjit.rb
|
|
327
344
|
- lib/datadog/core/error.rb
|
|
328
345
|
- lib/datadog/core/extensions.rb
|
|
346
|
+
- lib/datadog/core/feature_flags.rb
|
|
329
347
|
- lib/datadog/core/git/ext.rb
|
|
330
348
|
- lib/datadog/core/header_collection.rb
|
|
331
349
|
- lib/datadog/core/logger.rb
|
|
@@ -357,8 +375,6 @@ files:
|
|
|
357
375
|
- lib/datadog/core/remote/tie/tracing.rb
|
|
358
376
|
- lib/datadog/core/remote/transport/config.rb
|
|
359
377
|
- lib/datadog/core/remote/transport/http.rb
|
|
360
|
-
- lib/datadog/core/remote/transport/http/api.rb
|
|
361
|
-
- lib/datadog/core/remote/transport/http/client.rb
|
|
362
378
|
- lib/datadog/core/remote/transport/http/config.rb
|
|
363
379
|
- lib/datadog/core/remote/transport/http/negotiation.rb
|
|
364
380
|
- lib/datadog/core/remote/transport/negotiation.rb
|
|
@@ -367,6 +383,7 @@ files:
|
|
|
367
383
|
- lib/datadog/core/runtime/metrics.rb
|
|
368
384
|
- lib/datadog/core/semaphore.rb
|
|
369
385
|
- lib/datadog/core/tag_builder.rb
|
|
386
|
+
- lib/datadog/core/tag_normalizer.rb
|
|
370
387
|
- lib/datadog/core/telemetry/component.rb
|
|
371
388
|
- lib/datadog/core/telemetry/emitter.rb
|
|
372
389
|
- lib/datadog/core/telemetry/event.rb
|
|
@@ -392,8 +409,6 @@ files:
|
|
|
392
409
|
- lib/datadog/core/telemetry/metrics_manager.rb
|
|
393
410
|
- lib/datadog/core/telemetry/request.rb
|
|
394
411
|
- lib/datadog/core/telemetry/transport/http.rb
|
|
395
|
-
- lib/datadog/core/telemetry/transport/http/api.rb
|
|
396
|
-
- lib/datadog/core/telemetry/transport/http/client.rb
|
|
397
412
|
- lib/datadog/core/telemetry/transport/http/telemetry.rb
|
|
398
413
|
- lib/datadog/core/telemetry/transport/telemetry.rb
|
|
399
414
|
- lib/datadog/core/telemetry/worker.rb
|
|
@@ -407,19 +422,22 @@ files:
|
|
|
407
422
|
- lib/datadog/core/transport/http/api/fallbacks.rb
|
|
408
423
|
- lib/datadog/core/transport/http/api/instance.rb
|
|
409
424
|
- lib/datadog/core/transport/http/api/map.rb
|
|
410
|
-
- lib/datadog/core/transport/http/api/spec.rb
|
|
411
425
|
- lib/datadog/core/transport/http/builder.rb
|
|
426
|
+
- lib/datadog/core/transport/http/client.rb
|
|
412
427
|
- lib/datadog/core/transport/http/env.rb
|
|
413
428
|
- lib/datadog/core/transport/http/response.rb
|
|
414
429
|
- lib/datadog/core/transport/parcel.rb
|
|
415
430
|
- lib/datadog/core/transport/request.rb
|
|
416
431
|
- lib/datadog/core/transport/response.rb
|
|
432
|
+
- lib/datadog/core/transport/transport.rb
|
|
417
433
|
- lib/datadog/core/utils.rb
|
|
434
|
+
- lib/datadog/core/utils/array.rb
|
|
418
435
|
- lib/datadog/core/utils/at_fork_monkey_patch.rb
|
|
419
436
|
- lib/datadog/core/utils/base64.rb
|
|
420
437
|
- lib/datadog/core/utils/duration.rb
|
|
421
438
|
- lib/datadog/core/utils/forking.rb
|
|
422
439
|
- lib/datadog/core/utils/hash.rb
|
|
440
|
+
- lib/datadog/core/utils/lru_cache.rb
|
|
423
441
|
- lib/datadog/core/utils/network.rb
|
|
424
442
|
- lib/datadog/core/utils/only_once.rb
|
|
425
443
|
- lib/datadog/core/utils/only_once_successful.rb
|
|
@@ -442,6 +460,16 @@ files:
|
|
|
442
460
|
- lib/datadog/core/workers/polling.rb
|
|
443
461
|
- lib/datadog/core/workers/queue.rb
|
|
444
462
|
- lib/datadog/core/workers/runtime_metrics.rb
|
|
463
|
+
- lib/datadog/data_streams.rb
|
|
464
|
+
- lib/datadog/data_streams/configuration.rb
|
|
465
|
+
- lib/datadog/data_streams/configuration/settings.rb
|
|
466
|
+
- lib/datadog/data_streams/ext.rb
|
|
467
|
+
- lib/datadog/data_streams/extensions.rb
|
|
468
|
+
- lib/datadog/data_streams/pathway_context.rb
|
|
469
|
+
- lib/datadog/data_streams/processor.rb
|
|
470
|
+
- lib/datadog/data_streams/transport/http.rb
|
|
471
|
+
- lib/datadog/data_streams/transport/http/stats.rb
|
|
472
|
+
- lib/datadog/data_streams/transport/stats.rb
|
|
445
473
|
- lib/datadog/di.rb
|
|
446
474
|
- lib/datadog/di/base.rb
|
|
447
475
|
- lib/datadog/di/boot.rb
|
|
@@ -469,13 +497,12 @@ files:
|
|
|
469
497
|
- lib/datadog/di/probe_manager.rb
|
|
470
498
|
- lib/datadog/di/probe_notification_builder.rb
|
|
471
499
|
- lib/datadog/di/probe_notifier_worker.rb
|
|
500
|
+
- lib/datadog/di/proc_responder.rb
|
|
472
501
|
- lib/datadog/di/redactor.rb
|
|
473
502
|
- lib/datadog/di/remote.rb
|
|
474
503
|
- lib/datadog/di/serializer.rb
|
|
475
504
|
- lib/datadog/di/transport/diagnostics.rb
|
|
476
505
|
- lib/datadog/di/transport/http.rb
|
|
477
|
-
- lib/datadog/di/transport/http/api.rb
|
|
478
|
-
- lib/datadog/di/transport/http/client.rb
|
|
479
506
|
- lib/datadog/di/transport/http/diagnostics.rb
|
|
480
507
|
- lib/datadog/di/transport/http/input.rb
|
|
481
508
|
- lib/datadog/di/transport/input.rb
|
|
@@ -493,13 +520,32 @@ files:
|
|
|
493
520
|
- lib/datadog/kit/appsec/events/v2.rb
|
|
494
521
|
- lib/datadog/kit/enable_core_dumps.rb
|
|
495
522
|
- lib/datadog/kit/identity.rb
|
|
523
|
+
- lib/datadog/open_feature.rb
|
|
524
|
+
- lib/datadog/open_feature/component.rb
|
|
525
|
+
- lib/datadog/open_feature/configuration.rb
|
|
526
|
+
- lib/datadog/open_feature/evaluation_engine.rb
|
|
527
|
+
- lib/datadog/open_feature/exposures/batch_builder.rb
|
|
528
|
+
- lib/datadog/open_feature/exposures/buffer.rb
|
|
529
|
+
- lib/datadog/open_feature/exposures/deduplicator.rb
|
|
530
|
+
- lib/datadog/open_feature/exposures/event.rb
|
|
531
|
+
- lib/datadog/open_feature/exposures/reporter.rb
|
|
532
|
+
- lib/datadog/open_feature/exposures/worker.rb
|
|
533
|
+
- lib/datadog/open_feature/ext.rb
|
|
534
|
+
- lib/datadog/open_feature/native_evaluator.rb
|
|
535
|
+
- lib/datadog/open_feature/noop_evaluator.rb
|
|
536
|
+
- lib/datadog/open_feature/provider.rb
|
|
537
|
+
- lib/datadog/open_feature/remote.rb
|
|
538
|
+
- lib/datadog/open_feature/resolution_details.rb
|
|
539
|
+
- lib/datadog/open_feature/transport.rb
|
|
496
540
|
- lib/datadog/opentelemetry.rb
|
|
497
541
|
- lib/datadog/opentelemetry/api/baggage.rb
|
|
498
|
-
- lib/datadog/opentelemetry/api/baggage.rbs
|
|
499
542
|
- lib/datadog/opentelemetry/api/context.rb
|
|
500
543
|
- lib/datadog/opentelemetry/api/trace/span.rb
|
|
544
|
+
- lib/datadog/opentelemetry/configuration/settings.rb
|
|
545
|
+
- lib/datadog/opentelemetry/metrics.rb
|
|
501
546
|
- lib/datadog/opentelemetry/sdk/configurator.rb
|
|
502
547
|
- lib/datadog/opentelemetry/sdk/id_generator.rb
|
|
548
|
+
- lib/datadog/opentelemetry/sdk/metrics_exporter.rb
|
|
503
549
|
- lib/datadog/opentelemetry/sdk/propagator.rb
|
|
504
550
|
- lib/datadog/opentelemetry/sdk/span_processor.rb
|
|
505
551
|
- lib/datadog/opentelemetry/sdk/trace/span.rb
|
|
@@ -763,12 +809,15 @@ files:
|
|
|
763
809
|
- lib/datadog/tracing/contrib/kafka/events/produce_operation/send_messages.rb
|
|
764
810
|
- lib/datadog/tracing/contrib/kafka/events/producer/deliver_messages.rb
|
|
765
811
|
- lib/datadog/tracing/contrib/kafka/ext.rb
|
|
812
|
+
- lib/datadog/tracing/contrib/kafka/instrumentation/consumer.rb
|
|
813
|
+
- lib/datadog/tracing/contrib/kafka/instrumentation/producer.rb
|
|
766
814
|
- lib/datadog/tracing/contrib/kafka/integration.rb
|
|
767
815
|
- lib/datadog/tracing/contrib/kafka/patcher.rb
|
|
768
816
|
- lib/datadog/tracing/contrib/karafka.rb
|
|
769
817
|
- lib/datadog/tracing/contrib/karafka/configuration/settings.rb
|
|
770
818
|
- lib/datadog/tracing/contrib/karafka/distributed/propagation.rb
|
|
771
819
|
- lib/datadog/tracing/contrib/karafka/ext.rb
|
|
820
|
+
- lib/datadog/tracing/contrib/karafka/framework.rb
|
|
772
821
|
- lib/datadog/tracing/contrib/karafka/integration.rb
|
|
773
822
|
- lib/datadog/tracing/contrib/karafka/monitor.rb
|
|
774
823
|
- lib/datadog/tracing/contrib/karafka/patcher.rb
|
|
@@ -832,6 +881,7 @@ files:
|
|
|
832
881
|
- lib/datadog/tracing/contrib/rack/middlewares.rb
|
|
833
882
|
- lib/datadog/tracing/contrib/rack/patcher.rb
|
|
834
883
|
- lib/datadog/tracing/contrib/rack/request_queue.rb
|
|
884
|
+
- lib/datadog/tracing/contrib/rack/route_inference.rb
|
|
835
885
|
- lib/datadog/tracing/contrib/rack/trace_proxy_middleware.rb
|
|
836
886
|
- lib/datadog/tracing/contrib/rails/auto_instrument_railtie.rb
|
|
837
887
|
- lib/datadog/tracing/contrib/rails/configuration/settings.rb
|
|
@@ -943,6 +993,14 @@ files:
|
|
|
943
993
|
- lib/datadog/tracing/contrib/utils/database.rb
|
|
944
994
|
- lib/datadog/tracing/contrib/utils/quantization/hash.rb
|
|
945
995
|
- lib/datadog/tracing/contrib/utils/quantization/http.rb
|
|
996
|
+
- lib/datadog/tracing/contrib/waterdrop.rb
|
|
997
|
+
- lib/datadog/tracing/contrib/waterdrop/configuration/settings.rb
|
|
998
|
+
- lib/datadog/tracing/contrib/waterdrop/distributed/propagation.rb
|
|
999
|
+
- lib/datadog/tracing/contrib/waterdrop/ext.rb
|
|
1000
|
+
- lib/datadog/tracing/contrib/waterdrop/integration.rb
|
|
1001
|
+
- lib/datadog/tracing/contrib/waterdrop/middleware.rb
|
|
1002
|
+
- lib/datadog/tracing/contrib/waterdrop/patcher.rb
|
|
1003
|
+
- lib/datadog/tracing/contrib/waterdrop/producer.rb
|
|
946
1004
|
- lib/datadog/tracing/correlation.rb
|
|
947
1005
|
- lib/datadog/tracing/diagnostics/environment_logger.rb
|
|
948
1006
|
- lib/datadog/tracing/diagnostics/ext.rb
|
|
@@ -997,7 +1055,6 @@ files:
|
|
|
997
1055
|
- lib/datadog/tracing/trace_segment.rb
|
|
998
1056
|
- lib/datadog/tracing/tracer.rb
|
|
999
1057
|
- lib/datadog/tracing/transport/http.rb
|
|
1000
|
-
- lib/datadog/tracing/transport/http/api.rb
|
|
1001
1058
|
- lib/datadog/tracing/transport/http/client.rb
|
|
1002
1059
|
- lib/datadog/tracing/transport/http/statistics.rb
|
|
1003
1060
|
- lib/datadog/tracing/transport/http/traces.rb
|
|
@@ -1020,8 +1077,8 @@ licenses:
|
|
|
1020
1077
|
- Apache-2.0
|
|
1021
1078
|
metadata:
|
|
1022
1079
|
allowed_push_host: https://rubygems.org
|
|
1023
|
-
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.
|
|
1024
|
-
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.
|
|
1080
|
+
changelog_uri: https://github.com/DataDog/dd-trace-rb/blob/v2.24.0/CHANGELOG.md
|
|
1081
|
+
source_code_uri: https://github.com/DataDog/dd-trace-rb/tree/v2.24.0
|
|
1025
1082
|
post_install_message:
|
|
1026
1083
|
rdoc_options: []
|
|
1027
1084
|
require_paths:
|
|
@@ -1033,7 +1090,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
1033
1090
|
version: 2.5.0
|
|
1034
1091
|
- - "<"
|
|
1035
1092
|
- !ruby/object:Gem::Version
|
|
1036
|
-
version: '
|
|
1093
|
+
version: '4.1'
|
|
1037
1094
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
1038
1095
|
requirements:
|
|
1039
1096
|
- - ">="
|
|
@@ -1,53 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../encoding'
|
|
4
|
-
require_relative '../../../transport/http/api/map'
|
|
5
|
-
require_relative '../../../transport/http/api/instance'
|
|
6
|
-
require_relative '../../../transport/http/api/spec'
|
|
7
|
-
require_relative 'negotiation'
|
|
8
|
-
require_relative 'config'
|
|
9
|
-
|
|
10
|
-
module Datadog
|
|
11
|
-
module Core
|
|
12
|
-
module Remote
|
|
13
|
-
module Transport
|
|
14
|
-
module HTTP
|
|
15
|
-
# Namespace for API components
|
|
16
|
-
module API
|
|
17
|
-
# Default API versions
|
|
18
|
-
ROOT = 'root'
|
|
19
|
-
V7 = 'v0.7'
|
|
20
|
-
|
|
21
|
-
module_function
|
|
22
|
-
|
|
23
|
-
def defaults
|
|
24
|
-
Core::Transport::HTTP::API::Map[
|
|
25
|
-
ROOT => Spec.new do |s|
|
|
26
|
-
s.info = Negotiation::API::Endpoint.new(
|
|
27
|
-
'/info',
|
|
28
|
-
)
|
|
29
|
-
end,
|
|
30
|
-
V7 => Spec.new do |s|
|
|
31
|
-
s.config = Config::API::Endpoint.new(
|
|
32
|
-
'/v0.7/config',
|
|
33
|
-
Core::Encoding::JSONEncoder,
|
|
34
|
-
)
|
|
35
|
-
end,
|
|
36
|
-
]
|
|
37
|
-
end
|
|
38
|
-
|
|
39
|
-
class Instance < Core::Transport::HTTP::API::Instance
|
|
40
|
-
include Config::API::Instance
|
|
41
|
-
include Negotiation::API::Instance
|
|
42
|
-
end
|
|
43
|
-
|
|
44
|
-
class Spec < Core::Transport::HTTP::API::Spec
|
|
45
|
-
include Config::API::Spec
|
|
46
|
-
include Negotiation::API::Spec
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
50
|
-
end
|
|
51
|
-
end
|
|
52
|
-
end
|
|
53
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../../core/transport/http/env'
|
|
4
|
-
require_relative '../../../../core/transport/http/response'
|
|
5
|
-
|
|
6
|
-
# TODO: Decouple transport/http/client
|
|
7
|
-
#
|
|
8
|
-
# The standard one does `include Transport::HTTP::Statistics` and performs
|
|
9
|
-
# stats updates, which may or may not be desirable in general.
|
|
10
|
-
|
|
11
|
-
module Datadog
|
|
12
|
-
module Core
|
|
13
|
-
module Remote
|
|
14
|
-
module Transport
|
|
15
|
-
module HTTP
|
|
16
|
-
# Routes, encodes, and sends tracer data to the trace agent via HTTP.
|
|
17
|
-
class Client
|
|
18
|
-
attr_reader :api, :logger
|
|
19
|
-
|
|
20
|
-
def initialize(api, logger: Datadog.logger)
|
|
21
|
-
@api = api
|
|
22
|
-
@logger = logger
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def send_request(request, &block)
|
|
26
|
-
# Build request into env
|
|
27
|
-
env = build_env(request)
|
|
28
|
-
|
|
29
|
-
# Get responses from API
|
|
30
|
-
yield(api, env)
|
|
31
|
-
rescue => e
|
|
32
|
-
message =
|
|
33
|
-
"Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
|
|
34
|
-
"Location: #{Array(e.backtrace).first}"
|
|
35
|
-
|
|
36
|
-
logger.debug(message)
|
|
37
|
-
|
|
38
|
-
Datadog::Core::Transport::InternalErrorResponse.new(e)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def build_env(request)
|
|
42
|
-
Datadog::Core::Transport::HTTP::Env.new(request)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../encoding'
|
|
4
|
-
require_relative '../../../transport/http/api/map'
|
|
5
|
-
require_relative '../../../transport/http/api/instance'
|
|
6
|
-
require_relative '../../../transport/http/api/spec'
|
|
7
|
-
require_relative 'telemetry'
|
|
8
|
-
|
|
9
|
-
module Datadog
|
|
10
|
-
module Core
|
|
11
|
-
module Telemetry
|
|
12
|
-
module Transport
|
|
13
|
-
module HTTP
|
|
14
|
-
# Namespace for API components
|
|
15
|
-
module API
|
|
16
|
-
# Default API versions
|
|
17
|
-
AGENT_TELEMETRY = 'agent_telemetry'
|
|
18
|
-
AGENTLESS_TELEMETRY = 'agentless_telemetry'
|
|
19
|
-
|
|
20
|
-
module_function
|
|
21
|
-
|
|
22
|
-
def defaults
|
|
23
|
-
Datadog::Core::Transport::HTTP::API::Map[
|
|
24
|
-
AGENT_TELEMETRY => Telemetry::API::Spec.new do |s|
|
|
25
|
-
s.telemetry = Telemetry::API::Endpoint.new(
|
|
26
|
-
'/telemetry/proxy/api/v2/apmtelemetry',
|
|
27
|
-
Core::Encoding::JSONEncoder,
|
|
28
|
-
)
|
|
29
|
-
end,
|
|
30
|
-
AGENTLESS_TELEMETRY => Telemetry::API::Spec.new do |s|
|
|
31
|
-
s.telemetry = Telemetry::API::Endpoint.new(
|
|
32
|
-
'/api/v2/apmtelemetry',
|
|
33
|
-
Core::Encoding::JSONEncoder,
|
|
34
|
-
)
|
|
35
|
-
end,
|
|
36
|
-
]
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../transport/http/env'
|
|
4
|
-
require_relative '../../../transport/http/response'
|
|
5
|
-
|
|
6
|
-
# TODO: Decouple transport/http/client
|
|
7
|
-
#
|
|
8
|
-
# The standard one does `include Transport::HTTP::Statistics` and performs
|
|
9
|
-
# stats updates, which may or may not be desirable in general.
|
|
10
|
-
|
|
11
|
-
module Datadog
|
|
12
|
-
module Core
|
|
13
|
-
module Telemetry
|
|
14
|
-
module Transport
|
|
15
|
-
module HTTP
|
|
16
|
-
# Routes, encodes, and sends DI data to the trace agent via HTTP.
|
|
17
|
-
class Client
|
|
18
|
-
attr_reader :api, :logger
|
|
19
|
-
|
|
20
|
-
def initialize(api, logger:)
|
|
21
|
-
@api = api
|
|
22
|
-
@logger = logger
|
|
23
|
-
end
|
|
24
|
-
|
|
25
|
-
def send_request(request, &block)
|
|
26
|
-
# Build request into env
|
|
27
|
-
env = build_env(request)
|
|
28
|
-
|
|
29
|
-
# Get responses from API
|
|
30
|
-
yield(api, env)
|
|
31
|
-
rescue => e
|
|
32
|
-
message =
|
|
33
|
-
"Internal error during #{self.class.name} request. Cause: #{e.class.name} #{e.message} " \
|
|
34
|
-
"Location: #{Array(e.backtrace).first}"
|
|
35
|
-
|
|
36
|
-
logger.debug(message)
|
|
37
|
-
|
|
38
|
-
Datadog::Core::Transport::InternalErrorResponse.new(e)
|
|
39
|
-
end
|
|
40
|
-
|
|
41
|
-
def build_env(request)
|
|
42
|
-
Datadog::Core::Transport::HTTP::Env.new(request)
|
|
43
|
-
end
|
|
44
|
-
end
|
|
45
|
-
end
|
|
46
|
-
end
|
|
47
|
-
end
|
|
48
|
-
end
|
|
49
|
-
end
|