datadog 2.23.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 +44 -2
- data/ext/datadog_profiling_native_extension/collectors_stack.c +17 -5
- data/ext/datadog_profiling_native_extension/crashtracking_runtime_stacks.c +239 -0
- data/ext/datadog_profiling_native_extension/extconf.rb +4 -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/lib/datadog/appsec/context.rb +2 -1
- data/lib/datadog/appsec/remote.rb +1 -9
- data/lib/datadog/appsec/security_engine/result.rb +2 -1
- data/lib/datadog/core/configuration/config_helper.rb +1 -1
- 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 +14 -3
- data/lib/datadog/core/configuration/supported_configurations.rb +2 -1
- 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 +1 -0
- data/lib/datadog/core/environment/process.rb +9 -1
- data/lib/datadog/core/rate_limiter.rb +9 -1
- 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 +3 -16
- data/lib/datadog/core/remote/transport/http/config.rb +4 -44
- data/lib/datadog/core/remote/transport/http/negotiation.rb +0 -39
- data/lib/datadog/core/remote/transport/http.rb +13 -24
- data/lib/datadog/core/remote/transport/negotiation.rb +7 -16
- data/lib/datadog/core/telemetry/component.rb +52 -13
- data/lib/datadog/core/telemetry/event/app_started.rb +34 -0
- data/lib/datadog/core/telemetry/event/synth_app_client_configuration_change.rb +27 -4
- 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 +2 -32
- data/lib/datadog/core/telemetry/transport/http.rb +21 -16
- data/lib/datadog/core/telemetry/transport/telemetry.rb +3 -10
- 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 +19 -8
- 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/only_once_successful.rb +2 -0
- data/lib/datadog/core/utils/time.rb +1 -1
- 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/processor.rb +1 -1
- data/lib/datadog/data_streams/transport/http/stats.rb +1 -36
- data/lib/datadog/data_streams/transport/http.rb +5 -6
- data/lib/datadog/data_streams/transport/stats.rb +3 -17
- data/lib/datadog/di/contrib/active_record.rb +31 -5
- data/lib/datadog/di/el/compiler.rb +8 -4
- data/lib/datadog/di/error.rb +5 -0
- data/lib/datadog/di/instrumenter.rb +17 -4
- data/lib/datadog/di/probe_builder.rb +2 -1
- data/lib/datadog/di/probe_manager.rb +37 -31
- data/lib/datadog/di/probe_notification_builder.rb +15 -2
- data/lib/datadog/di/remote.rb +89 -84
- data/lib/datadog/di/transport/diagnostics.rb +7 -35
- data/lib/datadog/di/transport/http/diagnostics.rb +1 -31
- data/lib/datadog/di/transport/http/input.rb +1 -31
- data/lib/datadog/di/transport/http.rb +28 -17
- data/lib/datadog/di/transport/input.rb +7 -34
- data/lib/datadog/di.rb +61 -5
- data/lib/datadog/open_feature/evaluation_engine.rb +2 -1
- data/lib/datadog/open_feature/remote.rb +3 -10
- data/lib/datadog/open_feature/transport.rb +9 -11
- data/lib/datadog/opentelemetry/api/baggage.rb +1 -1
- data/lib/datadog/opentelemetry/configuration/settings.rb +2 -2
- data/lib/datadog/opentelemetry/metrics.rb +21 -14
- data/lib/datadog/opentelemetry/sdk/metrics_exporter.rb +5 -8
- data/lib/datadog/profiling/collectors/code_provenance.rb +27 -2
- 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/tracing/contrib/extensions.rb +10 -2
- data/lib/datadog/tracing/contrib/karafka/patcher.rb +31 -32
- data/lib/datadog/tracing/contrib/status_range_matcher.rb +2 -1
- data/lib/datadog/tracing/contrib/utils/quantization/hash.rb +3 -1
- data/lib/datadog/tracing/contrib/waterdrop/patcher.rb +6 -3
- data/lib/datadog/tracing/diagnostics/environment_logger.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/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/traces.rb +6 -66
- 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
- metadata +7 -13
- data/lib/datadog/core/remote/transport/http/api.rb +0 -53
- data/lib/datadog/core/telemetry/transport/http/api.rb +0 -43
- data/lib/datadog/core/transport/http/api/spec.rb +0 -36
- data/lib/datadog/data_streams/transport/http/api.rb +0 -33
- data/lib/datadog/data_streams/transport/http/client.rb +0 -21
- data/lib/datadog/di/transport/http/api.rb +0 -42
- data/lib/datadog/opentelemetry/api/baggage.rbs +0 -26
- data/lib/datadog/tracing/transport/http/api.rb +0 -44
|
@@ -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,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,36 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Datadog
|
|
4
|
-
module Core
|
|
5
|
-
module Transport
|
|
6
|
-
module HTTP
|
|
7
|
-
module API
|
|
8
|
-
# Specification for an HTTP API
|
|
9
|
-
# Defines behaviors without specific configuration details.
|
|
10
|
-
class Spec
|
|
11
|
-
# Raised when an endpoint is invoked on an API that did not
|
|
12
|
-
# define that endpoint.
|
|
13
|
-
class EndpointNotDefinedError < StandardError
|
|
14
|
-
attr_reader :spec, :endpoint_name
|
|
15
|
-
|
|
16
|
-
def initialize(endpoint_name, spec)
|
|
17
|
-
@spec = spec
|
|
18
|
-
@endpoint_name = endpoint_name
|
|
19
|
-
|
|
20
|
-
super(message)
|
|
21
|
-
end
|
|
22
|
-
|
|
23
|
-
def message
|
|
24
|
-
"No #{endpoint_name} endpoint is defined for API specification!"
|
|
25
|
-
end
|
|
26
|
-
end
|
|
27
|
-
|
|
28
|
-
def initialize
|
|
29
|
-
yield(self) if block_given?
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
34
|
-
end
|
|
35
|
-
end
|
|
36
|
-
end
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../core/transport/http/api/map'
|
|
4
|
-
require_relative '../../../core/transport/http/api/instance'
|
|
5
|
-
require_relative '../../../core/transport/http/api/spec'
|
|
6
|
-
require_relative '../../../core/transport/http/api/endpoint'
|
|
7
|
-
require_relative 'stats'
|
|
8
|
-
|
|
9
|
-
module Datadog
|
|
10
|
-
module DataStreams
|
|
11
|
-
module Transport
|
|
12
|
-
module HTTP
|
|
13
|
-
# Namespace for API components
|
|
14
|
-
module API
|
|
15
|
-
# API version
|
|
16
|
-
V01 = 'v0.1'
|
|
17
|
-
|
|
18
|
-
module_function
|
|
19
|
-
|
|
20
|
-
def defaults
|
|
21
|
-
Core::Transport::HTTP::API::Map[
|
|
22
|
-
V01 => Stats::API::Spec.new do |s|
|
|
23
|
-
s.stats = Stats::API::Endpoint.new(
|
|
24
|
-
'/v0.1/pipeline_stats'
|
|
25
|
-
)
|
|
26
|
-
end
|
|
27
|
-
]
|
|
28
|
-
end
|
|
29
|
-
end
|
|
30
|
-
end
|
|
31
|
-
end
|
|
32
|
-
end
|
|
33
|
-
end
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../core/transport/http/client'
|
|
4
|
-
|
|
5
|
-
module Datadog
|
|
6
|
-
module DataStreams
|
|
7
|
-
module Transport
|
|
8
|
-
module HTTP
|
|
9
|
-
# HTTP client for Data Streams Monitoring
|
|
10
|
-
class Client < Core::Transport::HTTP::Client
|
|
11
|
-
def send_stats_payload(request)
|
|
12
|
-
send_request(request) do |api, env|
|
|
13
|
-
# TODO how to make api have the derived type for steep?
|
|
14
|
-
api.send_stats(env) # steep:ignore
|
|
15
|
-
end
|
|
16
|
-
end
|
|
17
|
-
end
|
|
18
|
-
end
|
|
19
|
-
end
|
|
20
|
-
end
|
|
21
|
-
end
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../core/encoding'
|
|
4
|
-
require_relative '../../../core/transport/http/api/map'
|
|
5
|
-
require_relative '../../../core/transport/http/api/instance'
|
|
6
|
-
require_relative '../../../core/transport/http/api/spec'
|
|
7
|
-
require_relative 'diagnostics'
|
|
8
|
-
require_relative 'input'
|
|
9
|
-
|
|
10
|
-
module Datadog
|
|
11
|
-
module DI
|
|
12
|
-
module Transport
|
|
13
|
-
module HTTP
|
|
14
|
-
# Namespace for API components
|
|
15
|
-
module API
|
|
16
|
-
# Default API versions
|
|
17
|
-
DIAGNOSTICS = 'diagnostics'
|
|
18
|
-
INPUT = 'input'
|
|
19
|
-
|
|
20
|
-
module_function
|
|
21
|
-
|
|
22
|
-
def defaults
|
|
23
|
-
Datadog::Core::Transport::HTTP::API::Map[
|
|
24
|
-
DIAGNOSTICS => Diagnostics::API::Spec.new do |s|
|
|
25
|
-
s.diagnostics = Diagnostics::API::Endpoint.new(
|
|
26
|
-
'/debugger/v1/diagnostics',
|
|
27
|
-
Core::Encoding::JSONEncoder,
|
|
28
|
-
)
|
|
29
|
-
end,
|
|
30
|
-
INPUT => Input::API::Spec.new do |s|
|
|
31
|
-
s.input = Input::API::Endpoint.new(
|
|
32
|
-
'/debugger/v1/input',
|
|
33
|
-
Core::Encoding::JSONEncoder,
|
|
34
|
-
)
|
|
35
|
-
end,
|
|
36
|
-
]
|
|
37
|
-
end
|
|
38
|
-
end
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Datadog
|
|
4
|
-
module OpenTelemetry
|
|
5
|
-
module API
|
|
6
|
-
module Baggage
|
|
7
|
-
def initialize: (?trace: Datadog::Tracing::TraceOperation?) -> void
|
|
8
|
-
|
|
9
|
-
# Returns a new context with empty baggage
|
|
10
|
-
def clear: (?context: OpenTelemetry::Context) -> OpenTelemetry::Context
|
|
11
|
-
|
|
12
|
-
# Returns the corresponding value for key
|
|
13
|
-
def value: (String key, ?context: OpenTelemetry::Context) -> String?
|
|
14
|
-
|
|
15
|
-
# Returns all baggage values
|
|
16
|
-
def values: (?context: OpenTelemetry::Context) -> Hash[String, String]
|
|
17
|
-
|
|
18
|
-
# Returns a new context with key-value pair
|
|
19
|
-
def set_value: (String key, String value, ?metadata: String?, ?context: OpenTelemetry::Context) -> OpenTelemetry::Context
|
|
20
|
-
|
|
21
|
-
# Returns a new context with value at key removed
|
|
22
|
-
def remove_value: (String key, ?context: OpenTelemetry::Context) -> OpenTelemetry::Context
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
end
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
require_relative '../../../core/encoding'
|
|
4
|
-
|
|
5
|
-
require_relative '../../../core/transport/http/api/map'
|
|
6
|
-
require_relative '../../../core/transport/http/api/instance'
|
|
7
|
-
require_relative '../../../core/transport/http/api/spec'
|
|
8
|
-
|
|
9
|
-
require_relative 'traces'
|
|
10
|
-
|
|
11
|
-
module Datadog
|
|
12
|
-
module Tracing
|
|
13
|
-
module Transport
|
|
14
|
-
module HTTP
|
|
15
|
-
# Namespace for API components
|
|
16
|
-
module API
|
|
17
|
-
# Default API versions
|
|
18
|
-
V4 = 'v0.4'
|
|
19
|
-
V3 = 'v0.3'
|
|
20
|
-
|
|
21
|
-
module_function
|
|
22
|
-
|
|
23
|
-
def defaults
|
|
24
|
-
Core::Transport::HTTP::API::Map[
|
|
25
|
-
V4 => Traces::API::Spec.new do |s|
|
|
26
|
-
s.traces = Traces::API::Endpoint.new(
|
|
27
|
-
'/v0.4/traces',
|
|
28
|
-
Core::Encoding::MsgpackEncoder,
|
|
29
|
-
service_rates: true
|
|
30
|
-
)
|
|
31
|
-
end,
|
|
32
|
-
V3 => Traces::API::Spec.new do |s|
|
|
33
|
-
s.traces = Traces::API::Endpoint.new(
|
|
34
|
-
'/v0.3/traces',
|
|
35
|
-
Core::Encoding::MsgpackEncoder
|
|
36
|
-
)
|
|
37
|
-
end,
|
|
38
|
-
].with_fallbacks(V4 => V3)
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
end
|
|
42
|
-
end
|
|
43
|
-
end
|
|
44
|
-
end
|