datadog 2.0.0.beta1 → 2.0.0.beta2
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 +125 -1
- data/ext/datadog_profiling_native_extension/collectors_cpu_and_wall_time_worker.c +32 -12
- data/ext/datadog_profiling_native_extension/collectors_thread_context.c +5 -2
- data/ext/datadog_profiling_native_extension/heap_recorder.c +45 -3
- data/ext/datadog_profiling_native_extension/heap_recorder.h +7 -1
- data/ext/datadog_profiling_native_extension/http_transport.c +5 -5
- data/ext/datadog_profiling_native_extension/native_extension_helpers.rb +1 -1
- data/ext/datadog_profiling_native_extension/stack_recorder.c +7 -9
- data/lib/datadog/appsec/contrib/rack/request_middleware.rb +43 -13
- data/lib/datadog/appsec/event.rb +2 -2
- data/lib/datadog/core/configuration/components.rb +2 -1
- data/lib/datadog/core/configuration/option.rb +7 -5
- data/lib/datadog/core/configuration/settings.rb +38 -14
- data/lib/datadog/core/configuration.rb +20 -4
- data/lib/datadog/core/environment/platform.rb +7 -1
- data/lib/datadog/core/remote/client/capabilities.rb +2 -1
- data/lib/datadog/core/remote/transport/http/config.rb +5 -5
- data/lib/datadog/core/telemetry/client.rb +18 -10
- data/lib/datadog/core/telemetry/emitter.rb +9 -13
- data/lib/datadog/core/telemetry/event.rb +247 -57
- data/lib/datadog/core/telemetry/ext.rb +1 -0
- data/lib/datadog/core/telemetry/heartbeat.rb +1 -3
- data/lib/datadog/core/telemetry/http/ext.rb +4 -1
- data/lib/datadog/core/telemetry/http/transport.rb +9 -4
- data/lib/datadog/core/telemetry/request.rb +59 -0
- data/lib/datadog/core/utils/base64.rb +22 -0
- data/lib/datadog/opentelemetry/sdk/span_processor.rb +1 -1
- data/lib/datadog/opentelemetry/sdk/trace/span.rb +3 -17
- data/lib/datadog/profiling/collectors/code_provenance.rb +10 -4
- data/lib/datadog/profiling/collectors/cpu_and_wall_time_worker.rb +25 -0
- data/lib/datadog/profiling/component.rb +23 -15
- data/lib/datadog/profiling/load_native_extension.rb +14 -1
- data/lib/datadog/profiling.rb +11 -0
- data/lib/datadog/tracing/contrib/action_pack/integration.rb +1 -1
- data/lib/datadog/tracing/contrib/action_view/integration.rb +1 -1
- data/lib/datadog/tracing/contrib/active_record/integration.rb +1 -1
- data/lib/datadog/tracing/contrib/active_support/integration.rb +1 -1
- data/lib/datadog/tracing/contrib/grape/endpoint.rb +43 -5
- data/lib/datadog/tracing/correlation.rb +3 -4
- data/lib/datadog/tracing/sampling/matcher.rb +23 -3
- data/lib/datadog/tracing/sampling/rule.rb +18 -2
- data/lib/datadog/tracing/sampling/rule_sampler.rb +2 -0
- data/lib/datadog/tracing/span.rb +7 -2
- data/lib/datadog/tracing/span_link.rb +86 -0
- data/lib/datadog/tracing/trace_operation.rb +12 -0
- data/lib/datadog/tracing/tracer.rb +4 -3
- data/lib/datadog/tracing/transport/serializable_trace.rb +3 -1
- data/lib/datadog/tracing/utils.rb +16 -0
- data/lib/datadog/version.rb +1 -1
- metadata +7 -30
- data/lib/datadog/core/telemetry/collector.rb +0 -248
- data/lib/datadog/core/telemetry/v1/app_event.rb +0 -59
- data/lib/datadog/core/telemetry/v1/application.rb +0 -94
- data/lib/datadog/core/telemetry/v1/configuration.rb +0 -27
- data/lib/datadog/core/telemetry/v1/dependency.rb +0 -45
- data/lib/datadog/core/telemetry/v1/host.rb +0 -59
- data/lib/datadog/core/telemetry/v1/install_signature.rb +0 -38
- data/lib/datadog/core/telemetry/v1/integration.rb +0 -66
- data/lib/datadog/core/telemetry/v1/product.rb +0 -36
- data/lib/datadog/core/telemetry/v1/telemetry_request.rb +0 -108
- data/lib/datadog/core/telemetry/v2/app_client_configuration_change.rb +0 -41
- data/lib/datadog/core/telemetry/v2/request.rb +0 -29
data/lib/datadog/profiling.rb
CHANGED
@@ -65,6 +65,17 @@ module Datadog
|
|
65
65
|
!!(profiler.send(:scheduler).running? if profiler)
|
66
66
|
end
|
67
67
|
|
68
|
+
def self.wait_until_running(timeout_seconds: 5)
|
69
|
+
profiler = Datadog.send(:components).profiler
|
70
|
+
if profiler
|
71
|
+
# Use .send(...) to avoid exposing the attr_reader as an API to the outside
|
72
|
+
worker = profiler.send(:worker)
|
73
|
+
worker.wait_until_running(timeout_seconds: timeout_seconds)
|
74
|
+
else
|
75
|
+
raise 'Profiler not enabled or available'
|
76
|
+
end
|
77
|
+
end
|
78
|
+
|
68
79
|
private_class_method def self.replace_noop_allocation_count
|
69
80
|
def self.allocation_count # rubocop:disable Lint/NestedMethodDefinition (On purpose!)
|
70
81
|
Datadog::Profiling::Collectors::CpuAndWallTimeWorker._native_allocation_count
|
@@ -5,7 +5,7 @@ require_relative 'configuration/settings'
|
|
5
5
|
require_relative 'events'
|
6
6
|
require_relative 'patcher'
|
7
7
|
require_relative '../integration'
|
8
|
-
require_relative '../rails/
|
8
|
+
require_relative '../rails/ext'
|
9
9
|
require_relative '../rails/utils'
|
10
10
|
|
11
11
|
module Datadog
|
@@ -4,7 +4,7 @@ require_relative '../integration'
|
|
4
4
|
require_relative 'configuration/settings'
|
5
5
|
require_relative 'patcher'
|
6
6
|
require_relative 'cache/redis'
|
7
|
-
require_relative '../rails/
|
7
|
+
require_relative '../rails/ext'
|
8
8
|
require_relative '../rails/utils'
|
9
9
|
|
10
10
|
module Datadog
|
@@ -92,8 +92,7 @@ module Datadog
|
|
92
92
|
# Measure service stats
|
93
93
|
Contrib::Analytics.set_measured(span)
|
94
94
|
|
95
|
-
|
96
|
-
handle_error(span, payload[:exception_object]) if payload[:exception_object]
|
95
|
+
handle_error_and_status_code(span, endpoint, payload)
|
97
96
|
|
98
97
|
# override the current span with this notification values
|
99
98
|
span.set_tag(Ext::TAG_ROUTE_ENDPOINT, api_view) unless api_view.nil?
|
@@ -110,6 +109,30 @@ module Datadog
|
|
110
109
|
Datadog.logger.error(e.message)
|
111
110
|
end
|
112
111
|
|
112
|
+
# Status code resolution is tied to the exception handling
|
113
|
+
def handle_error_and_status_code(span, endpoint, payload)
|
114
|
+
status = nil
|
115
|
+
|
116
|
+
# Handle exceptions and status code
|
117
|
+
if (exception_object = payload[:exception_object])
|
118
|
+
# If the exception is not an internal Grape error, we won't have a status code at this point.
|
119
|
+
status = exception_object.status if exception_object.respond_to?(:status)
|
120
|
+
|
121
|
+
handle_error(span, exception_object, status)
|
122
|
+
else
|
123
|
+
# Status code is unreliable in `endpoint_run.grape` if there was an exception.
|
124
|
+
# Only after `Grape::Middleware::Error#run_rescue_handler` that the error status code of a request with a
|
125
|
+
# Ruby exception error is resolved. But that handler is called further down the Grape middleware stack.
|
126
|
+
# Rack span will then be the most reliable source for status codes.
|
127
|
+
# DEV: As a corollary, instrumenting Grape without Rack will provide incomplete
|
128
|
+
# DEV: status quote information.
|
129
|
+
status = endpoint.status
|
130
|
+
span.set_error(endpoint) if error_status_codes.include?(status)
|
131
|
+
end
|
132
|
+
|
133
|
+
span.set_tag(Tracing::Metadata::Ext::HTTP::TAG_STATUS_CODE, status) if status
|
134
|
+
end
|
135
|
+
|
113
136
|
def endpoint_start_render(*)
|
114
137
|
return if Thread.current[KEY_RENDER]
|
115
138
|
return unless enabled?
|
@@ -193,9 +216,10 @@ module Datadog
|
|
193
216
|
|
194
217
|
private
|
195
218
|
|
196
|
-
def handle_error(span, exception)
|
197
|
-
if exception.respond_to?(
|
198
|
-
|
219
|
+
def handle_error(span, exception, status = nil)
|
220
|
+
status ||= (exception.status if exception.respond_to?(:status))
|
221
|
+
if status
|
222
|
+
span.set_error(exception) if error_status_codes.include?(status)
|
199
223
|
else
|
200
224
|
on_error.call(span, exception)
|
201
225
|
end
|
@@ -240,6 +264,20 @@ module Datadog
|
|
240
264
|
datadog_configuration[:analytics_sample_rate]
|
241
265
|
end
|
242
266
|
|
267
|
+
def exception_is_error?(exception)
|
268
|
+
return false unless exception
|
269
|
+
return true unless exception.respond_to?(:status)
|
270
|
+
|
271
|
+
error_status?(status.exception)
|
272
|
+
end
|
273
|
+
|
274
|
+
def error_status?(status)
|
275
|
+
matcher = datadog_configuration[:error_statuses]
|
276
|
+
return true unless matcher
|
277
|
+
|
278
|
+
matcher.include?(status) if matcher
|
279
|
+
end
|
280
|
+
|
243
281
|
def enabled?
|
244
282
|
Datadog.configuration.tracing.enabled && \
|
245
283
|
datadog_configuration[:enabled] == true
|
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require_relative 'utils'
|
4
|
-
require_relative 'metadata/ext'
|
5
4
|
require_relative '../core/logging/ext'
|
6
5
|
|
7
6
|
module Datadog
|
@@ -36,11 +35,11 @@ module Datadog
|
|
36
35
|
version: nil
|
37
36
|
)
|
38
37
|
# Dup and freeze strings so they aren't modified by reference.
|
39
|
-
@env =
|
40
|
-
@service =
|
38
|
+
@env = env || Datadog.configuration.env
|
39
|
+
@service = service || Datadog.configuration.service
|
41
40
|
@span_id = (span_id || 0).to_s
|
42
41
|
@trace_id = trace_id || 0
|
43
|
-
@version =
|
42
|
+
@version = version || Datadog.configuration.version
|
44
43
|
end
|
45
44
|
|
46
45
|
def to_h
|
@@ -27,20 +27,40 @@ module Datadog
|
|
27
27
|
end
|
28
28
|
end.new
|
29
29
|
|
30
|
-
attr_reader :name, :service
|
30
|
+
attr_reader :name, :service, :resource, :tags
|
31
31
|
|
32
32
|
# @param name [String,Regexp,Proc] Matcher for case equality (===) with the trace name,
|
33
33
|
# defaults to always match
|
34
34
|
# @param service [String,Regexp,Proc] Matcher for case equality (===) with the service name,
|
35
35
|
# defaults to always match
|
36
|
-
|
36
|
+
# @param resource [String,Regexp,Proc] Matcher for case equality (===) with the resource name,
|
37
|
+
# defaults to always match
|
38
|
+
def initialize(name: MATCH_ALL, service: MATCH_ALL, resource: MATCH_ALL, tags: {})
|
37
39
|
super()
|
38
40
|
@name = name
|
39
41
|
@service = service
|
42
|
+
@resource = resource
|
43
|
+
@tags = tags
|
40
44
|
end
|
41
45
|
|
42
46
|
def match?(trace)
|
43
|
-
name === trace.name && service === trace.service
|
47
|
+
name === trace.name && service === trace.service && resource === trace.resource && tags_match?(trace)
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
# Match against the trace tags and metrics.
|
53
|
+
def tags_match?(trace)
|
54
|
+
@tags.all? do |name, matcher|
|
55
|
+
tag = trace.get_tag(name)
|
56
|
+
|
57
|
+
# Format metrics as strings, to allow for partial number matching (/4.*/ matching '400', '404', etc.).
|
58
|
+
# Because metrics are floats, we use the '%g' format specifier to avoid trailing zeros, which
|
59
|
+
# can affect exact string matching (e.g. '400' matching '400.0').
|
60
|
+
tag = format('%g', tag) if tag.is_a?(Numeric)
|
61
|
+
|
62
|
+
matcher === tag
|
63
|
+
end
|
44
64
|
end
|
45
65
|
end
|
46
66
|
|
@@ -51,9 +51,25 @@ module Datadog
|
|
51
51
|
# @param name [String,Regexp,Proc] Matcher for case equality (===) with the trace name, defaults to always match
|
52
52
|
# @param service [String,Regexp,Proc] Matcher for case equality (===) with the service name,
|
53
53
|
# defaults to always match
|
54
|
+
# @param resource [String,Regexp,Proc] Matcher for case equality (===) with the resource name,
|
55
|
+
# defaults to always match
|
54
56
|
# @param sample_rate [Float] Sampling rate between +[0,1]+
|
55
|
-
def initialize(
|
56
|
-
|
57
|
+
def initialize(
|
58
|
+
name: SimpleMatcher::MATCH_ALL, service: SimpleMatcher::MATCH_ALL,
|
59
|
+
resource: SimpleMatcher::MATCH_ALL, tags: {}, sample_rate: 1.0
|
60
|
+
)
|
61
|
+
# We want to allow 0.0 to drop all traces, but {Datadog::Tracing::Sampling::RateSampler}
|
62
|
+
# considers 0.0 an invalid rate and falls back to 100% sampling.
|
63
|
+
#
|
64
|
+
# We address that here by not setting the rate in the constructor,
|
65
|
+
# but using the setter method.
|
66
|
+
#
|
67
|
+
# We don't want to make this change directly to {Datadog::Tracing::Sampling::RateSampler}
|
68
|
+
# because it breaks its current contract to existing users.
|
69
|
+
sampler = RateSampler.new
|
70
|
+
sampler.sample_rate = sample_rate
|
71
|
+
|
72
|
+
super(SimpleMatcher.new(name: name, service: service, resource: resource, tags: tags), sampler)
|
57
73
|
end
|
58
74
|
end
|
59
75
|
end
|
data/lib/datadog/tracing/span.rb
CHANGED
@@ -26,6 +26,7 @@ module Datadog
|
|
26
26
|
:parent_id,
|
27
27
|
:resource,
|
28
28
|
:service,
|
29
|
+
:links,
|
29
30
|
:type,
|
30
31
|
:start_time,
|
31
32
|
:status,
|
@@ -58,7 +59,8 @@ module Datadog
|
|
58
59
|
status: 0,
|
59
60
|
type: nil,
|
60
61
|
trace_id: nil,
|
61
|
-
service_entry: nil
|
62
|
+
service_entry: nil,
|
63
|
+
links: nil
|
62
64
|
)
|
63
65
|
@name = Core::Utils::SafeDup.frozen_or_dup(name)
|
64
66
|
@service = Core::Utils::SafeDup.frozen_or_dup(service)
|
@@ -86,6 +88,8 @@ module Datadog
|
|
86
88
|
|
87
89
|
@service_entry = service_entry
|
88
90
|
|
91
|
+
@links = links || []
|
92
|
+
|
89
93
|
# Mark with the service entry span metric, if applicable
|
90
94
|
set_metric(Metadata::Ext::TAG_TOP_LEVEL, 1.0) if service_entry
|
91
95
|
end
|
@@ -136,7 +140,8 @@ module Datadog
|
|
136
140
|
service: @service,
|
137
141
|
span_id: @id,
|
138
142
|
trace_id: @trace_id,
|
139
|
-
type: @type
|
143
|
+
type: @type,
|
144
|
+
span_links: @links.map(&:to_hash)
|
140
145
|
}
|
141
146
|
|
142
147
|
if stopped?
|
@@ -0,0 +1,86 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Datadog
|
4
|
+
module Tracing
|
5
|
+
# SpanLink represents a causal link between two spans.
|
6
|
+
# @public_api
|
7
|
+
class SpanLink
|
8
|
+
# @!attribute [r] span_id
|
9
|
+
# Datadog id for the currently active span.
|
10
|
+
# @return [Integer]
|
11
|
+
attr_reader :span_id
|
12
|
+
|
13
|
+
# @!attribute [r] trace_id
|
14
|
+
# Datadog id for the currently active trace.
|
15
|
+
# @return [Integer]
|
16
|
+
attr_reader :trace_id
|
17
|
+
|
18
|
+
# @!attribute [r] attributes
|
19
|
+
# Datadog-specific tags that support richer distributed tracing association.
|
20
|
+
# @return [Hash<String,String>]
|
21
|
+
attr_reader :attributes
|
22
|
+
|
23
|
+
# @!attribute [r] trace_flags
|
24
|
+
# The W3C "trace-flags" extracted from a distributed context. This field is an 8-bit unsigned integer.
|
25
|
+
# @return [Integer]
|
26
|
+
# @see https://www.w3.org/TR/trace-context/#trace-flags
|
27
|
+
attr_reader :trace_flags
|
28
|
+
|
29
|
+
# @!attribute [r] trace_state
|
30
|
+
# The W3C "tracestate" extracted from a distributed context.
|
31
|
+
# This field is a string representing vendor-specific distribution data.
|
32
|
+
# The `dd=` entry is removed from `trace_state` as its value is dynamically calculated
|
33
|
+
# on every propagation injection.
|
34
|
+
# @return [String]
|
35
|
+
# @see https://www.w3.org/TR/trace-context/#tracestate-header
|
36
|
+
attr_reader :trace_state
|
37
|
+
|
38
|
+
# @!attribute [r] dropped_attributes
|
39
|
+
# The number of attributes that were discarded due to serialization limits.
|
40
|
+
# @return [Integer]
|
41
|
+
attr_reader :dropped_attributes
|
42
|
+
|
43
|
+
def initialize(
|
44
|
+
attributes: nil,
|
45
|
+
digest: nil
|
46
|
+
)
|
47
|
+
@span_id = digest&.span_id
|
48
|
+
@trace_id = digest&.trace_id
|
49
|
+
@trace_flags = digest&.trace_flags
|
50
|
+
@trace_state = digest&.trace_state && digest&.trace_state.dup
|
51
|
+
@dropped_attributes = 0
|
52
|
+
@attributes = (attributes && attributes.dup) || {}
|
53
|
+
end
|
54
|
+
|
55
|
+
def to_hash
|
56
|
+
h = {
|
57
|
+
span_id: @span_id || 0,
|
58
|
+
trace_id: Tracing::Utils::TraceId.to_low_order(@trace_id) || 0,
|
59
|
+
}
|
60
|
+
# Optimization: Hash non empty attributes
|
61
|
+
if @trace_id.to_i > Tracing::Utils::EXTERNAL_MAX_ID
|
62
|
+
h[:trace_id_high] =
|
63
|
+
Tracing::Utils::TraceId.to_high_order(@trace_id)
|
64
|
+
end
|
65
|
+
unless @attributes&.empty?
|
66
|
+
h[:attributes] = {}
|
67
|
+
@attributes.each do |k1, v1|
|
68
|
+
Tracing::Utils.serialize_attribute(k1, v1).each do |new_k1, value|
|
69
|
+
h[:attributes][new_k1] = value.to_s
|
70
|
+
end
|
71
|
+
end
|
72
|
+
end
|
73
|
+
h[:dropped_attributes_count] = @dropped_attributes if @dropped_attributes > 0
|
74
|
+
h[:tracestate] = @trace_state if @trace_state
|
75
|
+
# If traceflags set, the high bit (bit 31) should be set to 1 (uint32).
|
76
|
+
# This helps us distinguish between when the sample decision is zero or not set
|
77
|
+
h[:flags] = if @trace_flags.nil?
|
78
|
+
0
|
79
|
+
else
|
80
|
+
@trace_flags | (1 << 31)
|
81
|
+
end
|
82
|
+
h
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
@@ -8,6 +8,7 @@ require_relative 'metadata/tagging'
|
|
8
8
|
require_relative 'sampling/ext'
|
9
9
|
require_relative 'span_operation'
|
10
10
|
require_relative 'trace_digest'
|
11
|
+
require_relative 'correlation'
|
11
12
|
require_relative 'trace_segment'
|
12
13
|
require_relative 'utils'
|
13
14
|
|
@@ -306,6 +307,17 @@ module Datadog
|
|
306
307
|
).freeze
|
307
308
|
end
|
308
309
|
|
310
|
+
def to_correlation
|
311
|
+
# Resolve current span ID
|
312
|
+
span_id = @active_span && @active_span.id
|
313
|
+
span_id ||= @parent_span_id unless finished?
|
314
|
+
|
315
|
+
Correlation::Identifier.new(
|
316
|
+
trace_id: @id,
|
317
|
+
span_id: span_id
|
318
|
+
)
|
319
|
+
end
|
320
|
+
|
309
321
|
# Returns a copy of this trace suitable for forks (w/o spans.)
|
310
322
|
# Used for continuation of traces across forks.
|
311
323
|
def fork_clone
|
@@ -224,9 +224,10 @@ module Datadog
|
|
224
224
|
# @return [Datadog::Tracing::Correlation::Identifier] correlation object
|
225
225
|
def active_correlation(key = nil)
|
226
226
|
trace = active_trace(key)
|
227
|
-
|
228
|
-
|
229
|
-
|
227
|
+
|
228
|
+
return Datadog::Tracing::Correlation::Identifier.new unless trace
|
229
|
+
|
230
|
+
trace.to_correlation
|
230
231
|
end
|
231
232
|
|
232
233
|
# Setup a new trace to continue from where another
|
@@ -58,7 +58,7 @@ module Datadog
|
|
58
58
|
def to_msgpack(packer = nil)
|
59
59
|
packer ||= MessagePack::Packer.new
|
60
60
|
|
61
|
-
number_of_elements_to_write =
|
61
|
+
number_of_elements_to_write = 11
|
62
62
|
|
63
63
|
if span.stopped?
|
64
64
|
packer.write_map_header(number_of_elements_to_write + 2) # Set header with how many elements in the map
|
@@ -93,6 +93,8 @@ module Datadog
|
|
93
93
|
packer.write(span.meta)
|
94
94
|
packer.write('metrics')
|
95
95
|
packer.write(span.metrics)
|
96
|
+
packer.write('span_links')
|
97
|
+
packer.write(span.links.map(&:to_hash))
|
96
98
|
packer.write('error')
|
97
99
|
packer.write(span.status)
|
98
100
|
packer
|
@@ -45,6 +45,22 @@ module Datadog
|
|
45
45
|
@id_rng = Random.new
|
46
46
|
end
|
47
47
|
|
48
|
+
# Serialize values into Datadog span tags and metrics.
|
49
|
+
# Notably, arrays are exploded into many keys, each with
|
50
|
+
# a numeric suffix representing the array index, for example:
|
51
|
+
# `'foo' => ['a','b']` becomes `'foo.0' => 'a', 'foo.1' => 'b'`
|
52
|
+
def self.serialize_attribute(key, value)
|
53
|
+
if value.is_a?(Array)
|
54
|
+
value.flat_map.with_index do |v, idx|
|
55
|
+
serialize_attribute("#{key}.#{idx}", v)
|
56
|
+
end
|
57
|
+
elsif value.is_a?(TrueClass) || value.is_a?(FalseClass)
|
58
|
+
[[key, value.to_s]]
|
59
|
+
else
|
60
|
+
[[key, value]]
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
48
64
|
private_class_method :id_rng, :reset!
|
49
65
|
|
50
66
|
# The module handles bitwise operation for trace id
|
data/lib/datadog/version.rb
CHANGED
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.0.0.
|
4
|
+
version: 2.0.0.beta2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Datadog, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: msgpack
|
@@ -24,20 +24,6 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
|
-
- !ruby/object:Gem::Dependency
|
28
|
-
name: base64
|
29
|
-
requirement: !ruby/object:Gem::Requirement
|
30
|
-
requirements:
|
31
|
-
- - ">="
|
32
|
-
- !ruby/object:Gem::Version
|
33
|
-
version: '0'
|
34
|
-
type: :runtime
|
35
|
-
prerelease: false
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
27
|
- !ruby/object:Gem::Dependency
|
42
28
|
name: debase-ruby_core_source
|
43
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -72,14 +58,14 @@ dependencies:
|
|
72
58
|
requirements:
|
73
59
|
- - "~>"
|
74
60
|
- !ruby/object:Gem::Version
|
75
|
-
version:
|
61
|
+
version: 7.0.0.1.0
|
76
62
|
type: :runtime
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
66
|
- - "~>"
|
81
67
|
- !ruby/object:Gem::Version
|
82
|
-
version:
|
68
|
+
version: 7.0.0.1.0
|
83
69
|
description: |
|
84
70
|
datadog is Datadog's client library for Ruby. It includes a suite of tools
|
85
71
|
which provide visibility into the performance and security of Ruby applications,
|
@@ -295,7 +281,6 @@ files:
|
|
295
281
|
- lib/datadog/core/runtime/ext.rb
|
296
282
|
- lib/datadog/core/runtime/metrics.rb
|
297
283
|
- lib/datadog/core/telemetry/client.rb
|
298
|
-
- lib/datadog/core/telemetry/collector.rb
|
299
284
|
- lib/datadog/core/telemetry/emitter.rb
|
300
285
|
- lib/datadog/core/telemetry/event.rb
|
301
286
|
- lib/datadog/core/telemetry/ext.rb
|
@@ -305,17 +290,7 @@ files:
|
|
305
290
|
- lib/datadog/core/telemetry/http/ext.rb
|
306
291
|
- lib/datadog/core/telemetry/http/response.rb
|
307
292
|
- lib/datadog/core/telemetry/http/transport.rb
|
308
|
-
- lib/datadog/core/telemetry/
|
309
|
-
- lib/datadog/core/telemetry/v1/application.rb
|
310
|
-
- lib/datadog/core/telemetry/v1/configuration.rb
|
311
|
-
- lib/datadog/core/telemetry/v1/dependency.rb
|
312
|
-
- lib/datadog/core/telemetry/v1/host.rb
|
313
|
-
- lib/datadog/core/telemetry/v1/install_signature.rb
|
314
|
-
- lib/datadog/core/telemetry/v1/integration.rb
|
315
|
-
- lib/datadog/core/telemetry/v1/product.rb
|
316
|
-
- lib/datadog/core/telemetry/v1/telemetry_request.rb
|
317
|
-
- lib/datadog/core/telemetry/v2/app_client_configuration_change.rb
|
318
|
-
- lib/datadog/core/telemetry/v2/request.rb
|
293
|
+
- lib/datadog/core/telemetry/request.rb
|
319
294
|
- lib/datadog/core/transport/ext.rb
|
320
295
|
- lib/datadog/core/transport/http/adapters/net.rb
|
321
296
|
- lib/datadog/core/transport/http/adapters/registry.rb
|
@@ -330,6 +305,7 @@ files:
|
|
330
305
|
- lib/datadog/core/transport/request.rb
|
331
306
|
- lib/datadog/core/transport/response.rb
|
332
307
|
- lib/datadog/core/utils.rb
|
308
|
+
- lib/datadog/core/utils/base64.rb
|
333
309
|
- lib/datadog/core/utils/duration.rb
|
334
310
|
- lib/datadog/core/utils/forking.rb
|
335
311
|
- lib/datadog/core/utils/hash.rb
|
@@ -828,6 +804,7 @@ files:
|
|
828
804
|
- lib/datadog/tracing/sampling/span/rule_parser.rb
|
829
805
|
- lib/datadog/tracing/sampling/span/sampler.rb
|
830
806
|
- lib/datadog/tracing/span.rb
|
807
|
+
- lib/datadog/tracing/span_link.rb
|
831
808
|
- lib/datadog/tracing/span_operation.rb
|
832
809
|
- lib/datadog/tracing/sync_writer.rb
|
833
810
|
- lib/datadog/tracing/trace_digest.rb
|