From eed3e38520b51b65f1c37dc3ff466537beaca45c Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 17 Jul 2024 12:38:01 +0200 Subject: [PATCH 1/8] add telemetry constants, helpers, signatures --- lib/datadog/ci/ext/telemetry.rb | 112 ++++++++++++ lib/datadog/ci/utils/telemetry.rb | 23 +++ sig/datadog/ci/ext/telemetry.rbs | 165 ++++++++++++++++++ sig/datadog/ci/utils/telemetry.rbs | 13 ++ .../0/datadog/core/telemetry/component.rbs | 38 ++++ .../0/datadog/core/telemetry/emitter.rbs | 16 ++ .../0/datadog/core/telemetry/event.rbs | 82 +++++++++ .../ddtrace/0/datadog/core/telemetry/ext.rbs | 16 ++ .../core/telemetry/http/adapters/net.rbs | 53 ++++++ .../0/datadog/core/telemetry/http/env.rbs | 17 ++ .../0/datadog/core/telemetry/http/ext.rbs | 35 ++++ .../datadog/core/telemetry/http/response.rbs | 38 ++++ .../datadog/core/telemetry/http/transport.rbs | 31 ++++ .../0/datadog/core/telemetry/metric.rbs | 103 +++++++++++ .../core/telemetry/metrics_collection.rbs | 39 +++++ .../core/telemetry/metrics_manager.rbs | 37 ++++ .../0/datadog/core/telemetry/request.rbs | 14 ++ .../0/datadog/core/telemetry/worker.rbs | 54 ++++++ .../ddtrace/0/datadog/core/utils/base64.rbs | 14 ++ .../ddtrace/0/datadog/core/utils/duration.rbs | 9 + .../rbs/ddtrace/0/datadog/core/utils/hash.rbs | 10 ++ .../0/datadog/core/utils/only_once.rbs | 20 +++ .../core/utils/only_once_successful.rbs | 23 +++ .../ddtrace/0/datadog/core/utils/safe_dup.rbs | 14 ++ .../ddtrace/0/datadog/core/utils/sequence.rbs | 2 +- .../rbs/ddtrace/0/datadog/core/utils/time.rbs | 13 ++ 26 files changed, 990 insertions(+), 1 deletion(-) create mode 100644 lib/datadog/ci/ext/telemetry.rb create mode 100644 lib/datadog/ci/utils/telemetry.rb create mode 100644 sig/datadog/ci/ext/telemetry.rbs create mode 100644 sig/datadog/ci/utils/telemetry.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/component.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/emitter.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/event.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/ext.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/http/adapters/net.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/http/env.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/http/ext.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/http/response.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/http/transport.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/metric.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_collection.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_manager.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/request.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/telemetry/worker.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/utils/base64.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/utils/duration.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/utils/hash.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/utils/only_once.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/utils/only_once_successful.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/utils/safe_dup.rbs create mode 100644 vendor/rbs/ddtrace/0/datadog/core/utils/time.rbs diff --git a/lib/datadog/ci/ext/telemetry.rb b/lib/datadog/ci/ext/telemetry.rb new file mode 100644 index 00000000..193d9c69 --- /dev/null +++ b/lib/datadog/ci/ext/telemetry.rb @@ -0,0 +1,112 @@ +# frozen_string_literal: true + +module Datadog + module CI + module Ext + module Telemetry + NAMESPACE = "civisibility" + + METRIC_EVENT_CREATED = "event_created" + METRIC_EVENT_FINISHED = "event_finished" + + METRIC_MANUAL_API_EVENTS = "manual_api_events" + + METRIC_CODE_COVERAGE_STARTED = "code_coverage_started" + METRIC_CODE_COVERAGE_FINISHED = "code_coverage_finished" + + METRIC_EVENTS_ENQUEUED = "events_enqueued_for_serialization" + METRIC_ENDPOINT_PAYLOAD_BYTES = "endpoint_payload.bytes" + METRIC_ENDPOINT_PAYLOAD_REQUESTS = "endpoint_payload.requests" + METRIC_ENDPOINT_PAYLOAD_REQUESTS_MS = "endpoint_payload.requests_ms" + METRIC_ENDPOINT_PAYLOAD_REQUESTS_ERRORS = "endpoint_payload.requests_errors" + METRIC_ENDPOINT_PAYLOAD_EVENTS_COUNT = "endpoint_payload.events_count" + METRIC_ENDPOINT_PAYLOAD_EVENTS_SERIALIZATION_MS = "endpoint_payload.events_serialization_ms" + METRIC_ENDPOINT_PAYLOAD_DROPPED = "endpoint_payload.dropped" + + METRIC_GIT_COMMAND = "git.command" + METRIC_GIT_COMMAND_ERRORS = "git.command_errors" + METRIC_GIT_COMMAND_MS = "git.command_ms" + + METRIC_GIT_REQUESTS_SEARCH_COMMITS = "git_requests.search_commits" + METRIC_GIT_REQUESTS_SEARCH_COMMITS_MS = "git_requests.search_commits_ms" + METRIC_GIT_REQUESTS_SEARCH_COMMITS_ERRORS = "git_requests.search_commits_errors" + + METRIC_GIT_REQUESTS_OBJECT_PACK = "git_requests.objects_pack" + METRIC_GIT_REQUESTS_OBJECT_PACK_MS = "git_requests.objects_pack_ms" + METRIC_GIT_REQUESTS_OBJECT_PACK_ERRORS = "git_requests.objects_pack_errors" + METRIC_GIT_REQUESTS_OBJECT_PACK_BYTES = "git_requests.objects_pack_bytes" + METRIC_GIT_REQUESTS_OBJECT_PACK_FILES = "git_requests.objects_pack_files" + + METRIC_GIT_REQUESTS_SETTINGS = "git_requests.settings" + METRIC_GIT_REQUESTS_SETTINGS_MS = "git_requests.settings_ms" + METRIC_GIT_REQUESTS_SETTINGS_ERRORS = "git_requests.settings_errors" + METRIC_GIT_REQUESTS_SETTINGS_RESPONSE = "git_requests.settings_response" + + METRIC_ITR_SKIPPABLE_TESTS_REQUEST = "itr_skippable_tests.request" + METRIC_ITR_SKIPPABLE_TESTS_REQUEST_MS = "itr_skippable_tests.request_ms" + METRIC_ITR_SKIPPABLE_TESTS_REQUEST_ERRORS = "itr_skippable_tests.request_errors" + METRIC_ITR_SKIPPABLE_TESTS_RESPONSE_BYTES = "itr_skippable_tests.response_bytes" + METRIC_ITR_SKIPPABLE_TESTS_RESPONSE_TESTS = "itr_skippable_tests.response_tests" + + METRIC_ITR_SKIPPED = "itr_skipped" + METRIC_ITR_UNSKIPPABLE = "itr_unskippable" + METRIC_ITR_FORCED_RUN = "itr_forced_run" + + METRIC_CODE_COVERAGE_IS_EMPTY = "code_coverage.is_empty" + METRIC_CODE_COVERAGE_FILES = "code_coverage.files" + METRIC_CODE_COVERAGE_ERRORS = "code_coverage.errors" + + METRIC_TEST_SESSION = "test_session" + + TAG_TEST_FRAMEWORK = "test_framework" + TAG_EVENT_TYPE = "event_type" + TAG_HAS_CODEOWNER = "has_codeowner" + TAG_IS_UNSUPPORTED_CI = "is_unsupported_ci" + TAG_BROWSER_DRIVER = "browser_driver" + TAG_IS_RUM = "is_rum" + TAG_LIBRARY = "library" + TAG_ENDPOINT = "endpoint" + TAG_ERROR_TYPE = "error_type" + TAG_EXIT_CODE = "exit_code" + TAG_STATUS_CODE = "status_code" + TAG_REQUEST_COMPRESSED = "rq_compressed" + TAG_RESPONSE_COMPRESSED = "rs_compressed" + TAG_COMMAND = "command" + TAG_COVERAGE_ENABLED = "coverage_enabled" + TAG_ITR_ENABLED = "itr_enabled" + TAG_ITR_SKIP_ENABLED = "itr_skip_enabled" + TAG_REQUIRE_GIT = "require_git" + TAG_PROVIDER = "provider" + TAG_AUTO_INJECTED = "auto_injected" + + module Library + BUILTIN = "builtin" + end + + module Endpoint + CODE_COVERAGE = "code_coverage" + TEST_CYCLE = "test_cycle" + end + + module ErrorType + NETWORK = "network" + TIMEOUT = "timeout" + end + + module ExitCode + MISSING = "missing" + end + + module Command + GET_REPOSITORY = "get_repository" + GET_BRANCH = "get_branch" + CHECK_SHALLOW = "check_shallow" + UNSHALLOW = "unshallow" + GET_LOCAL_COMMITS = "get_local_commits" + GET_OBJECTS = "get_objects" + PACK_OBJECTS = "pack_objects" + end + end + end + end +end diff --git a/lib/datadog/ci/utils/telemetry.rb b/lib/datadog/ci/utils/telemetry.rb new file mode 100644 index 00000000..bebc8756 --- /dev/null +++ b/lib/datadog/ci/utils/telemetry.rb @@ -0,0 +1,23 @@ +# frozen_string_literal: true + +require_relative "../ext/telemetry" + +module Datadog + module CI + module Utils + module Telemetry + def self.inc(metric_name, count, tags = {}) + telemetry.inc(Ext::Telemetry::NAMESPACE, metric_name, count, tags: tags) + end + + def self.distribution(metric_name, value, tags = {}) + telemetry.distribution(Ext::Telemetry::NAMESPACE, metric_name, value, tags: tags) + end + + def self.telemetry + Datadog.send(:components).telemtry + end + end + end + end +end diff --git a/sig/datadog/ci/ext/telemetry.rbs b/sig/datadog/ci/ext/telemetry.rbs new file mode 100644 index 00000000..bd787b89 --- /dev/null +++ b/sig/datadog/ci/ext/telemetry.rbs @@ -0,0 +1,165 @@ +module Datadog + module CI + module Ext + module Telemetry + NAMESPACE: "civisibility" + + METRIC_EVENT_CREATED: "event_created" + + METRIC_EVENT_FINISHED: "event_finished" + + METRIC_MANUAL_API_EVENTS: "manual_api_events" + + METRIC_CODE_COVERAGE_STARTED: "code_coverage_started" + + METRIC_CODE_COVERAGE_FINISHED: "code_coverage_finished" + + METRIC_EVENTS_ENQUEUED: "events_enqueued_for_serialization" + + METRIC_ENDPOINT_PAYLOAD_BYTES: "endpoint_payload.bytes" + + METRIC_ENDPOINT_PAYLOAD_REQUESTS: "endpoint_payload.requests" + + METRIC_ENDPOINT_PAYLOAD_REQUESTS_MS: "endpoint_payload.requests_ms" + + METRIC_ENDPOINT_PAYLOAD_REQUESTS_ERRORS: "endpoint_payload.requests_errors" + + METRIC_ENDPOINT_PAYLOAD_EVENTS_COUNT: "endpoint_payload.events_count" + + METRIC_ENDPOINT_PAYLOAD_EVENTS_SERIALIZATION_MS: "endpoint_payload.events_serialization_ms" + + METRIC_ENDPOINT_PAYLOAD_DROPPED: "endpoint_payload.dropped" + + METRIC_GIT_COMMAND: "git.command" + + METRIC_GIT_COMMAND_ERRORS: "git.command_errors" + + METRIC_GIT_COMMAND_MS: "git.command_ms" + + METRIC_GIT_REQUESTS_SEARCH_COMMITS: "git_requests.search_commits" + + METRIC_GIT_REQUESTS_SEARCH_COMMITS_MS: "git_requests.search_commits_ms" + + METRIC_GIT_REQUESTS_SEARCH_COMMITS_ERRORS: "git_requests.search_commits_errors" + + METRIC_GIT_REQUESTS_OBJECT_PACK: "git_requests.objects_pack" + + METRIC_GIT_REQUESTS_OBJECT_PACK_MS: "git_requests.objects_pack_ms" + + METRIC_GIT_REQUESTS_OBJECT_PACK_ERRORS: "git_requests.objects_pack_errors" + + METRIC_GIT_REQUESTS_OBJECT_PACK_BYTES: "git_requests.objects_pack_bytes" + + METRIC_GIT_REQUESTS_OBJECT_PACK_FILES: "git_requests.objects_pack_files" + + METRIC_GIT_REQUESTS_SETTINGS: "git_requests.settings" + + METRIC_GIT_REQUESTS_SETTINGS_MS: "git_requests.settings_ms" + + METRIC_GIT_REQUESTS_SETTINGS_ERRORS: "git_requests.settings_errors" + + METRIC_GIT_REQUESTS_SETTINGS_RESPONSE: "git_requests.settings_response" + + METRIC_ITR_SKIPPABLE_TESTS_REQUEST: "itr_skippable_tests.request" + + METRIC_ITR_SKIPPABLE_TESTS_REQUEST_MS: "itr_skippable_tests.request_ms" + + METRIC_ITR_SKIPPABLE_TESTS_REQUEST_ERRORS: "itr_skippable_tests.request_errors" + + METRIC_ITR_SKIPPABLE_TESTS_RESPONSE_BYTES: "itr_skippable_tests.response_bytes" + + METRIC_ITR_SKIPPABLE_TESTS_RESPONSE_TESTS: "itr_skippable_tests.response_tests" + + METRIC_ITR_SKIPPED: "itr_skipped" + + METRIC_ITR_UNSKIPPABLE: "itr_unskippable" + + METRIC_ITR_FORCED_RUN: "itr_forced_run" + + METRIC_CODE_COVERAGE_IS_EMPTY: "code_coverage.is_empty" + + METRIC_CODE_COVERAGE_FILES: "code_coverage.files" + + METRIC_CODE_COVERAGE_ERRORS: "code_coverage.errors" + + METRIC_TEST_SESSION: "test_session" + + TAG_TEST_FRAMEWORK: "test_framework" + + TAG_EVENT_TYPE: "event_type" + + TAG_HAS_CODEOWNER: "has_codeowner" + + TAG_IS_UNSUPPORTED_CI: "is_unsupported_ci" + + TAG_BROWSER_DRIVER: "browser_driver" + + TAG_IS_RUM: "is_rum" + + TAG_LIBRARY: "library" + + TAG_ENDPOINT: "endpoint" + + TAG_ERROR_TYPE: "error_type" + + TAG_EXIT_CODE: "exit_code" + + TAG_STATUS_CODE: "status_code" + + TAG_REQUEST_COMPRESSED: "rq_compressed" + + TAG_RESPONSE_COMPRESSED: "rs_compressed" + + TAG_COMMAND: "command" + + TAG_COVERAGE_ENABLED: "coverage_enabled" + + TAG_ITR_ENABLED: "itr_enabled" + + TAG_ITR_SKIP_ENABLED: "itr_skip_enabled" + + TAG_REQUIRE_GIT: "require_git" + + TAG_PROVIDER: "provider" + + TAG_AUTO_INJECTED: "auto_injected" + + module Library + BUILTIN: "builtin" + end + + module Endpoint + CODE_COVERAGE: "code_coverage" + + TEST_CYCLE: "test_cycle" + end + + module ErrorType + NETWORK: "network" + + TIMEOUT: "timeout" + end + + module ExitCode + MISSING: "missing" + end + + module Command + GET_REPOSITORY: "get_repository" + + GET_BRANCH: "get_branch" + + CHECK_SHALLOW: "check_shallow" + + UNSHALLOW: "unshallow" + + GET_LOCAL_COMMITS: "get_local_commits" + + GET_OBJECTS: "get_objects" + + PACK_OBJECTS: "pack_objects" + end + end + end + end +end diff --git a/sig/datadog/ci/utils/telemetry.rbs b/sig/datadog/ci/utils/telemetry.rbs new file mode 100644 index 00000000..5dc8aa6b --- /dev/null +++ b/sig/datadog/ci/utils/telemetry.rbs @@ -0,0 +1,13 @@ +module Datadog + module CI + module Utils + module Telemetry + def self.inc: (String metric_name, Integer count, ?Datadog::Core::Telemetry::Metric::tags_input tags) -> void + + def self.distribution: (String metric_name, Float value, ?Datadog::Core::Telemetry::Metric::tags_input tags) -> void + + def self.telemetry: () -> Datadog::Core::Telemetry::Component + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/component.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/component.rbs new file mode 100644 index 00000000..68955d0c --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/component.rbs @@ -0,0 +1,38 @@ +module Datadog + module Core + module Telemetry + class Component + @enabled: bool + @stopped: bool + @metrics_manager: Datadog::Core::Telemetry::MetricsManager + @worker: Datadog::Core::Telemetry::Worker + + attr_reader enabled: bool + + include Core::Utils::Forking + + def initialize: (http_transport: Datadog::Core::Telemetry::Http::Transport, heartbeat_interval_seconds: Float, metrics_aggregation_interval_seconds: Float, dependency_collection: bool, ?enabled: bool, ?metrics_enabled: bool, shutdown_timeout_seconds: Float) -> void + + def disable!: () -> void + + def client_configuration_change!: (Enumerable[[String, Numeric | bool | String]] changes) -> void + + def emit_closing!: () -> void + + def stop!: () -> void + + def integrations_change!: () -> void + + def inc: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def dec: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def gauge: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def rate: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def distribution: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/emitter.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/emitter.rbs new file mode 100644 index 00000000..9ff2ba3f --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/emitter.rbs @@ -0,0 +1,16 @@ +module Datadog + module Core + module Telemetry + class Emitter + self.@sequence: Datadog::Core::Utils::Sequence + + attr_reader http_transport: untyped + + extend Core::Utils::Forking + def initialize: (http_transport: untyped) -> void + def request: (Datadog::Core::Telemetry::Event::Base event) -> Datadog::Core::Telemetry::Http::Adapters::Net::Response + def self.sequence: () -> untyped + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/event.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/event.rbs new file mode 100644 index 00000000..7fe027cb --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/event.rbs @@ -0,0 +1,82 @@ +module Datadog + module Core + module Telemetry + class Event + extend Core::Utils::Forking + + self.@sequence: Datadog::Core::Utils::Sequence + + def self.configuration_sequence: () -> Datadog::Core::Utils::Sequence + + class Base + def payload: () -> (Hash[Symbol, untyped] | Array[Hash[Symbol, untyped]]) + def type: -> String + end + + class AppStarted < Base + TARGET_OPTIONS: Array[String] + + private + + def products: -> Hash[Symbol, untyped] + + def configuration: -> Array[Hash[Symbol, untyped]] + + def agent_transport: (untyped config) -> String + + def conf_value: (String name, Object value, Integer seq_id, ?String origin) -> Hash[Symbol, untyped] + + def to_value: (Object value) -> Object + + def install_signature: -> Hash[Symbol, Object] + end + + class AppDependenciesLoaded < Base + private + + def dependencies: -> Array[Hash[Symbol, String]] + end + + class AppIntegrationsChange < Base + private + + def integrations: -> Array[Hash[Symbol, string]] + + def patch_error: (untyped integration) -> String + end + + class AppClientConfigurationChange < Base + @changes: Enumerable[[String, Numeric | bool | String | int]] + @origin: String + + def initialize: (Enumerable[[String, Numeric | bool | String]] changes, String origin) -> void + + def configuration: () -> Array[Hash[Symbol, untyped]] + end + + class AppHeartbeat < Base + end + + class AppClosing < Base + end + + class GenerateMetrics < Base + @namespace: String + @metric_series: Enumerable[Datadog::Core::Telemetry::Metric::Base] + + def initialize: (String namespace, Enumerable[Datadog::Core::Telemetry::Metric::Base] metric_series) -> void + end + + class Distributions < GenerateMetrics + end + + class MessageBatch < Base + attr_reader events: Array[Datadog::Core::Telemetry::Event::Base] + @events: Array[Datadog::Core::Telemetry::Event::Base] + + def initialize: (Array[Datadog::Core::Telemetry::Event::Base] events) -> void + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/ext.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/ext.rbs new file mode 100644 index 00000000..96ad27c0 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/ext.rbs @@ -0,0 +1,16 @@ +module Datadog + module Core + module Telemetry + module Ext + ENV_DEPENDENCY_COLLECTION: ::String + ENV_ENABLED: ::String + ENV_METRICS_ENABLED: ::String + ENV_HEARTBEAT_INTERVAL: ::String + ENV_METRICS_AGGREGATION_INTERVAL: ::String + ENV_INSTALL_ID: ::String + ENV_INSTALL_TIME: ::String + ENV_INSTALL_TYPE: ::String + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/adapters/net.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/adapters/net.rbs new file mode 100644 index 00000000..311c5989 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/adapters/net.rbs @@ -0,0 +1,53 @@ +module Datadog + module Core + module Telemetry + module Http + module Adapters + class Net + type response = Datadog::Core::Telemetry::Http::Adapters::Net::Response | ::Datadog::Core::Telemetry::Http::InternalErrorResponse + + attr_reader hostname: String + + attr_reader port: Integer? + + attr_reader timeout: Float | Integer + + attr_reader ssl: bool + + DEFAULT_TIMEOUT: 2 + + def initialize: (hostname: String, ?port: Integer?, ?timeout: Float | Integer, ?ssl: bool?) -> void + + def open: () { (::Net::HTTP http) -> ::Net::HTTPResponse } -> untyped + + def post: (untyped env) -> response + + class Response + include Datadog::Core::Telemetry::Http::Response + + attr_reader http_response: untyped + + def initialize: (untyped http_response) -> void + + def payload: () -> untyped + + def code: () -> untyped + + def ok?: () -> untyped + + def unsupported?: () -> untyped + + def not_found?: () -> untyped + + def client_error?: () -> untyped + + def server_error?: () -> untyped + + def inspect: () -> ::String + end + end + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/env.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/env.rbs new file mode 100644 index 00000000..6ac89163 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/env.rbs @@ -0,0 +1,17 @@ +module Datadog + module Core + module Telemetry + module Http + class Env + attr_accessor path: untyped + + attr_accessor body: untyped + + attr_writer headers: untyped + + def headers: () -> untyped + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/ext.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/ext.rbs new file mode 100644 index 00000000..04bff0dc --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/ext.rbs @@ -0,0 +1,35 @@ +module Datadog + module Core + module Telemetry + module Http + module Ext + HEADER_DD_API_KEY: "DD-API-KEY" + + HEADER_CONTENT_TYPE: "Content-Type" + + HEADER_CONTENT_LENGTH: "Content-Length" + + HEADER_DD_TELEMETRY_API_VERSION: "DD-Telemetry-API-Version" + + HEADER_DD_TELEMETRY_REQUEST_TYPE: "DD-Telemetry-Request-Type" + + HEADER_CLIENT_LIBRARY_LANGUAGE: "DD-Client-Library-Language" + + HEADER_CLIENT_LIBRARY_VERSION: "DD-Client-Library-Version" + + HEADER_TELEMETRY_DEBUG_ENABLED: "DD-Telemetry-Debug-Enabled" + + CONTENT_TYPE_APPLICATION_JSON: "application/json" + + API_VERSION: "v2" + + AGENTLESS_HOST_PREFIX: "instrumentation-telemetry-intake" + + AGENT_ENDPOINT: "/telemetry/proxy/api/v2/apmtelemetry" + + AGENTLESS_ENDPOINT: "api/v2/apmtelemetry" + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/response.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/response.rbs new file mode 100644 index 00000000..4113c007 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/response.rbs @@ -0,0 +1,38 @@ +module Datadog + module Core + module Telemetry + module Http + module Response + def payload: () -> nil + + def ok?: () -> nil + + def unsupported?: () -> nil + + def code: () -> nil + + def not_found?: () -> nil + + def client_error?: () -> nil + + def server_error?: () -> nil + + def internal_error?: () -> nil + + def inspect: () -> ::String + end + class InternalErrorResponse + include Response + + attr_reader error: untyped + + def initialize: (untyped error) -> void + + def internal_error?: () -> true + + def inspect: () -> ::String + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/transport.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/transport.rbs new file mode 100644 index 00000000..18649084 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/http/transport.rbs @@ -0,0 +1,31 @@ +module Datadog + module Core + module Telemetry + module Http + class Transport + @adapter: Http::Adapters::Net + + attr_reader host: String + + attr_reader port: Integer + + attr_reader ssl: bool + + attr_reader path: String + + attr_reader api_key: String? + + def initialize: (host: String, port: Integer, path: String, ?ssl: bool, ?api_key: String?) -> void + + def request: (request_type: String, payload: String) -> Datadog::Core::Telemetry::Http::Adapters::Net::response + + private + + def headers: (request_type: untyped, ?api_version: untyped) -> ::Hash[untyped, untyped] + + def adapter: () -> Http::Adapters::Net + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/metric.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/metric.rbs new file mode 100644 index 00000000..09d9bcef --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/metric.rbs @@ -0,0 +1,103 @@ +module Datadog + module Core + module Telemetry + module Metric + type metric_type = "count" | "gauge" | "rate" | "distributions" | nil + + type input_value = Integer | Float + + type metric_value = Array[input_value] + type distribution_value = input_value + + type tags_input = ::Hash[String | Symbol, String] | Array[String] + + class Base + @name: String + + @id: String + + @values: Array[untyped] + + @tags: Array[String] + + @common: bool + + attr_reader name: String + + attr_reader tags: Array[String] + + attr_reader values: Array[untyped] + + attr_reader common: bool + + + def initialize: (String name, ?tags: tags_input, ?common: bool) -> void + + def id: () -> String + + def track: (Numeric value) -> void + + def type: () -> metric_type + + def to_h: () -> Hash[Symbol, untyped] + + private + + def tags_to_array: (tags_input tags) -> Array[String] + end + + class IntervalMetric < Base + @interval: Float + + attr_reader interval: Float + + def initialize: (String name, ?tags: tags_input, ?common: bool, interval: Float) -> void + end + + class Count < Base + TYPE: "count" + + @values: Array[metric_value] + attr_reader values: Array[metric_value] + + def type: () -> "count" + + def track: (input_value value) -> void + end + + class Gauge < IntervalMetric + TYPE: "gauge" + + def type: () -> "gauge" + + def track: (input_value value) -> void + end + + class Rate < IntervalMetric + @value: Float + + @values: Array[metric_value] + attr_reader values: Array[metric_value] + + TYPE: "rate" + + def type: () -> "rate" + + def track: (?input_value value) -> void + end + + class Distribution < Base + TYPE: "distributions" + + @values: Array[distribution_value] + attr_reader values: Array[distribution_value] + + def type: () -> "distributions" + + def track: (input_value value) -> void + def to_h: () -> { metric: String, points: Array[distribution_value], tags: Array[String], common: bool } + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_collection.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_collection.rbs new file mode 100644 index 00000000..7fcdd814 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_collection.rbs @@ -0,0 +1,39 @@ +module Datadog + module Core + module Telemetry + class MetricsCollection + @namespace: String + + @interval: Float + + @mutex: Thread::Mutex + + @metrics: Hash[String, Datadog::Core::Telemetry::Metric::Base] + + @distributions: Hash[String, Datadog::Core::Telemetry::Metric::Distribution] + + attr_reader namespace: String + + def initialize: (String namespace, aggregation_interval: Float) -> void + + def inc: (String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def dec: (String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def gauge: (String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def rate: (String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def distribution: (String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def flush!: () -> Array[Datadog::Core::Telemetry::Event::Base] + + private + + def fetch_or_add_metric: (Datadog::Core::Telemetry::Metric::Base metric, Datadog::Core::Telemetry::Metric::input_value value) -> void + + def fetch_or_add_distribution: (Datadog::Core::Telemetry::Metric::Distribution metric, Datadog::Core::Telemetry::Metric::input_value value) -> void + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_manager.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_manager.rbs new file mode 100644 index 00000000..50369469 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/metrics_manager.rbs @@ -0,0 +1,37 @@ +module Datadog + module Core + module Telemetry + class MetricsManager + @interval: Float + + @enabled: bool + + @mutex: Thread::Mutex + + @collections: Hash[String, Datadog::Core::Telemetry::MetricsCollection] + + attr_reader enabled: bool + + def initialize: (aggregation_interval: Float, enabled: bool) -> void + + def inc: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def dec: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def gauge: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def rate: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def distribution: (String namespace, String metric_name, Datadog::Core::Telemetry::Metric::input_value value, ?tags: Datadog::Core::Telemetry::Metric::tags_input, ?common: bool) -> void + + def flush!: () -> Array[Datadog::Core::Telemetry::Event::Base] + + def disable!: () -> void + + private + + def fetch_or_create_collection: (String namespace) -> Datadog::Core::Telemetry::MetricsCollection + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/request.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/request.rbs new file mode 100644 index 00000000..eddf5ce9 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/request.rbs @@ -0,0 +1,14 @@ +module Datadog + module Core + module Telemetry + module Request + def self.build_payload: (Event::Base event, int seq_id) -> ::Hash[Symbol, untyped] + + private + + def self.application: -> ::Hash[Symbol, untyped] + def self.host: -> ::Hash[Symbol, untyped] + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/telemetry/worker.rbs b/vendor/rbs/ddtrace/0/datadog/core/telemetry/worker.rbs new file mode 100644 index 00000000..de74a71c --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/telemetry/worker.rbs @@ -0,0 +1,54 @@ +module Datadog + module Core + module Telemetry + class Worker + include Core::Workers::Polling + include Core::Workers::Async::Thread + include Core::Workers::Async::Thread::PrependedMethods + include Core::Workers::IntervalLoop + include Core::Workers::Queue + + TELEMETRY_STARTED_ONCE: Datadog::Core::Utils::OnlyOnceSuccessful + APP_STARTED_EVENT_RETRIES: 10 + DEFAULT_BUFFER_MAX_SIZE: 1000 + + @emitter: Emitter + @metrics_manager: MetricsManager + @sent_started_event: bool + @shutdown_timeout: Integer + @buffer_size: Integer + @dependency_collection: bool + @ticks_per_heartbeat: Integer + @current_ticks: Integer + + def initialize: (?enabled: bool, heartbeat_interval_seconds: Float, metrics_aggregation_interval_seconds: Float, emitter: Emitter, metrics_manager: MetricsManager, ?shutdown_timeout: Float, ?buffer_size: Integer, dependency_collection: bool) -> void + + def start: () -> void + + def sent_started_event?: () -> bool + + def failed_to_start?: () -> bool + + def enqueue: (Event::Base event) -> void + + def dequeue: () -> Array[Event::Base] + + private + + def heartbeat!: () -> void + + def started!: () -> void + + def flush_events: (Array[Event::Base] events) -> void + + def send_event: (Event::Base event) -> Http::Adapters::Net::Response + + def disable!: () -> void + + def disable_on_not_found!: (Http::Adapters::Net::Response response) -> void + + def buffer_klass: () -> untyped + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/base64.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/base64.rbs new file mode 100644 index 00000000..ca7d7f08 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/base64.rbs @@ -0,0 +1,14 @@ +module Datadog + module Core + module Utils + # Helper methods for encoding and decoding base64 + module Base64 + def self.encode64: (String bin) -> String + + def self.strict_encode64: (String bin) -> String + + def self.strict_decode64: (String str) -> untyped + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/duration.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/duration.rbs new file mode 100644 index 00000000..1f464496 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/duration.rbs @@ -0,0 +1,9 @@ +module Datadog + module Core + module Utils + module Duration + def self.call: (String value, ?base: ::Symbol) -> Numeric + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/hash.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/hash.rbs new file mode 100644 index 00000000..0c2544c4 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/hash.rbs @@ -0,0 +1,10 @@ +module Datadog + module Core + module Utils + module Hash + module Refinement + end + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/only_once.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/only_once.rbs new file mode 100644 index 00000000..354334c7 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/only_once.rbs @@ -0,0 +1,20 @@ +module Datadog + module Core + module Utils + class OnlyOnce + @ran_once: bool + @mutex: Thread::Mutex + + def initialize: () -> untyped + + def run: () { () -> untyped } -> untyped + + def ran?: () -> untyped + + private + + def reset_ran_once_state_for_tests: () -> untyped + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/only_once_successful.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/only_once_successful.rbs new file mode 100644 index 00000000..2236b5a6 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/only_once_successful.rbs @@ -0,0 +1,23 @@ +module Datadog + module Core + module Utils + class OnlyOnceSuccessful < Datadog::Core::Utils::OnlyOnce + @limit: Integer + @retries: Integer + @failed: bool + + def initialize: (?Integer limit) -> void + + def success?: () -> bool + + def failed?: () -> bool + + private + + def check_limit!: () -> void + + def limited?: () -> bool + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/safe_dup.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/safe_dup.rbs new file mode 100644 index 00000000..fc9c7ca6 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/safe_dup.rbs @@ -0,0 +1,14 @@ +module Datadog + module Core + module Utils + module SafeDup + module RefineNil + end + + def self.frozen_or_dup: (untyped v) -> untyped + + def self.frozen_dup: (untyped v) -> (untyped | nil) + end + end + end +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/sequence.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/sequence.rbs index 588548a0..04042a9e 100644 --- a/vendor/rbs/ddtrace/0/datadog/core/utils/sequence.rbs +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/sequence.rbs @@ -8,4 +8,4 @@ module Datadog end end end -end \ No newline at end of file +end diff --git a/vendor/rbs/ddtrace/0/datadog/core/utils/time.rbs b/vendor/rbs/ddtrace/0/datadog/core/utils/time.rbs new file mode 100644 index 00000000..74aeb383 --- /dev/null +++ b/vendor/rbs/ddtrace/0/datadog/core/utils/time.rbs @@ -0,0 +1,13 @@ +module Datadog + module Core + module Utils + module Time + def self?.get_time: (?::Symbol unit) -> ::Numeric + def self?.now: () -> ::Time + def self?.now_provider=: (^() -> ::Time block) -> void + def self?.measure: (?::Symbol unit) { () -> void } -> ::Numeric + def self?.as_utc_epoch_ns: (::Time time) -> ::Integer + end + end + end +end From 420399c820fcc638db295accd46d338a4036e195 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 17 Jul 2024 12:56:22 +0200 Subject: [PATCH 2/8] change webmock spec --- spec/datadog/ci/transport/adapters/net_spec.rb | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/spec/datadog/ci/transport/adapters/net_spec.rb b/spec/datadog/ci/transport/adapters/net_spec.rb index af2ef8b8..3e0d0570 100644 --- a/spec/datadog/ci/transport/adapters/net_spec.rb +++ b/spec/datadog/ci/transport/adapters/net_spec.rb @@ -99,13 +99,11 @@ end context "with webmock" do + let(:hostname) { "localhost" } + let(:timeout) { 0.5 } let(:verb) { :post } let(:expected_error) do - if defined?(Socket::ResolutionError) - Socket::ResolutionError - else - SocketError - end + Errno::ECONNREFUSED end before { WebMock.enable! } From 9f0f2f298bf74d1a4520d52707b62c330cb84992 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 17 Jul 2024 13:01:49 +0200 Subject: [PATCH 3/8] expand convert_to_bool helper --- lib/datadog/ci/utils/parsing.rb | 3 +- spec/datadog/ci/utils/parsing_spec.rb | 75 +++++++++++++++++++++++++++ 2 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 spec/datadog/ci/utils/parsing_spec.rb diff --git a/lib/datadog/ci/utils/parsing.rb b/lib/datadog/ci/utils/parsing.rb index e519935e..9c3e1bd4 100644 --- a/lib/datadog/ci/utils/parsing.rb +++ b/lib/datadog/ci/utils/parsing.rb @@ -8,7 +8,8 @@ module CI module Utils module Parsing def self.convert_to_bool(value) - value.to_s.downcase == "true" + normalized_value = value.to_s.downcase + normalized_value == "true" || normalized_value == "1" end end end diff --git a/spec/datadog/ci/utils/parsing_spec.rb b/spec/datadog/ci/utils/parsing_spec.rb new file mode 100644 index 00000000..3dc9aeaa --- /dev/null +++ b/spec/datadog/ci/utils/parsing_spec.rb @@ -0,0 +1,75 @@ +# frozen_string_literal: true + +require_relative "../../../../lib/datadog/ci/utils/parsing" + +RSpec.describe Datadog::CI::Utils::Parsing do + describe ".convert_to_bool" do + subject(:convert_to_bool) { described_class.convert_to_bool(value) } + + context "when the value is a boolean" do + context "and the value is true" do + let(:value) { true } + + it { is_expected.to be true } + end + + context "and the value is false" do + let(:value) { false } + + it { is_expected.to be false } + end + end + + context "when the value is a string" do + context "and the value is 'true'" do + let(:value) { "true" } + + it { is_expected.to be true } + end + + context "and the value is 'false'" do + let(:value) { "false" } + + it { is_expected.to be false } + end + + context "and the value is '1'" do + let(:value) { "1" } + + it { is_expected.to be true } + end + + context "and the value is '0'" do + let(:value) { "0" } + + it { is_expected.to be false } + end + + context "and the value is 'TRUE'" do + let(:value) { "TRUE" } + + it { is_expected.to be true } + end + + context "and the value is 'FALSE'" do + let(:value) { "FALSE" } + + it { is_expected.to be false } + end + end + + context "when the value is an integer" do + context "and the value is 1" do + let(:value) { 1 } + + it { is_expected.to be true } + end + + context "and the value is 0" do + let(:value) { 0 } + + it { is_expected.to be false } + end + end + end +end From 329ed3d47cc7518d756419fb80993cd661d4b0de Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 17 Jul 2024 13:09:38 +0200 Subject: [PATCH 4/8] enable telemetry unless disabled explicitly --- lib/datadog/ci/configuration/components.rb | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/datadog/ci/configuration/components.rb b/lib/datadog/ci/configuration/components.rb index c1ac872c..d065336b 100644 --- a/lib/datadog/ci/configuration/components.rb +++ b/lib/datadog/ci/configuration/components.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +require "datadog/core/telemetry/ext" + require_relative "../ext/settings" require_relative "../git/tree_uploader" require_relative "../test_optimisation/component" @@ -13,6 +15,7 @@ require_relative "../test_visibility/transport" require_relative "../transport/api/builder" require_relative "../transport/remote_settings_api" +require_relative "../utils/parsing" require_relative "../utils/test_run" require_relative "../worker" @@ -61,7 +64,11 @@ def activate_ci!(settings) # Configure datadog gem for test visibility mode # Deactivate telemetry - settings.telemetry.enabled = false + + # in development environment Datadog's telemetry is disabled by default + # for test visibility we want to enable it by default unless explicitly disabled + env_enabled_value = ENV[Core::Telemetry::Ext::ENV_ENABLED] + settings.telemetry.enabled = env_enabled_value.nil? || Utils::Parsing.convert_to_bool(env_enabled_value) # Test visibility uses its own remote settings settings.remote.enabled = false From 962ea2748693b84c4e81c4cf66881adb3080fc52 Mon Sep 17 00:00:00 2001 From: Andrey Date: Wed, 17 Jul 2024 21:10:41 +0200 Subject: [PATCH 5/8] implement first telemetry events, bump datadog dependency to 2.2 --- datadog-ci.gemspec | 2 +- docs/DevelopmentGuide.md | 2 +- .../jruby_9.4_activesupport_4.gemfile.lock | 8 +-- .../jruby_9.4_activesupport_5.gemfile.lock | 8 +-- .../jruby_9.4_activesupport_6.gemfile.lock | 8 +-- .../jruby_9.4_activesupport_7.gemfile.lock | 8 +-- ...uby_9.4_ci_queue_0_minitest_5.gemfile.lock | 8 +-- .../jruby_9.4_ci_queue_0_rspec_3.gemfile.lock | 8 +-- gemfiles/jruby_9.4_cucumber_3.gemfile.lock | 8 +-- gemfiles/jruby_9.4_cucumber_4.gemfile.lock | 8 +-- gemfiles/jruby_9.4_cucumber_5.gemfile.lock | 8 +-- gemfiles/jruby_9.4_cucumber_6.gemfile.lock | 8 +-- gemfiles/jruby_9.4_cucumber_7.gemfile.lock | 8 +-- gemfiles/jruby_9.4_cucumber_8.gemfile.lock | 8 +-- gemfiles/jruby_9.4_cucumber_9.gemfile.lock | 8 +-- ...by_9.4_knapsack_pro_7_rspec_3.gemfile.lock | 8 +-- gemfiles/jruby_9.4_minitest_5.gemfile.lock | 8 +-- ..._context_2_shoulda_matchers_6.gemfile.lock | 8 +-- gemfiles/jruby_9.4_rspec_3.gemfile.lock | 8 +-- ...uby_9.4_selenium_4_capybara_3.gemfile.lock | 8 +-- gemfiles/jruby_9.4_timecop_0.gemfile.lock | 8 +-- .../ruby_2.7_activesupport_4.gemfile.lock | 8 +-- .../ruby_2.7_activesupport_5.gemfile.lock | 8 +-- .../ruby_2.7_activesupport_6.gemfile.lock | 8 +-- .../ruby_2.7_activesupport_7.gemfile.lock | 8 +-- ...uby_2.7_ci_queue_0_minitest_5.gemfile.lock | 8 +-- .../ruby_2.7_ci_queue_0_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_2.7_cucumber_3.gemfile.lock | 8 +-- gemfiles/ruby_2.7_cucumber_4.gemfile.lock | 8 +-- gemfiles/ruby_2.7_cucumber_5.gemfile.lock | 8 +-- gemfiles/ruby_2.7_cucumber_6.gemfile.lock | 8 +-- gemfiles/ruby_2.7_cucumber_7.gemfile.lock | 8 +-- gemfiles/ruby_2.7_cucumber_8.gemfile.lock | 8 +-- gemfiles/ruby_2.7_cucumber_9.gemfile.lock | 8 +-- ...by_2.7_knapsack_pro_7_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_2.7_minitest_5.gemfile.lock | 8 +-- gemfiles/ruby_2.7_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_2.7_timecop_0.gemfile.lock | 8 +-- .../ruby_3.0_activesupport_4.gemfile.lock | 8 +-- .../ruby_3.0_activesupport_5.gemfile.lock | 8 +-- .../ruby_3.0_activesupport_6.gemfile.lock | 8 +-- .../ruby_3.0_activesupport_7.gemfile.lock | 8 +-- ...uby_3.0_ci_queue_0_minitest_5.gemfile.lock | 8 +-- .../ruby_3.0_ci_queue_0_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_3.0_cucumber_3.gemfile.lock | 8 +-- gemfiles/ruby_3.0_cucumber_4.gemfile.lock | 8 +-- gemfiles/ruby_3.0_cucumber_5.gemfile.lock | 8 +-- gemfiles/ruby_3.0_cucumber_6.gemfile.lock | 8 +-- gemfiles/ruby_3.0_cucumber_7.gemfile.lock | 8 +-- gemfiles/ruby_3.0_cucumber_8.gemfile.lock | 8 +-- gemfiles/ruby_3.0_cucumber_9.gemfile.lock | 8 +-- ...by_3.0_knapsack_pro_7_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_3.0_minitest_5.gemfile.lock | 8 +-- gemfiles/ruby_3.0_rspec_3.gemfile.lock | 8 +-- ...uby_3.0_selenium_4_capybara_3.gemfile.lock | 8 +-- gemfiles/ruby_3.0_timecop_0.gemfile.lock | 8 +-- .../ruby_3.1_activesupport_4.gemfile.lock | 8 +-- .../ruby_3.1_activesupport_5.gemfile.lock | 8 +-- .../ruby_3.1_activesupport_6.gemfile.lock | 8 +-- .../ruby_3.1_activesupport_7.gemfile.lock | 8 +-- ...uby_3.1_ci_queue_0_minitest_5.gemfile.lock | 8 +-- .../ruby_3.1_ci_queue_0_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_3.1_cucumber_3.gemfile.lock | 8 +-- gemfiles/ruby_3.1_cucumber_4.gemfile.lock | 8 +-- gemfiles/ruby_3.1_cucumber_5.gemfile.lock | 8 +-- gemfiles/ruby_3.1_cucumber_6.gemfile.lock | 8 +-- gemfiles/ruby_3.1_cucumber_7.gemfile.lock | 8 +-- gemfiles/ruby_3.1_cucumber_8.gemfile.lock | 8 +-- gemfiles/ruby_3.1_cucumber_9.gemfile.lock | 8 +-- ...by_3.1_knapsack_pro_7_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_3.1_minitest_5.gemfile.lock | 8 +-- ..._context_2_shoulda_matchers_6.gemfile.lock | 8 +-- gemfiles/ruby_3.1_rspec_3.gemfile.lock | 8 +-- ...uby_3.1_selenium_4_capybara_3.gemfile.lock | 8 +-- gemfiles/ruby_3.1_timecop_0.gemfile.lock | 8 +-- .../ruby_3.2_activesupport_4.gemfile.lock | 8 +-- .../ruby_3.2_activesupport_5.gemfile.lock | 8 +-- .../ruby_3.2_activesupport_6.gemfile.lock | 8 +-- .../ruby_3.2_activesupport_7.gemfile.lock | 8 +-- ...uby_3.2_ci_queue_0_minitest_5.gemfile.lock | 8 +-- .../ruby_3.2_ci_queue_0_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_3.2_cucumber_3.gemfile.lock | 8 +-- gemfiles/ruby_3.2_cucumber_4.gemfile.lock | 8 +-- gemfiles/ruby_3.2_cucumber_5.gemfile.lock | 8 +-- gemfiles/ruby_3.2_cucumber_6.gemfile.lock | 8 +-- gemfiles/ruby_3.2_cucumber_7.gemfile.lock | 8 +-- gemfiles/ruby_3.2_cucumber_8.gemfile.lock | 8 +-- gemfiles/ruby_3.2_cucumber_9.gemfile.lock | 8 +-- ...by_3.2_knapsack_pro_7_rspec_3.gemfile.lock | 8 +-- gemfiles/ruby_3.2_minitest_5.gemfile.lock | 8 +-- ..._context_2_shoulda_matchers_6.gemfile.lock | 8 +-- gemfiles/ruby_3.2_rspec_3.gemfile.lock | 8 +-- ...uby_3.2_selenium_4_capybara_3.gemfile.lock | 8 +-- gemfiles/ruby_3.2_timecop_0.gemfile.lock | 8 +-- .../ruby_3.3_activesupport_4.gemfile.lock | 10 +-- .../ruby_3.3_activesupport_5.gemfile.lock | 10 +-- .../ruby_3.3_activesupport_6.gemfile.lock | 10 +-- .../ruby_3.3_activesupport_7.gemfile.lock | 10 +-- ...uby_3.3_ci_queue_0_minitest_5.gemfile.lock | 10 +-- .../ruby_3.3_ci_queue_0_rspec_3.gemfile.lock | 10 +-- gemfiles/ruby_3.3_cucumber_3.gemfile.lock | 10 +-- gemfiles/ruby_3.3_cucumber_4.gemfile.lock | 10 +-- gemfiles/ruby_3.3_cucumber_5.gemfile.lock | 10 +-- gemfiles/ruby_3.3_cucumber_6.gemfile.lock | 10 +-- gemfiles/ruby_3.3_cucumber_7.gemfile.lock | 10 +-- gemfiles/ruby_3.3_cucumber_8.gemfile.lock | 10 +-- gemfiles/ruby_3.3_cucumber_9.gemfile.lock | 10 +-- ...by_3.3_knapsack_pro_7_rspec_3.gemfile.lock | 10 +-- gemfiles/ruby_3.3_minitest_5.gemfile.lock | 10 +-- ..._context_2_shoulda_matchers_6.gemfile.lock | 10 +-- gemfiles/ruby_3.3_rspec_3.gemfile.lock | 10 +-- ...uby_3.3_selenium_4_capybara_3.gemfile.lock | 10 +-- gemfiles/ruby_3.3_timecop_0.gemfile.lock | 10 +-- lib/datadog/ci/configuration/components.rb | 3 + lib/datadog/ci/ext/telemetry.rb | 7 ++ lib/datadog/ci/test_visibility/component.rb | 65 +++++++++++++++---- lib/datadog/ci/test_visibility/telemetry.rb | 39 +++++++++++ lib/datadog/ci/utils/telemetry.rb | 2 +- sig/datadog/ci/ext/telemetry.rbs | 7 ++ sig/datadog/ci/test_visibility/component.rbs | 13 +++- sig/datadog/ci/test_visibility/telemetry.rbs | 17 +++++ .../ci/test_visibility/component_spec.rb | 1 + .../datadog/ci/transport/adapters/net_spec.rb | 2 +- static-analysis.datadog.yml | 2 +- tasks/appraisal.rake | 14 ++-- 125 files changed, 613 insertions(+), 489 deletions(-) create mode 100644 lib/datadog/ci/test_visibility/telemetry.rb create mode 100644 sig/datadog/ci/test_visibility/telemetry.rbs diff --git a/datadog-ci.gemspec b/datadog-ci.gemspec index 9f8e3a08..e9f920fb 100644 --- a/datadog-ci.gemspec +++ b/datadog-ci.gemspec @@ -41,7 +41,7 @@ Gem::Specification.new do |spec| spec.require_paths = ["lib"] - spec.add_dependency "datadog", "~> 2.0" + spec.add_dependency "datadog", "~> 2.2" spec.add_dependency "msgpack" spec.extensions = ["ext/datadog_cov/extconf.rb"] diff --git a/docs/DevelopmentGuide.md b/docs/DevelopmentGuide.md index e930ee00..206203bf 100644 --- a/docs/DevelopmentGuide.md +++ b/docs/DevelopmentGuide.md @@ -25,7 +25,7 @@ To start a development environment, choose a target Ruby version then run the fo cd ~/datadog-ci-rb # Create and start a Ruby 3.2 test environment with its dependencies -docker-compose run --rm datadog-ci-3.2 /bin/bash +docker compose run --rm datadog-ci-3.2 /bin/bash # Then inside the container (e.g. `root@2a73c6d8673e:/app`)... # Install the library dependencies diff --git a/gemfiles/jruby_9.4_activesupport_4.gemfile.lock b/gemfiles/jruby_9.4_activesupport_4.gemfile.lock index 06f53e06..38134a43 100644 --- a/gemfiles/jruby_9.4_activesupport_4.gemfile.lock +++ b/gemfiles/jruby_9.4_activesupport_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_activesupport_5.gemfile.lock b/gemfiles/jruby_9.4_activesupport_5.gemfile.lock index 2b284733..c95b9936 100644 --- a/gemfiles/jruby_9.4_activesupport_5.gemfile.lock +++ b/gemfiles/jruby_9.4_activesupport_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_activesupport_6.gemfile.lock b/gemfiles/jruby_9.4_activesupport_6.gemfile.lock index 64db528f..7d177276 100644 --- a/gemfiles/jruby_9.4_activesupport_6.gemfile.lock +++ b/gemfiles/jruby_9.4_activesupport_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -28,9 +28,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -42,7 +42,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_activesupport_7.gemfile.lock b/gemfiles/jruby_9.4_activesupport_7.gemfile.lock index 99669ae9..1b17824e 100644 --- a/gemfiles/jruby_9.4_activesupport_7.gemfile.lock +++ b/gemfiles/jruby_9.4_activesupport_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_ci_queue_0_minitest_5.gemfile.lock b/gemfiles/jruby_9.4_ci_queue_0_minitest_5.gemfile.lock index 4863c840..d148249d 100644 --- a/gemfiles/jruby_9.4_ci_queue_0_minitest_5.gemfile.lock +++ b/gemfiles/jruby_9.4_ci_queue_0_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -24,9 +24,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -36,7 +36,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_ci_queue_0_rspec_3.gemfile.lock b/gemfiles/jruby_9.4_ci_queue_0_rspec_3.gemfile.lock index 1713a651..29bcfa1c 100644 --- a/gemfiles/jruby_9.4_ci_queue_0_rspec_3.gemfile.lock +++ b/gemfiles/jruby_9.4_ci_queue_0_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -22,9 +22,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,7 +34,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_cucumber_3.gemfile.lock b/gemfiles/jruby_9.4_cucumber_3.gemfile.lock index a8b03f49..2a386e44 100644 --- a/gemfiles/jruby_9.4_cucumber_3.gemfile.lock +++ b/gemfiles/jruby_9.4_cucumber_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -39,9 +39,9 @@ GEM cucumber-expressions (6.0.1) cucumber-tag_expressions (1.1.1) cucumber-wire (0.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -52,7 +52,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_cucumber_4.gemfile.lock b/gemfiles/jruby_9.4_cucumber_4.gemfile.lock index 29b3cbf1..e9a6718e 100644 --- a/gemfiles/jruby_9.4_cucumber_4.gemfile.lock +++ b/gemfiles/jruby_9.4_cucumber_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 7.1, >= 7.1.0) cucumber-cucumber-expressions (~> 10.1, >= 10.1.0) cucumber-messages (~> 12.2, >= 12.2.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_cucumber_5.gemfile.lock b/gemfiles/jruby_9.4_cucumber_5.gemfile.lock index 648bdf9b..c92f2f47 100644 --- a/gemfiles/jruby_9.4_cucumber_5.gemfile.lock +++ b/gemfiles/jruby_9.4_cucumber_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 8.0, >= 8.0.1) cucumber-cucumber-expressions (~> 10.3, >= 10.3.0) cucumber-messages (~> 13.0, >= 13.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_cucumber_6.gemfile.lock b/gemfiles/jruby_9.4_cucumber_6.gemfile.lock index 661299f0..8fa01ffd 100644 --- a/gemfiles/jruby_9.4_cucumber_6.gemfile.lock +++ b/gemfiles/jruby_9.4_cucumber_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -60,9 +60,9 @@ GEM cucumber-core (~> 9.0, >= 9.0.1) cucumber-cucumber-expressions (~> 12.1, >= 12.1.1) cucumber-messages (~> 15.0, >= 15.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -74,7 +74,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_cucumber_7.gemfile.lock b/gemfiles/jruby_9.4_cucumber_7.gemfile.lock index 3a17a3c3..8a4c5261 100644 --- a/gemfiles/jruby_9.4_cucumber_7.gemfile.lock +++ b/gemfiles/jruby_9.4_cucumber_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -52,9 +52,9 @@ GEM cucumber-wire (6.2.1) cucumber-core (~> 10.1, >= 10.1.0) cucumber-cucumber-expressions (~> 14.0, >= 14.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -64,7 +64,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_cucumber_8.gemfile.lock b/gemfiles/jruby_9.4_cucumber_8.gemfile.lock index ba53ada9..c9316a05 100644 --- a/gemfiles/jruby_9.4_cucumber_8.gemfile.lock +++ b/gemfiles/jruby_9.4_cucumber_8.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -46,9 +46,9 @@ GEM cucumber-messages (~> 18.0, >= 18.0.0) cucumber-messages (18.0.0) cucumber-tag-expressions (4.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -58,7 +58,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_cucumber_9.gemfile.lock b/gemfiles/jruby_9.4_cucumber_9.gemfile.lock index 28e316f9..344e92b7 100644 --- a/gemfiles/jruby_9.4_cucumber_9.gemfile.lock +++ b/gemfiles/jruby_9.4_cucumber_9.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -47,9 +47,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -59,7 +59,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_knapsack_pro_7_rspec_3.gemfile.lock b/gemfiles/jruby_9.4_knapsack_pro_7_rspec_3.gemfile.lock index 5916862f..2f3e3133 100644 --- a/gemfiles/jruby_9.4_knapsack_pro_7_rspec_3.gemfile.lock +++ b/gemfiles/jruby_9.4_knapsack_pro_7_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -35,7 +35,7 @@ GEM knapsack_pro (7.6.0) rake language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_minitest_5.gemfile.lock b/gemfiles/jruby_9.4_minitest_5.gemfile.lock index 06c75fc5..e1ec7bac 100644 --- a/gemfiles/jruby_9.4_minitest_5.gemfile.lock +++ b/gemfiles/jruby_9.4_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock b/gemfiles/jruby_9.4_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock index 6bc082ef..e113412a 100644 --- a/gemfiles/jruby_9.4_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock +++ b/gemfiles/jruby_9.4_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_rspec_3.gemfile.lock b/gemfiles/jruby_9.4_rspec_3.gemfile.lock index 9aedfba2..174c700c 100644 --- a/gemfiles/jruby_9.4_rspec_3.gemfile.lock +++ b/gemfiles/jruby_9.4_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_selenium_4_capybara_3.gemfile.lock b/gemfiles/jruby_9.4_selenium_4_capybara_3.gemfile.lock index 08319d88..ea274e07 100644 --- a/gemfiles/jruby_9.4_selenium_4_capybara_3.gemfile.lock +++ b/gemfiles/jruby_9.4_selenium_4_capybara_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -57,9 +57,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -69,7 +69,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/jruby_9.4_timecop_0.gemfile.lock b/gemfiles/jruby_9.4_timecop_0.gemfile.lock index 0f57fffd..d695e50b 100644 --- a/gemfiles/jruby_9.4_timecop_0.gemfile.lock +++ b/gemfiles/jruby_9.4_timecop_0.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2-java) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) + libdatadog (10.0.0.1.0) libddwaf (1.14.0.0.0-java) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_activesupport_4.gemfile.lock b/gemfiles/ruby_2.7_activesupport_4.gemfile.lock index 6bb55be9..fe06a542 100644 --- a/gemfiles/ruby_2.7_activesupport_4.gemfile.lock +++ b/gemfiles/ruby_2.7_activesupport_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_activesupport_5.gemfile.lock b/gemfiles/ruby_2.7_activesupport_5.gemfile.lock index 4513d795..3cc8dc16 100644 --- a/gemfiles/ruby_2.7_activesupport_5.gemfile.lock +++ b/gemfiles/ruby_2.7_activesupport_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_activesupport_6.gemfile.lock b/gemfiles/ruby_2.7_activesupport_6.gemfile.lock index 8497c8ee..bf7bc8a7 100644 --- a/gemfiles/ruby_2.7_activesupport_6.gemfile.lock +++ b/gemfiles/ruby_2.7_activesupport_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -28,9 +28,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -42,7 +42,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_activesupport_7.gemfile.lock b/gemfiles/ruby_2.7_activesupport_7.gemfile.lock index b3e67b17..01baadef 100644 --- a/gemfiles/ruby_2.7_activesupport_7.gemfile.lock +++ b/gemfiles/ruby_2.7_activesupport_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_ci_queue_0_minitest_5.gemfile.lock b/gemfiles/ruby_2.7_ci_queue_0_minitest_5.gemfile.lock index 88f58173..7ed5dbf3 100644 --- a/gemfiles/ruby_2.7_ci_queue_0_minitest_5.gemfile.lock +++ b/gemfiles/ruby_2.7_ci_queue_0_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -24,9 +24,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -36,7 +36,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_ci_queue_0_rspec_3.gemfile.lock b/gemfiles/ruby_2.7_ci_queue_0_rspec_3.gemfile.lock index 3539983e..6e6a1bb1 100644 --- a/gemfiles/ruby_2.7_ci_queue_0_rspec_3.gemfile.lock +++ b/gemfiles/ruby_2.7_ci_queue_0_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -22,9 +22,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,7 +34,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_cucumber_3.gemfile.lock b/gemfiles/ruby_2.7_cucumber_3.gemfile.lock index afe39144..182e823b 100644 --- a/gemfiles/ruby_2.7_cucumber_3.gemfile.lock +++ b/gemfiles/ruby_2.7_cucumber_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -39,9 +39,9 @@ GEM cucumber-expressions (6.0.1) cucumber-tag_expressions (1.1.1) cucumber-wire (0.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -52,7 +52,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_cucumber_4.gemfile.lock b/gemfiles/ruby_2.7_cucumber_4.gemfile.lock index bcd2d814..ac37dc37 100644 --- a/gemfiles/ruby_2.7_cucumber_4.gemfile.lock +++ b/gemfiles/ruby_2.7_cucumber_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 7.1, >= 7.1.0) cucumber-cucumber-expressions (~> 10.1, >= 10.1.0) cucumber-messages (~> 12.2, >= 12.2.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_cucumber_5.gemfile.lock b/gemfiles/ruby_2.7_cucumber_5.gemfile.lock index 3850e772..28e8b1ce 100644 --- a/gemfiles/ruby_2.7_cucumber_5.gemfile.lock +++ b/gemfiles/ruby_2.7_cucumber_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 8.0, >= 8.0.1) cucumber-cucumber-expressions (~> 10.3, >= 10.3.0) cucumber-messages (~> 13.0, >= 13.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_cucumber_6.gemfile.lock b/gemfiles/ruby_2.7_cucumber_6.gemfile.lock index affb235b..35538b1b 100644 --- a/gemfiles/ruby_2.7_cucumber_6.gemfile.lock +++ b/gemfiles/ruby_2.7_cucumber_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -60,9 +60,9 @@ GEM cucumber-core (~> 9.0, >= 9.0.1) cucumber-cucumber-expressions (~> 12.1, >= 12.1.1) cucumber-messages (~> 15.0, >= 15.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -74,7 +74,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_cucumber_7.gemfile.lock b/gemfiles/ruby_2.7_cucumber_7.gemfile.lock index 4ba99b4d..5c973613 100644 --- a/gemfiles/ruby_2.7_cucumber_7.gemfile.lock +++ b/gemfiles/ruby_2.7_cucumber_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -52,9 +52,9 @@ GEM cucumber-wire (6.2.1) cucumber-core (~> 10.1, >= 10.1.0) cucumber-cucumber-expressions (~> 14.0, >= 14.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -64,7 +64,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_cucumber_8.gemfile.lock b/gemfiles/ruby_2.7_cucumber_8.gemfile.lock index f918d264..4739a0b0 100644 --- a/gemfiles/ruby_2.7_cucumber_8.gemfile.lock +++ b/gemfiles/ruby_2.7_cucumber_8.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -46,9 +46,9 @@ GEM cucumber-messages (~> 18.0, >= 18.0.0) cucumber-messages (18.0.0) cucumber-tag-expressions (4.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -58,7 +58,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_cucumber_9.gemfile.lock b/gemfiles/ruby_2.7_cucumber_9.gemfile.lock index 233e9f64..c228e69c 100644 --- a/gemfiles/ruby_2.7_cucumber_9.gemfile.lock +++ b/gemfiles/ruby_2.7_cucumber_9.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -47,9 +47,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -59,7 +59,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_knapsack_pro_7_rspec_3.gemfile.lock b/gemfiles/ruby_2.7_knapsack_pro_7_rspec_3.gemfile.lock index c2e342b4..40d3c894 100644 --- a/gemfiles/ruby_2.7_knapsack_pro_7_rspec_3.gemfile.lock +++ b/gemfiles/ruby_2.7_knapsack_pro_7_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -35,7 +35,7 @@ GEM knapsack_pro (7.6.0) rake language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_minitest_5.gemfile.lock b/gemfiles/ruby_2.7_minitest_5.gemfile.lock index 4dc38e67..f9a427f4 100644 --- a/gemfiles/ruby_2.7_minitest_5.gemfile.lock +++ b/gemfiles/ruby_2.7_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_rspec_3.gemfile.lock b/gemfiles/ruby_2.7_rspec_3.gemfile.lock index b65ae416..e204f4ea 100644 --- a/gemfiles/ruby_2.7_rspec_3.gemfile.lock +++ b/gemfiles/ruby_2.7_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_2.7_timecop_0.gemfile.lock b/gemfiles/ruby_2.7_timecop_0.gemfile.lock index 21d6781f..0374becd 100644 --- a/gemfiles/ruby_2.7_timecop_0.gemfile.lock +++ b/gemfiles/ruby_2.7_timecop_0.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_activesupport_4.gemfile.lock b/gemfiles/ruby_3.0_activesupport_4.gemfile.lock index 6bb55be9..fe06a542 100644 --- a/gemfiles/ruby_3.0_activesupport_4.gemfile.lock +++ b/gemfiles/ruby_3.0_activesupport_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_activesupport_5.gemfile.lock b/gemfiles/ruby_3.0_activesupport_5.gemfile.lock index 4513d795..3cc8dc16 100644 --- a/gemfiles/ruby_3.0_activesupport_5.gemfile.lock +++ b/gemfiles/ruby_3.0_activesupport_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_activesupport_6.gemfile.lock b/gemfiles/ruby_3.0_activesupport_6.gemfile.lock index 8497c8ee..bf7bc8a7 100644 --- a/gemfiles/ruby_3.0_activesupport_6.gemfile.lock +++ b/gemfiles/ruby_3.0_activesupport_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -28,9 +28,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -42,7 +42,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_activesupport_7.gemfile.lock b/gemfiles/ruby_3.0_activesupport_7.gemfile.lock index b3e67b17..01baadef 100644 --- a/gemfiles/ruby_3.0_activesupport_7.gemfile.lock +++ b/gemfiles/ruby_3.0_activesupport_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_ci_queue_0_minitest_5.gemfile.lock b/gemfiles/ruby_3.0_ci_queue_0_minitest_5.gemfile.lock index 88f58173..7ed5dbf3 100644 --- a/gemfiles/ruby_3.0_ci_queue_0_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.0_ci_queue_0_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -24,9 +24,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -36,7 +36,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_ci_queue_0_rspec_3.gemfile.lock b/gemfiles/ruby_3.0_ci_queue_0_rspec_3.gemfile.lock index 3539983e..6e6a1bb1 100644 --- a/gemfiles/ruby_3.0_ci_queue_0_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.0_ci_queue_0_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -22,9 +22,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,7 +34,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_cucumber_3.gemfile.lock b/gemfiles/ruby_3.0_cucumber_3.gemfile.lock index afe39144..182e823b 100644 --- a/gemfiles/ruby_3.0_cucumber_3.gemfile.lock +++ b/gemfiles/ruby_3.0_cucumber_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -39,9 +39,9 @@ GEM cucumber-expressions (6.0.1) cucumber-tag_expressions (1.1.1) cucumber-wire (0.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -52,7 +52,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_cucumber_4.gemfile.lock b/gemfiles/ruby_3.0_cucumber_4.gemfile.lock index bcd2d814..ac37dc37 100644 --- a/gemfiles/ruby_3.0_cucumber_4.gemfile.lock +++ b/gemfiles/ruby_3.0_cucumber_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 7.1, >= 7.1.0) cucumber-cucumber-expressions (~> 10.1, >= 10.1.0) cucumber-messages (~> 12.2, >= 12.2.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_cucumber_5.gemfile.lock b/gemfiles/ruby_3.0_cucumber_5.gemfile.lock index 3850e772..28e8b1ce 100644 --- a/gemfiles/ruby_3.0_cucumber_5.gemfile.lock +++ b/gemfiles/ruby_3.0_cucumber_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 8.0, >= 8.0.1) cucumber-cucumber-expressions (~> 10.3, >= 10.3.0) cucumber-messages (~> 13.0, >= 13.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_cucumber_6.gemfile.lock b/gemfiles/ruby_3.0_cucumber_6.gemfile.lock index affb235b..35538b1b 100644 --- a/gemfiles/ruby_3.0_cucumber_6.gemfile.lock +++ b/gemfiles/ruby_3.0_cucumber_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -60,9 +60,9 @@ GEM cucumber-core (~> 9.0, >= 9.0.1) cucumber-cucumber-expressions (~> 12.1, >= 12.1.1) cucumber-messages (~> 15.0, >= 15.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -74,7 +74,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_cucumber_7.gemfile.lock b/gemfiles/ruby_3.0_cucumber_7.gemfile.lock index 4ba99b4d..5c973613 100644 --- a/gemfiles/ruby_3.0_cucumber_7.gemfile.lock +++ b/gemfiles/ruby_3.0_cucumber_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -52,9 +52,9 @@ GEM cucumber-wire (6.2.1) cucumber-core (~> 10.1, >= 10.1.0) cucumber-cucumber-expressions (~> 14.0, >= 14.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -64,7 +64,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_cucumber_8.gemfile.lock b/gemfiles/ruby_3.0_cucumber_8.gemfile.lock index f918d264..4739a0b0 100644 --- a/gemfiles/ruby_3.0_cucumber_8.gemfile.lock +++ b/gemfiles/ruby_3.0_cucumber_8.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -46,9 +46,9 @@ GEM cucumber-messages (~> 18.0, >= 18.0.0) cucumber-messages (18.0.0) cucumber-tag-expressions (4.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -58,7 +58,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_cucumber_9.gemfile.lock b/gemfiles/ruby_3.0_cucumber_9.gemfile.lock index 233e9f64..c228e69c 100644 --- a/gemfiles/ruby_3.0_cucumber_9.gemfile.lock +++ b/gemfiles/ruby_3.0_cucumber_9.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -47,9 +47,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -59,7 +59,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_knapsack_pro_7_rspec_3.gemfile.lock b/gemfiles/ruby_3.0_knapsack_pro_7_rspec_3.gemfile.lock index c2e342b4..40d3c894 100644 --- a/gemfiles/ruby_3.0_knapsack_pro_7_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.0_knapsack_pro_7_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -35,7 +35,7 @@ GEM knapsack_pro (7.6.0) rake language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_minitest_5.gemfile.lock b/gemfiles/ruby_3.0_minitest_5.gemfile.lock index 4dc38e67..f9a427f4 100644 --- a/gemfiles/ruby_3.0_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.0_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_rspec_3.gemfile.lock b/gemfiles/ruby_3.0_rspec_3.gemfile.lock index b65ae416..e204f4ea 100644 --- a/gemfiles/ruby_3.0_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.0_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_selenium_4_capybara_3.gemfile.lock b/gemfiles/ruby_3.0_selenium_4_capybara_3.gemfile.lock index bf0f3dc4..2ba6753f 100644 --- a/gemfiles/ruby_3.0_selenium_4_capybara_3.gemfile.lock +++ b/gemfiles/ruby_3.0_selenium_4_capybara_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -57,9 +57,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -69,7 +69,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.0_timecop_0.gemfile.lock b/gemfiles/ruby_3.0_timecop_0.gemfile.lock index 21d6781f..0374becd 100644 --- a/gemfiles/ruby_3.0_timecop_0.gemfile.lock +++ b/gemfiles/ruby_3.0_timecop_0.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_activesupport_4.gemfile.lock b/gemfiles/ruby_3.1_activesupport_4.gemfile.lock index 6bb55be9..fe06a542 100644 --- a/gemfiles/ruby_3.1_activesupport_4.gemfile.lock +++ b/gemfiles/ruby_3.1_activesupport_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_activesupport_5.gemfile.lock b/gemfiles/ruby_3.1_activesupport_5.gemfile.lock index 4513d795..3cc8dc16 100644 --- a/gemfiles/ruby_3.1_activesupport_5.gemfile.lock +++ b/gemfiles/ruby_3.1_activesupport_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_activesupport_6.gemfile.lock b/gemfiles/ruby_3.1_activesupport_6.gemfile.lock index 8497c8ee..bf7bc8a7 100644 --- a/gemfiles/ruby_3.1_activesupport_6.gemfile.lock +++ b/gemfiles/ruby_3.1_activesupport_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -28,9 +28,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -42,7 +42,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_activesupport_7.gemfile.lock b/gemfiles/ruby_3.1_activesupport_7.gemfile.lock index b3e67b17..01baadef 100644 --- a/gemfiles/ruby_3.1_activesupport_7.gemfile.lock +++ b/gemfiles/ruby_3.1_activesupport_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_ci_queue_0_minitest_5.gemfile.lock b/gemfiles/ruby_3.1_ci_queue_0_minitest_5.gemfile.lock index 88f58173..7ed5dbf3 100644 --- a/gemfiles/ruby_3.1_ci_queue_0_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.1_ci_queue_0_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -24,9 +24,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -36,7 +36,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_ci_queue_0_rspec_3.gemfile.lock b/gemfiles/ruby_3.1_ci_queue_0_rspec_3.gemfile.lock index 3539983e..6e6a1bb1 100644 --- a/gemfiles/ruby_3.1_ci_queue_0_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.1_ci_queue_0_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -22,9 +22,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,7 +34,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_cucumber_3.gemfile.lock b/gemfiles/ruby_3.1_cucumber_3.gemfile.lock index afe39144..182e823b 100644 --- a/gemfiles/ruby_3.1_cucumber_3.gemfile.lock +++ b/gemfiles/ruby_3.1_cucumber_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -39,9 +39,9 @@ GEM cucumber-expressions (6.0.1) cucumber-tag_expressions (1.1.1) cucumber-wire (0.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -52,7 +52,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_cucumber_4.gemfile.lock b/gemfiles/ruby_3.1_cucumber_4.gemfile.lock index bcd2d814..ac37dc37 100644 --- a/gemfiles/ruby_3.1_cucumber_4.gemfile.lock +++ b/gemfiles/ruby_3.1_cucumber_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 7.1, >= 7.1.0) cucumber-cucumber-expressions (~> 10.1, >= 10.1.0) cucumber-messages (~> 12.2, >= 12.2.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_cucumber_5.gemfile.lock b/gemfiles/ruby_3.1_cucumber_5.gemfile.lock index 3850e772..28e8b1ce 100644 --- a/gemfiles/ruby_3.1_cucumber_5.gemfile.lock +++ b/gemfiles/ruby_3.1_cucumber_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 8.0, >= 8.0.1) cucumber-cucumber-expressions (~> 10.3, >= 10.3.0) cucumber-messages (~> 13.0, >= 13.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_cucumber_6.gemfile.lock b/gemfiles/ruby_3.1_cucumber_6.gemfile.lock index affb235b..35538b1b 100644 --- a/gemfiles/ruby_3.1_cucumber_6.gemfile.lock +++ b/gemfiles/ruby_3.1_cucumber_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -60,9 +60,9 @@ GEM cucumber-core (~> 9.0, >= 9.0.1) cucumber-cucumber-expressions (~> 12.1, >= 12.1.1) cucumber-messages (~> 15.0, >= 15.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -74,7 +74,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_cucumber_7.gemfile.lock b/gemfiles/ruby_3.1_cucumber_7.gemfile.lock index 4ba99b4d..5c973613 100644 --- a/gemfiles/ruby_3.1_cucumber_7.gemfile.lock +++ b/gemfiles/ruby_3.1_cucumber_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -52,9 +52,9 @@ GEM cucumber-wire (6.2.1) cucumber-core (~> 10.1, >= 10.1.0) cucumber-cucumber-expressions (~> 14.0, >= 14.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -64,7 +64,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_cucumber_8.gemfile.lock b/gemfiles/ruby_3.1_cucumber_8.gemfile.lock index f918d264..4739a0b0 100644 --- a/gemfiles/ruby_3.1_cucumber_8.gemfile.lock +++ b/gemfiles/ruby_3.1_cucumber_8.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -46,9 +46,9 @@ GEM cucumber-messages (~> 18.0, >= 18.0.0) cucumber-messages (18.0.0) cucumber-tag-expressions (4.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -58,7 +58,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_cucumber_9.gemfile.lock b/gemfiles/ruby_3.1_cucumber_9.gemfile.lock index 233e9f64..c228e69c 100644 --- a/gemfiles/ruby_3.1_cucumber_9.gemfile.lock +++ b/gemfiles/ruby_3.1_cucumber_9.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -47,9 +47,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -59,7 +59,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_knapsack_pro_7_rspec_3.gemfile.lock b/gemfiles/ruby_3.1_knapsack_pro_7_rspec_3.gemfile.lock index c2e342b4..40d3c894 100644 --- a/gemfiles/ruby_3.1_knapsack_pro_7_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.1_knapsack_pro_7_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -35,7 +35,7 @@ GEM knapsack_pro (7.6.0) rake language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_minitest_5.gemfile.lock b/gemfiles/ruby_3.1_minitest_5.gemfile.lock index 4dc38e67..f9a427f4 100644 --- a/gemfiles/ruby_3.1_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.1_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock b/gemfiles/ruby_3.1_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock index 61659329..bd180617 100644 --- a/gemfiles/ruby_3.1_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock +++ b/gemfiles/ruby_3.1_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_rspec_3.gemfile.lock b/gemfiles/ruby_3.1_rspec_3.gemfile.lock index b65ae416..e204f4ea 100644 --- a/gemfiles/ruby_3.1_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.1_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_selenium_4_capybara_3.gemfile.lock b/gemfiles/ruby_3.1_selenium_4_capybara_3.gemfile.lock index bf0f3dc4..2ba6753f 100644 --- a/gemfiles/ruby_3.1_selenium_4_capybara_3.gemfile.lock +++ b/gemfiles/ruby_3.1_selenium_4_capybara_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -57,9 +57,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -69,7 +69,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.1_timecop_0.gemfile.lock b/gemfiles/ruby_3.1_timecop_0.gemfile.lock index 21d6781f..0374becd 100644 --- a/gemfiles/ruby_3.1_timecop_0.gemfile.lock +++ b/gemfiles/ruby_3.1_timecop_0.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_activesupport_4.gemfile.lock b/gemfiles/ruby_3.2_activesupport_4.gemfile.lock index 6bb55be9..fe06a542 100644 --- a/gemfiles/ruby_3.2_activesupport_4.gemfile.lock +++ b/gemfiles/ruby_3.2_activesupport_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_activesupport_5.gemfile.lock b/gemfiles/ruby_3.2_activesupport_5.gemfile.lock index 4513d795..3cc8dc16 100644 --- a/gemfiles/ruby_3.2_activesupport_5.gemfile.lock +++ b/gemfiles/ruby_3.2_activesupport_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -41,7 +41,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_activesupport_6.gemfile.lock b/gemfiles/ruby_3.2_activesupport_6.gemfile.lock index 8497c8ee..bf7bc8a7 100644 --- a/gemfiles/ruby_3.2_activesupport_6.gemfile.lock +++ b/gemfiles/ruby_3.2_activesupport_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -28,9 +28,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -42,7 +42,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_activesupport_7.gemfile.lock b/gemfiles/ruby_3.2_activesupport_7.gemfile.lock index b3e67b17..01baadef 100644 --- a/gemfiles/ruby_3.2_activesupport_7.gemfile.lock +++ b/gemfiles/ruby_3.2_activesupport_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_ci_queue_0_minitest_5.gemfile.lock b/gemfiles/ruby_3.2_ci_queue_0_minitest_5.gemfile.lock index 88f58173..7ed5dbf3 100644 --- a/gemfiles/ruby_3.2_ci_queue_0_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.2_ci_queue_0_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -24,9 +24,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -36,7 +36,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_ci_queue_0_rspec_3.gemfile.lock b/gemfiles/ruby_3.2_ci_queue_0_rspec_3.gemfile.lock index 3539983e..6e6a1bb1 100644 --- a/gemfiles/ruby_3.2_ci_queue_0_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.2_ci_queue_0_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -22,9 +22,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,7 +34,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_cucumber_3.gemfile.lock b/gemfiles/ruby_3.2_cucumber_3.gemfile.lock index afe39144..182e823b 100644 --- a/gemfiles/ruby_3.2_cucumber_3.gemfile.lock +++ b/gemfiles/ruby_3.2_cucumber_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -39,9 +39,9 @@ GEM cucumber-expressions (6.0.1) cucumber-tag_expressions (1.1.1) cucumber-wire (0.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -52,7 +52,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_cucumber_4.gemfile.lock b/gemfiles/ruby_3.2_cucumber_4.gemfile.lock index bcd2d814..ac37dc37 100644 --- a/gemfiles/ruby_3.2_cucumber_4.gemfile.lock +++ b/gemfiles/ruby_3.2_cucumber_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 7.1, >= 7.1.0) cucumber-cucumber-expressions (~> 10.1, >= 10.1.0) cucumber-messages (~> 12.2, >= 12.2.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_cucumber_5.gemfile.lock b/gemfiles/ruby_3.2_cucumber_5.gemfile.lock index 3850e772..28e8b1ce 100644 --- a/gemfiles/ruby_3.2_cucumber_5.gemfile.lock +++ b/gemfiles/ruby_3.2_cucumber_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 8.0, >= 8.0.1) cucumber-cucumber-expressions (~> 10.3, >= 10.3.0) cucumber-messages (~> 13.0, >= 13.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -73,7 +73,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_cucumber_6.gemfile.lock b/gemfiles/ruby_3.2_cucumber_6.gemfile.lock index affb235b..35538b1b 100644 --- a/gemfiles/ruby_3.2_cucumber_6.gemfile.lock +++ b/gemfiles/ruby_3.2_cucumber_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -60,9 +60,9 @@ GEM cucumber-core (~> 9.0, >= 9.0.1) cucumber-cucumber-expressions (~> 12.1, >= 12.1.1) cucumber-messages (~> 15.0, >= 15.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -74,7 +74,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_cucumber_7.gemfile.lock b/gemfiles/ruby_3.2_cucumber_7.gemfile.lock index 4ba99b4d..5c973613 100644 --- a/gemfiles/ruby_3.2_cucumber_7.gemfile.lock +++ b/gemfiles/ruby_3.2_cucumber_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -52,9 +52,9 @@ GEM cucumber-wire (6.2.1) cucumber-core (~> 10.1, >= 10.1.0) cucumber-cucumber-expressions (~> 14.0, >= 14.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -64,7 +64,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_cucumber_8.gemfile.lock b/gemfiles/ruby_3.2_cucumber_8.gemfile.lock index f918d264..4739a0b0 100644 --- a/gemfiles/ruby_3.2_cucumber_8.gemfile.lock +++ b/gemfiles/ruby_3.2_cucumber_8.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -46,9 +46,9 @@ GEM cucumber-messages (~> 18.0, >= 18.0.0) cucumber-messages (18.0.0) cucumber-tag-expressions (4.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -58,7 +58,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_cucumber_9.gemfile.lock b/gemfiles/ruby_3.2_cucumber_9.gemfile.lock index 233e9f64..c228e69c 100644 --- a/gemfiles/ruby_3.2_cucumber_9.gemfile.lock +++ b/gemfiles/ruby_3.2_cucumber_9.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -47,9 +47,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -59,7 +59,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_knapsack_pro_7_rspec_3.gemfile.lock b/gemfiles/ruby_3.2_knapsack_pro_7_rspec_3.gemfile.lock index c2e342b4..40d3c894 100644 --- a/gemfiles/ruby_3.2_knapsack_pro_7_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.2_knapsack_pro_7_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -35,7 +35,7 @@ GEM knapsack_pro (7.6.0) rake language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_minitest_5.gemfile.lock b/gemfiles/ruby_3.2_minitest_5.gemfile.lock index 4dc38e67..f9a427f4 100644 --- a/gemfiles/ruby_3.2_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.2_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock b/gemfiles/ruby_3.2_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock index 61659329..bd180617 100644 --- a/gemfiles/ruby_3.2_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock +++ b/gemfiles/ruby_3.2_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -49,7 +49,7 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_rspec_3.gemfile.lock b/gemfiles/ruby_3.2_rspec_3.gemfile.lock index b65ae416..e204f4ea 100644 --- a/gemfiles/ruby_3.2_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.2_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_selenium_4_capybara_3.gemfile.lock b/gemfiles/ruby_3.2_selenium_4_capybara_3.gemfile.lock index bf0f3dc4..2ba6753f 100644 --- a/gemfiles/ruby_3.2_selenium_4_capybara_3.gemfile.lock +++ b/gemfiles/ruby_3.2_selenium_4_capybara_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -57,9 +57,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -69,7 +69,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.2_timecop_0.gemfile.lock b/gemfiles/ruby_3.2_timecop_0.gemfile.lock index 21d6781f..0374becd 100644 --- a/gemfiles/ruby_3.2_timecop_0.gemfile.lock +++ b/gemfiles/ruby_3.2_timecop_0.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -33,7 +33,7 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) lint_roller (1.1.0) diff --git a/gemfiles/ruby_3.3_activesupport_4.gemfile.lock b/gemfiles/ruby_3.3_activesupport_4.gemfile.lock index ec61f38f..52656e7c 100644 --- a/gemfiles/ruby_3.3_activesupport_4.gemfile.lock +++ b/gemfiles/ruby_3.3_activesupport_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -42,8 +42,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_activesupport_5.gemfile.lock b/gemfiles/ruby_3.3_activesupport_5.gemfile.lock index 09af459a..47878a5b 100644 --- a/gemfiles/ruby_3.3_activesupport_5.gemfile.lock +++ b/gemfiles/ruby_3.3_activesupport_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -27,9 +27,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -42,8 +42,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_activesupport_6.gemfile.lock b/gemfiles/ruby_3.3_activesupport_6.gemfile.lock index 74d58000..241fd4d4 100644 --- a/gemfiles/ruby_3.3_activesupport_6.gemfile.lock +++ b/gemfiles/ruby_3.3_activesupport_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -28,9 +28,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -43,8 +43,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_activesupport_7.gemfile.lock b/gemfiles/ruby_3.3_activesupport_7.gemfile.lock index 8586ff1b..6048e577 100644 --- a/gemfiles/ruby_3.3_activesupport_7.gemfile.lock +++ b/gemfiles/ruby_3.3_activesupport_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -50,8 +50,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_ci_queue_0_minitest_5.gemfile.lock b/gemfiles/ruby_3.3_ci_queue_0_minitest_5.gemfile.lock index aeb92127..1974eeb6 100644 --- a/gemfiles/ruby_3.3_ci_queue_0_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.3_ci_queue_0_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -24,9 +24,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -37,8 +37,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_ci_queue_0_rspec_3.gemfile.lock b/gemfiles/ruby_3.3_ci_queue_0_rspec_3.gemfile.lock index 8496c7a9..4534998e 100644 --- a/gemfiles/ruby_3.3_ci_queue_0_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.3_ci_queue_0_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -22,9 +22,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -35,8 +35,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_cucumber_3.gemfile.lock b/gemfiles/ruby_3.3_cucumber_3.gemfile.lock index 1f3f0d18..55f461da 100644 --- a/gemfiles/ruby_3.3_cucumber_3.gemfile.lock +++ b/gemfiles/ruby_3.3_cucumber_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -39,9 +39,9 @@ GEM cucumber-expressions (6.0.1) cucumber-tag_expressions (1.1.1) cucumber-wire (0.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -53,8 +53,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_cucumber_4.gemfile.lock b/gemfiles/ruby_3.3_cucumber_4.gemfile.lock index 24164677..3fdfcf27 100644 --- a/gemfiles/ruby_3.3_cucumber_4.gemfile.lock +++ b/gemfiles/ruby_3.3_cucumber_4.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -55,9 +55,9 @@ GEM cucumber-core (~> 7.0, >= 7.0.0) cucumber-cucumber-expressions (~> 10.1, >= 10.1.0) cucumber-messages (~> 12.1, >= 12.1.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -70,8 +70,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_cucumber_5.gemfile.lock b/gemfiles/ruby_3.3_cucumber_5.gemfile.lock index 272a1bd6..7b17e03f 100644 --- a/gemfiles/ruby_3.3_cucumber_5.gemfile.lock +++ b/gemfiles/ruby_3.3_cucumber_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -59,9 +59,9 @@ GEM cucumber-core (~> 8.0, >= 8.0.1) cucumber-cucumber-expressions (~> 10.3, >= 10.3.0) cucumber-messages (~> 13.0, >= 13.0.1) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -74,8 +74,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_cucumber_6.gemfile.lock b/gemfiles/ruby_3.3_cucumber_6.gemfile.lock index 785754cb..9dc202b3 100644 --- a/gemfiles/ruby_3.3_cucumber_6.gemfile.lock +++ b/gemfiles/ruby_3.3_cucumber_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -60,9 +60,9 @@ GEM cucumber-core (~> 9.0, >= 9.0.1) cucumber-cucumber-expressions (~> 12.1, >= 12.1.1) cucumber-messages (~> 15.0, >= 15.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -75,8 +75,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_cucumber_7.gemfile.lock b/gemfiles/ruby_3.3_cucumber_7.gemfile.lock index 78867647..ab57872d 100644 --- a/gemfiles/ruby_3.3_cucumber_7.gemfile.lock +++ b/gemfiles/ruby_3.3_cucumber_7.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -52,9 +52,9 @@ GEM cucumber-wire (6.2.1) cucumber-core (~> 10.1, >= 10.1.0) cucumber-cucumber-expressions (~> 14.0, >= 14.0.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -65,8 +65,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_cucumber_8.gemfile.lock b/gemfiles/ruby_3.3_cucumber_8.gemfile.lock index 2b1ac39a..f5a71424 100644 --- a/gemfiles/ruby_3.3_cucumber_8.gemfile.lock +++ b/gemfiles/ruby_3.3_cucumber_8.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -46,9 +46,9 @@ GEM cucumber-messages (~> 18.0, >= 18.0.0) cucumber-messages (18.0.0) cucumber-tag-expressions (4.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -59,8 +59,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_cucumber_9.gemfile.lock b/gemfiles/ruby_3.3_cucumber_9.gemfile.lock index 21d3880b..7476817a 100644 --- a/gemfiles/ruby_3.3_cucumber_9.gemfile.lock +++ b/gemfiles/ruby_3.3_cucumber_9.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -47,9 +47,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -60,8 +60,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_knapsack_pro_7_rspec_3.gemfile.lock b/gemfiles/ruby_3.3_knapsack_pro_7_rspec_3.gemfile.lock index bd033573..aa159be4 100644 --- a/gemfiles/ruby_3.3_knapsack_pro_7_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.3_knapsack_pro_7_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -36,8 +36,8 @@ GEM knapsack_pro (7.6.0) rake language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_minitest_5.gemfile.lock b/gemfiles/ruby_3.3_minitest_5.gemfile.lock index 2623121d..814f67d1 100644 --- a/gemfiles/ruby_3.3_minitest_5.gemfile.lock +++ b/gemfiles/ruby_3.3_minitest_5.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,8 +34,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock b/gemfiles/ruby_3.3_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock index a9f72be7..eb829e99 100644 --- a/gemfiles/ruby_3.3_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock +++ b/gemfiles/ruby_3.3_minitest_5_shoulda_context_2_shoulda_matchers_6.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -34,9 +34,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -50,8 +50,8 @@ GEM concurrent-ruby (~> 1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_rspec_3.gemfile.lock b/gemfiles/ruby_3.3_rspec_3.gemfile.lock index bf923dc9..dd7d99bf 100644 --- a/gemfiles/ruby_3.3_rspec_3.gemfile.lock +++ b/gemfiles/ruby_3.3_rspec_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,8 +34,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_selenium_4_capybara_3.gemfile.lock b/gemfiles/ruby_3.3_selenium_4_capybara_3.gemfile.lock index ade1d21c..c8ac0b0c 100644 --- a/gemfiles/ruby_3.3_selenium_4_capybara_3.gemfile.lock +++ b/gemfiles/ruby_3.3_selenium_4_capybara_3.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -57,9 +57,9 @@ GEM cucumber-messages (> 19, < 25) cucumber-messages (22.0.0) cucumber-tag-expressions (6.1.0) - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -70,8 +70,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/gemfiles/ruby_3.3_timecop_0.gemfile.lock b/gemfiles/ruby_3.3_timecop_0.gemfile.lock index 227785c3..2ff3f1c7 100644 --- a/gemfiles/ruby_3.3_timecop_0.gemfile.lock +++ b/gemfiles/ruby_3.3_timecop_0.gemfile.lock @@ -2,7 +2,7 @@ PATH remote: .. specs: datadog-ci (1.2.0) - datadog (~> 2.0) + datadog (~> 2.2) msgpack GEM @@ -21,9 +21,9 @@ GEM crack (1.0.0) bigdecimal rexml - datadog (2.1.0) + datadog (2.2.0) debase-ruby_core_source (= 3.3.1) - libdatadog (~> 9.0.0.1.0) + libdatadog (~> 10.0.0.1.0) libddwaf (~> 1.14.0.0.0) msgpack debase-ruby_core_source (3.3.1) @@ -34,8 +34,8 @@ GEM hashdiff (1.1.0) json (2.7.2) language_server-protocol (3.17.0.3) - libdatadog (9.0.0.1.0) - libdatadog (9.0.0.1.0-aarch64-linux) + libdatadog (10.0.0.1.0) + libdatadog (10.0.0.1.0-aarch64-linux) libddwaf (1.14.0.0.0-aarch64-linux) ffi (~> 1.0) libddwaf (1.14.0.0.0-arm64-darwin) diff --git a/lib/datadog/ci/configuration/components.rb b/lib/datadog/ci/configuration/components.rb index d065336b..b43b2161 100644 --- a/lib/datadog/ci/configuration/components.rb +++ b/lib/datadog/ci/configuration/components.rb @@ -70,6 +70,9 @@ def activate_ci!(settings) env_enabled_value = ENV[Core::Telemetry::Ext::ENV_ENABLED] settings.telemetry.enabled = env_enabled_value.nil? || Utils::Parsing.convert_to_bool(env_enabled_value) + # REMOVE THIS + # settings.telemetry.agentless_enabled = true + # Test visibility uses its own remote settings settings.remote.enabled = false diff --git a/lib/datadog/ci/ext/telemetry.rb b/lib/datadog/ci/ext/telemetry.rb index 193d9c69..2fa0c3f7 100644 --- a/lib/datadog/ci/ext/telemetry.rb +++ b/lib/datadog/ci/ext/telemetry.rb @@ -79,6 +79,13 @@ module Telemetry TAG_PROVIDER = "provider" TAG_AUTO_INJECTED = "auto_injected" + module EventType + TEST = "test" + SUITE = "suite" + MODULE = "module" + SESSION = "session" + end + module Library BUILTIN = "builtin" end diff --git a/lib/datadog/ci/test_visibility/component.rb b/lib/datadog/ci/test_visibility/component.rb index 7d6d306a..c0172e04 100644 --- a/lib/datadog/ci/test_visibility/component.rb +++ b/lib/datadog/ci/test_visibility/component.rb @@ -8,6 +8,7 @@ require_relative "context/global" require_relative "context/local" +require_relative "telemetry" require_relative "../codeowners/parser" require_relative "../contrib/contrib" @@ -49,6 +50,8 @@ def initialize( @test_optimisation = test_optimisation @remote_settings_api = remote_settings_api @git_tree_upload_worker = git_tree_upload_worker + + @telemetry = TestVisibility::Telemetry.new end def shutdown! @@ -58,9 +61,6 @@ def shutdown! def start_test_session(service: nil, tags: {}) return skip_tracing unless test_suite_level_visibility_enabled - # finds and instruments additional test libraries that we support (ex: selenium-webdriver) - Contrib.auto_instrument_on_session_start! - @global_context.fetch_or_activate_test_session do tracer_span = start_datadog_tracer_span( "test.session", build_span_options(service, Ext::AppTypes::TYPE_TEST_SESSION) @@ -68,10 +68,7 @@ def start_test_session(service: nil, tags: {}) set_session_context(tags, tracer_span) test_session = build_test_session(tracer_span, tags) - - @git_tree_upload_worker.perform(test_session.git_repository_url) - configure_library(test_session) - + on_test_session_started(test_session) test_session end end @@ -88,7 +85,9 @@ def start_test_module(test_module_name, service: nil, tags: {}) ) set_module_context(tags, tracer_span) - build_test_module(tracer_span, tags) + test_module = build_test_module(tracer_span, tags) + on_test_module_started(test_module) + test_module end end @@ -105,7 +104,9 @@ def start_test_suite(test_suite_name, service: nil, tags: {}) ) set_suite_context(tags, span: tracer_span) - build_test_suite(tracer_span, tags) + test_suite = build_test_suite(tracer_span, tags) + on_test_suite_started(test_suite) + test_suite end end @@ -202,10 +203,16 @@ def deactivate_test_session end def deactivate_test_module + test_module = active_test_module + on_test_module_finished(test_module) if test_module + @global_context.deactivate_test_module! end def deactivate_test_suite(test_suite_name) + test_suite = active_test_suite(test_suite_name) + on_test_suite_finished(test_suite) if test_suite + @global_context.deactivate_test_suite!(test_suite_name) end @@ -402,19 +409,51 @@ def validate_test_suite_level_visibility_correctness(test) end end - # TODO: use kind of event system to notify about test finished? - def on_test_finished(test) - @test_optimisation.stop_coverage(test) - @test_optimisation.count_skipped_test(test) + # TODO: use kind of event system to notify about these events? + def on_test_session_started(test_session) + @telemetry.event_created(test_session) + + # finds and instruments additional test libraries that we support (ex: selenium-webdriver) + Contrib.auto_instrument_on_session_start! + + @git_tree_upload_worker.perform(test_session.git_repository_url) + configure_library(test_session) + end + + def on_test_module_started(test_module) + @telemetry.event_created(test_module) + end + + def on_test_suite_started(test_suite) + @telemetry.event_created(test_suite) end def on_test_started(test) + @telemetry.event_created(test) + @test_optimisation.mark_if_skippable(test) @test_optimisation.start_coverage(test) end def on_test_session_finished(test_session) @test_optimisation.write_test_session_tags(test_session) + + @telemetry.event_finished(test_session) + end + + def on_test_module_finished(test_module) + @telemetry.event_finished(test_module) + end + + def on_test_suite_finished(test_suite) + @telemetry.event_finished(test_suite) + end + + def on_test_finished(test) + @test_optimisation.stop_coverage(test) + @test_optimisation.count_skipped_test(test) + + @telemetry.event_finished(test) end end end diff --git a/lib/datadog/ci/test_visibility/telemetry.rb b/lib/datadog/ci/test_visibility/telemetry.rb new file mode 100644 index 00000000..bf8250f3 --- /dev/null +++ b/lib/datadog/ci/test_visibility/telemetry.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require_relative "../ext/app_types" +require_relative "../ext/telemetry" +require_relative "../ext/test" +require_relative "../utils/telemetry" + +module Datadog + module CI + module TestVisibility + # Telemetry for test visibility + class Telemetry + SPAN_TYPE_TO_TELEMETRY_EVENT_TYPE = { + Ext::AppTypes::TYPE_TEST => Ext::Telemetry::EventType::TEST, + Ext::AppTypes::TYPE_TEST_SUITE => Ext::Telemetry::EventType::SUITE, + Ext::AppTypes::TYPE_TEST_MODULE => Ext::Telemetry::EventType::MODULE, + Ext::AppTypes::TYPE_TEST_SESSION => Ext::Telemetry::EventType::SESSION + }.freeze + + def event_created(span) + Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_CREATED, 1, tags_from_span(span)) + end + + def event_finished(span) + Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_FINISHED, 1, tags_from_span(span)) + end + + private + + def tags_from_span(span) + { + Ext::Telemetry::TAG_EVENT_TYPE => SPAN_TYPE_TO_TELEMETRY_EVENT_TYPE.fetch(span.type, "unknown"), + Ext::Telemetry::TAG_TEST_FRAMEWORK => span.get_tag(Ext::Test::TAG_FRAMEWORK) + } + end + end + end + end +end diff --git a/lib/datadog/ci/utils/telemetry.rb b/lib/datadog/ci/utils/telemetry.rb index bebc8756..d4fbaaa1 100644 --- a/lib/datadog/ci/utils/telemetry.rb +++ b/lib/datadog/ci/utils/telemetry.rb @@ -15,7 +15,7 @@ def self.distribution(metric_name, value, tags = {}) end def self.telemetry - Datadog.send(:components).telemtry + Datadog.send(:components).telemetry end end end diff --git a/sig/datadog/ci/ext/telemetry.rbs b/sig/datadog/ci/ext/telemetry.rbs index bd787b89..d0deaa91 100644 --- a/sig/datadog/ci/ext/telemetry.rbs +++ b/sig/datadog/ci/ext/telemetry.rbs @@ -124,6 +124,13 @@ module Datadog TAG_AUTO_INJECTED: "auto_injected" + module EventType + TEST: "test" + SUITE: "suite" + MODULE: "module" + SESSION: "session" + end + module Library BUILTIN: "builtin" end diff --git a/sig/datadog/ci/test_visibility/component.rbs b/sig/datadog/ci/test_visibility/component.rbs index aa0b4870..ee8031c0 100644 --- a/sig/datadog/ci/test_visibility/component.rbs +++ b/sig/datadog/ci/test_visibility/component.rbs @@ -11,6 +11,7 @@ module Datadog @remote_settings_api: Datadog::CI::Transport::RemoteSettingsApi @codeowners: Datadog::CI::Codeowners::Matcher @git_tree_upload_worker: Datadog::CI::Worker + @telemetry: Datadog::CI::TestVisibility::Telemetry attr_reader environment_tags: Hash[String, String] attr_reader test_suite_level_visibility_enabled: bool @@ -92,11 +93,21 @@ module Datadog def validate_test_suite_level_visibility_correctness: (Datadog::CI::Test test) -> void - def on_test_finished: (Datadog::CI::Test test) -> void + def on_test_session_started: (Datadog::CI::TestSession test_session) -> void + + def on_test_module_started: (Datadog::CI::TestModule test_module) -> void + + def on_test_suite_started: (Datadog::CI::TestSuite test_suite) -> void def on_test_started: (Datadog::CI::Test test) -> void def on_test_session_finished: (Datadog::CI::TestSession test_session) -> void + + def on_test_module_finished: (Datadog::CI::TestModule test_module) -> void + + def on_test_suite_finished: (Datadog::CI::TestSuite test_suite) -> void + + def on_test_finished: (Datadog::CI::Test test) -> void end end end diff --git a/sig/datadog/ci/test_visibility/telemetry.rbs b/sig/datadog/ci/test_visibility/telemetry.rbs new file mode 100644 index 00000000..a7934307 --- /dev/null +++ b/sig/datadog/ci/test_visibility/telemetry.rbs @@ -0,0 +1,17 @@ +module Datadog + module CI + module TestVisibility + class Telemetry + SPAN_TYPE_TO_TELEMETRY_EVENT_TYPE: ::Hash[String, String] + + def event_created: (Datadog::CI::Span span) -> void + + def event_finished: (Datadog::CI::Span span) -> void + + private + + def tags_from_span: (Datadog::CI::Span span) -> ::Hash[String, String] + end + end + end +end diff --git a/spec/datadog/ci/test_visibility/component_spec.rb b/spec/datadog/ci/test_visibility/component_spec.rb index 2b2d8d41..947ed809 100644 --- a/spec/datadog/ci/test_visibility/component_spec.rb +++ b/spec/datadog/ci/test_visibility/component_spec.rb @@ -408,6 +408,7 @@ let(:tags) { {"test.framework" => "my-framework"} } it "starts git metadata upload" do + expect(Datadog::CI::Git::LocalRepository).to receive(:git_commits).and_return(["dcc6f4b112b1f4f21a22deae586f67dc637ba77e"]) expect(Datadog::CI::Git::SearchCommits).to receive(:new).and_return(search_commits) expect(search_commits).to receive(:call) do |repo_url, commits| expect(repo_url).to eq("git@github.com:DataDog/datadog-ci-rb.git") diff --git a/spec/datadog/ci/transport/adapters/net_spec.rb b/spec/datadog/ci/transport/adapters/net_spec.rb index 3e0d0570..13fdf6c7 100644 --- a/spec/datadog/ci/transport/adapters/net_spec.rb +++ b/spec/datadog/ci/transport/adapters/net_spec.rb @@ -99,7 +99,7 @@ end context "with webmock" do - let(:hostname) { "localhost" } + let(:hostname) { "127.0.0.1" } let(:timeout) { 0.5 } let(:verb) { :post } let(:expected_error) do diff --git a/static-analysis.datadog.yml b/static-analysis.datadog.yml index 9a7ffd51..1a184d5e 100644 --- a/static-analysis.datadog.yml +++ b/static-analysis.datadog.yml @@ -12,7 +12,7 @@ rulesets: - '**' percent-w: ignore: - - spec/**/* + - '**' no-optional-hash-params: ignore: - '**' diff --git a/tasks/appraisal.rake b/tasks/appraisal.rake index 274ade41..ae53c4f7 100644 --- a/tasks/appraisal.rake +++ b/tasks/appraisal.rake @@ -31,12 +31,12 @@ namespace :appraisal do # rubocop:disable Metrics/BlockLength def docker(ruby_version, cmd) [ - "docker-compose", "run", + "docker", "compose", "run", "--no-deps", # don't start services "-e", "APPRAISAL_GROUP", # pass appraisal group if defined "-e", "APPRAISAL_SKIP_BUNDLE_CHECK", # pass appraisal check skip if defined "--rm", # clean up container - "datadog-ci-#{ruby_version}", # use specific ruby engine and version + "datadog-ci-#{ruby_version}", # use specific ruby engine and version "/bin/bash", "-c", "'#{cmd.join(" ")}'" # call command in bash ] end @@ -54,7 +54,7 @@ namespace :appraisal do # rubocop:disable Metrics/BlockLength cmd << ["gem", "install", "bundler", "-v", bundler_version(ruby_version)] if bundler_version(ruby_version) cmd << [*bundle(ruby_version), "config", "without", "check"] cmd << [*bundle(ruby_version), "install"] - cmd << [*bundle(ruby_version), "exec", "appraisal", "generate"] + cmd << ["bundle", "exec", "appraisal", "generate"] cmd = cmd.map { |c| c << "&&" }.flatten.tap(&:pop) @@ -73,8 +73,8 @@ namespace :appraisal do # rubocop:disable Metrics/BlockLength cmd << ["gem", "install", "bundler", "-v", bundler_version(ruby_version)] if bundler_version(ruby_version) cmd << [*bundle(ruby_version), "config", "without", "check"] cmd << [*bundle(ruby_version), "install"] - cmd << [*bundle(ruby_version), "exec", "appraisal", "generate"] - cmd << [*bundle(ruby_version), "exec", "appraisal", "install"] + cmd << ["bundle", "exec", "appraisal", "generate"] + cmd << ["bundle", "exec", "appraisal", "install"] cmd = cmd.map { |c| c << "&&" }.flatten.tap(&:pop) @@ -93,8 +93,8 @@ namespace :appraisal do # rubocop:disable Metrics/BlockLength cmd << ["gem", "install", "bundler", "-v", bundler_version(ruby_version)] if bundler_version(ruby_version) cmd << [*bundle(ruby_version), "config", "without", "check"] cmd << [*bundle(ruby_version), "install"] - cmd << [*bundle(ruby_version), "exec", "appraisal", "generate"] - cmd << [*bundle(ruby_version), "exec", "appraisal", "update"] + cmd << ["bundle", "exec", "appraisal", "generate"] + cmd << ["bundle", "exec", "appraisal", "update"] cmd = cmd.map { |c| c << "&&" }.flatten.tap(&:pop) From 94ae5783a14946ea93a509db51f7b120c09a7e7e Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 23 Jul 2024 10:44:19 +0200 Subject: [PATCH 6/8] make telemetry helpers for test visibility stateless --- lib/datadog/ci/test_visibility/component.rb | 18 ++++++++---------- lib/datadog/ci/test_visibility/telemetry.rb | 14 ++++++-------- sig/datadog/ci/test_visibility/component.rbs | 1 - sig/datadog/ci/test_visibility/telemetry.rbs | 10 ++++------ 4 files changed, 18 insertions(+), 25 deletions(-) diff --git a/lib/datadog/ci/test_visibility/component.rb b/lib/datadog/ci/test_visibility/component.rb index c0172e04..112d7a63 100644 --- a/lib/datadog/ci/test_visibility/component.rb +++ b/lib/datadog/ci/test_visibility/component.rb @@ -50,8 +50,6 @@ def initialize( @test_optimisation = test_optimisation @remote_settings_api = remote_settings_api @git_tree_upload_worker = git_tree_upload_worker - - @telemetry = TestVisibility::Telemetry.new end def shutdown! @@ -411,7 +409,7 @@ def validate_test_suite_level_visibility_correctness(test) # TODO: use kind of event system to notify about these events? def on_test_session_started(test_session) - @telemetry.event_created(test_session) + Telemetry.event_created(test_session) # finds and instruments additional test libraries that we support (ex: selenium-webdriver) Contrib.auto_instrument_on_session_start! @@ -421,15 +419,15 @@ def on_test_session_started(test_session) end def on_test_module_started(test_module) - @telemetry.event_created(test_module) + Telemetry.event_created(test_module) end def on_test_suite_started(test_suite) - @telemetry.event_created(test_suite) + Telemetry.event_created(test_suite) end def on_test_started(test) - @telemetry.event_created(test) + Telemetry.event_created(test) @test_optimisation.mark_if_skippable(test) @test_optimisation.start_coverage(test) @@ -438,22 +436,22 @@ def on_test_started(test) def on_test_session_finished(test_session) @test_optimisation.write_test_session_tags(test_session) - @telemetry.event_finished(test_session) + Telemetry.event_finished(test_session) end def on_test_module_finished(test_module) - @telemetry.event_finished(test_module) + Telemetry.event_finished(test_module) end def on_test_suite_finished(test_suite) - @telemetry.event_finished(test_suite) + Telemetry.event_finished(test_suite) end def on_test_finished(test) @test_optimisation.stop_coverage(test) @test_optimisation.count_skipped_test(test) - @telemetry.event_finished(test) + Telemetry.event_finished(test) end end end diff --git a/lib/datadog/ci/test_visibility/telemetry.rb b/lib/datadog/ci/test_visibility/telemetry.rb index bf8250f3..f45813c9 100644 --- a/lib/datadog/ci/test_visibility/telemetry.rb +++ b/lib/datadog/ci/test_visibility/telemetry.rb @@ -9,7 +9,7 @@ module Datadog module CI module TestVisibility # Telemetry for test visibility - class Telemetry + module Telemetry SPAN_TYPE_TO_TELEMETRY_EVENT_TYPE = { Ext::AppTypes::TYPE_TEST => Ext::Telemetry::EventType::TEST, Ext::AppTypes::TYPE_TEST_SUITE => Ext::Telemetry::EventType::SUITE, @@ -17,17 +17,15 @@ class Telemetry Ext::AppTypes::TYPE_TEST_SESSION => Ext::Telemetry::EventType::SESSION }.freeze - def event_created(span) - Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_CREATED, 1, tags_from_span(span)) + def self.event_created(span) + Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_CREATED, 1, event_tags_from_span(span)) end - def event_finished(span) - Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_FINISHED, 1, tags_from_span(span)) + def self.event_finished(span) + Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_FINISHED, 1, event_tags_from_span(span)) end - private - - def tags_from_span(span) + def self.event_tags_from_span(span) { Ext::Telemetry::TAG_EVENT_TYPE => SPAN_TYPE_TO_TELEMETRY_EVENT_TYPE.fetch(span.type, "unknown"), Ext::Telemetry::TAG_TEST_FRAMEWORK => span.get_tag(Ext::Test::TAG_FRAMEWORK) diff --git a/sig/datadog/ci/test_visibility/component.rbs b/sig/datadog/ci/test_visibility/component.rbs index ee8031c0..b0bcbf9a 100644 --- a/sig/datadog/ci/test_visibility/component.rbs +++ b/sig/datadog/ci/test_visibility/component.rbs @@ -11,7 +11,6 @@ module Datadog @remote_settings_api: Datadog::CI::Transport::RemoteSettingsApi @codeowners: Datadog::CI::Codeowners::Matcher @git_tree_upload_worker: Datadog::CI::Worker - @telemetry: Datadog::CI::TestVisibility::Telemetry attr_reader environment_tags: Hash[String, String] attr_reader test_suite_level_visibility_enabled: bool diff --git a/sig/datadog/ci/test_visibility/telemetry.rbs b/sig/datadog/ci/test_visibility/telemetry.rbs index a7934307..4074ca32 100644 --- a/sig/datadog/ci/test_visibility/telemetry.rbs +++ b/sig/datadog/ci/test_visibility/telemetry.rbs @@ -1,16 +1,14 @@ module Datadog module CI module TestVisibility - class Telemetry + module Telemetry SPAN_TYPE_TO_TELEMETRY_EVENT_TYPE: ::Hash[String, String] - def event_created: (Datadog::CI::Span span) -> void + def self.event_created: (Datadog::CI::Span span) -> void - def event_finished: (Datadog::CI::Span span) -> void + def self.event_finished: (Datadog::CI::Span span) -> void - private - - def tags_from_span: (Datadog::CI::Span span) -> ::Hash[String, String] + def self.event_tags_from_span: (Datadog::CI::Span span) -> ::Hash[String, String] end end end From abfc34ee7da52dd7fea04ccf72edc6da0ec9c650 Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 23 Jul 2024 12:19:34 +0200 Subject: [PATCH 7/8] Implement all tags for event_created and event finished metrics. Enable telemetry only with Datadog Agent. More tests. --- lib/datadog/ci/configuration/components.rb | 11 +- lib/datadog/ci/test_visibility/component.rb | 1 - lib/datadog/ci/test_visibility/telemetry.rb | 23 +- sig/datadog/ci/test_visibility/telemetry.rbs | 2 + .../ci/configuration/components_spec.rb | 36 +++ .../ci/test_visibility/component_spec.rb | 40 ++++ .../ci/test_visibility/telemetry_spec.rb | 209 ++++++++++++++++++ spec/datadog/ci/utils/telemetry_spec.rb | 39 ++++ 8 files changed, 352 insertions(+), 9 deletions(-) create mode 100644 spec/datadog/ci/test_visibility/telemetry_spec.rb create mode 100644 spec/datadog/ci/utils/telemetry_spec.rb diff --git a/lib/datadog/ci/configuration/components.rb b/lib/datadog/ci/configuration/components.rb index b43b2161..82264305 100644 --- a/lib/datadog/ci/configuration/components.rb +++ b/lib/datadog/ci/configuration/components.rb @@ -63,15 +63,14 @@ def activate_ci!(settings) # Configure datadog gem for test visibility mode - # Deactivate telemetry + # Configure telemetry # in development environment Datadog's telemetry is disabled by default # for test visibility we want to enable it by default unless explicitly disabled - env_enabled_value = ENV[Core::Telemetry::Ext::ENV_ENABLED] - settings.telemetry.enabled = env_enabled_value.nil? || Utils::Parsing.convert_to_bool(env_enabled_value) - - # REMOVE THIS - # settings.telemetry.agentless_enabled = true + # NOTE: before agentless mode is released, we only enable telemetry when running with Datadog Agent + env_telemetry_enabled = ENV[Core::Telemetry::Ext::ENV_ENABLED] + settings.telemetry.enabled = !settings.ci.agentless_mode_enabled && + (env_telemetry_enabled.nil? || Utils::Parsing.convert_to_bool(env_telemetry_enabled)) # Test visibility uses its own remote settings settings.remote.enabled = false diff --git a/lib/datadog/ci/test_visibility/component.rb b/lib/datadog/ci/test_visibility/component.rb index 112d7a63..1b0761b6 100644 --- a/lib/datadog/ci/test_visibility/component.rb +++ b/lib/datadog/ci/test_visibility/component.rb @@ -407,7 +407,6 @@ def validate_test_suite_level_visibility_correctness(test) end end - # TODO: use kind of event system to notify about these events? def on_test_session_started(test_session) Telemetry.event_created(test_session) diff --git a/lib/datadog/ci/test_visibility/telemetry.rb b/lib/datadog/ci/test_visibility/telemetry.rb index f45813c9..397df3e5 100644 --- a/lib/datadog/ci/test_visibility/telemetry.rb +++ b/lib/datadog/ci/test_visibility/telemetry.rb @@ -1,6 +1,7 @@ # frozen_string_literal: true require_relative "../ext/app_types" +require_relative "../ext/environment" require_relative "../ext/telemetry" require_relative "../ext/test" require_relative "../utils/telemetry" @@ -22,14 +23,32 @@ def self.event_created(span) end def self.event_finished(span) - Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_FINISHED, 1, event_tags_from_span(span)) + tags = event_tags_from_span(span) + add_browser_tags!(span, tags) + Utils::Telemetry.inc(Ext::Telemetry::METRIC_EVENT_FINISHED, 1, tags) end def self.event_tags_from_span(span) - { + # base tags for span + # @type var tags: Hash[String, String] + tags = { Ext::Telemetry::TAG_EVENT_TYPE => SPAN_TYPE_TO_TELEMETRY_EVENT_TYPE.fetch(span.type, "unknown"), Ext::Telemetry::TAG_TEST_FRAMEWORK => span.get_tag(Ext::Test::TAG_FRAMEWORK) } + + # ci provider tag + tags[Ext::Telemetry::TAG_IS_UNSUPPORTED_CI] = "true" if span.get_tag(Ext::Environment::TAG_PROVIDER_NAME).nil? + + # codeowner tag + tags[Ext::Telemetry::TAG_HAS_CODEOWNER] = "true" if span.get_tag(Ext::Test::TAG_CODEOWNERS) + + tags + end + + def self.add_browser_tags!(span, tags) + tags[Ext::Telemetry::TAG_IS_RUM] = "true" if span.get_tag(Ext::Test::TAG_IS_RUM_ACTIVE) + browser_driver = span.get_tag(Ext::Test::TAG_BROWSER_DRIVER) + tags[Ext::Telemetry::TAG_BROWSER_DRIVER] = browser_driver if browser_driver end end end diff --git a/sig/datadog/ci/test_visibility/telemetry.rbs b/sig/datadog/ci/test_visibility/telemetry.rbs index 4074ca32..2f6ab2f4 100644 --- a/sig/datadog/ci/test_visibility/telemetry.rbs +++ b/sig/datadog/ci/test_visibility/telemetry.rbs @@ -9,6 +9,8 @@ module Datadog def self.event_finished: (Datadog::CI::Span span) -> void def self.event_tags_from_span: (Datadog::CI::Span span) -> ::Hash[String, String] + + def self.add_browser_tags!: (Datadog::CI::Span span, ::Hash[String, String] tags) -> void end end end diff --git a/spec/datadog/ci/configuration/components_spec.rb b/spec/datadog/ci/configuration/components_spec.rb index d1677467..dd1c194c 100644 --- a/spec/datadog/ci/configuration/components_spec.rb +++ b/spec/datadog/ci/configuration/components_spec.rb @@ -75,6 +75,8 @@ allow(settings.tracing.test_mode) .to receive(:async=).and_call_original + allow(settings.telemetry).to receive(:enabled=).and_call_original + allow(Datadog.logger) .to receive(:debug) @@ -143,6 +145,36 @@ context "is disabled" do let(:agentless_enabled) { false } + context "when environment value for telemetry is not presetn" do + it "enables telemetry" do + expect(settings.telemetry).to have_received(:enabled=).with(true) + end + end + + context "when environment value for telemetry is present" do + around do |example| + ClimateControl.modify(Datadog::Core::Telemetry::Ext::ENV_ENABLED => telemetry_enabled) do + example.run + end + end + + context "when telemetry is explicitly disabled" do + let(:telemetry_enabled) { "false" } + + it "disables telemetry" do + expect(settings.telemetry).to have_received(:enabled=).with(false) + end + end + + context "when telemetry is explicitly enabled" do + let(:telemetry_enabled) { "true" } + + it "enables telemetry" do + expect(settings.telemetry).to have_received(:enabled=).with(true) + end + end + end + context "and when agent supports EVP proxy v2" do let(:evp_proxy_v2_supported) { true } @@ -205,6 +237,10 @@ context "when api key is set" do let(:api_key) { "api_key" } + it "disables telemetry" do + expect(settings.telemetry).to have_received(:enabled=).with(false) + end + it "sets async for test mode and constructs transport with CI intake API" do expect(Datadog.logger).not_to have_received(:warn) expect(Datadog.logger).not_to have_received(:error) diff --git a/spec/datadog/ci/test_visibility/component_spec.rb b/spec/datadog/ci/test_visibility/component_spec.rb index 947ed809..d015f3b8 100644 --- a/spec/datadog/ci/test_visibility/component_spec.rb +++ b/spec/datadog/ci/test_visibility/component_spec.rb @@ -3,6 +3,20 @@ require_relative "../../../../lib/datadog/ci/test_visibility/component" RSpec.describe Datadog::CI::TestVisibility::Component do + # spy on telemetry metrics emitted + before do + @metrics = {} + + allow(Datadog::CI::Utils::Telemetry).to receive(:inc) do |metric_name, _count, _tags| + @metrics[:inc] ||= [] + @metrics[:inc] << metric_name + end + allow(Datadog::CI::Utils::Telemetry).to receive(:distribution) do |metric_name, _value, _tags| + @metrics[:distribution] ||= [] + @metrics[:distribution] << metric_name + end + end + shared_examples_for "trace with ciapp-test origin" do let(:trace_under_test) { subject } @@ -48,6 +62,14 @@ end end + shared_examples_for "emits telemetry metric" do |metric_type, metric_name| + it "emits telemetry metric with type #{metric_type} and name #{metric_name}" do + subject + + expect(@metrics[metric_type]).to include(metric_name) + end + end + context "when test suite level visibility is disabled" do let(:service) { "my-service" } let(:tags) { {"test.framework" => "my-framework", "my.tag" => "my_value"} } @@ -221,6 +243,7 @@ trace end end + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_CREATED end context "when there is an active test session" do @@ -377,6 +400,8 @@ trace end end + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_CREATED + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_FINISHED end end @@ -430,6 +455,7 @@ trace end end + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_CREATED end describe "#start_test_module" do @@ -474,6 +500,7 @@ trace end end + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_CREATED end context "when there is an active test session" do @@ -555,6 +582,7 @@ it_behaves_like "span with environment tags" it_behaves_like "span with default tags" it_behaves_like "span with runtime tags" + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_CREATED end context "when test suite with given name is already started" do @@ -653,6 +681,10 @@ end describe "#deactivate_test" do + before do + ci_test + end + subject { test_visibility.deactivate_test } context "when there is no active test" do @@ -669,6 +701,8 @@ expect(test_visibility.active_test).to be_nil end + + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_FINISHED end end @@ -689,6 +723,8 @@ expect(test_visibility.active_test_session).to be_nil end + + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_FINISHED end end @@ -709,6 +745,8 @@ expect(test_visibility.active_test_module).to be_nil end + + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_FINISHED end end @@ -729,6 +767,8 @@ expect(test_visibility.active_test_suite("my suite")).to be_nil end + + it_behaves_like "emits telemetry metric", :inc, Datadog::CI::Ext::Telemetry::METRIC_EVENT_FINISHED end end end diff --git a/spec/datadog/ci/test_visibility/telemetry_spec.rb b/spec/datadog/ci/test_visibility/telemetry_spec.rb new file mode 100644 index 00000000..2c75e45f --- /dev/null +++ b/spec/datadog/ci/test_visibility/telemetry_spec.rb @@ -0,0 +1,209 @@ +# frozen_string_literal: true + +require_relative "../../../../lib/datadog/ci/test_visibility/telemetry" + +RSpec.describe Datadog::CI::TestVisibility::Telemetry do + describe ".event_created" do + subject(:event_created) { described_class.event_created(span) } + + before do + expect(Datadog::CI::Utils::Telemetry).to receive(:inc) + .with(Datadog::CI::Ext::Telemetry::METRIC_EVENT_CREATED, 1, expected_tags) + end + + context "test session span" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_session", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST_SESSION, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec", + Datadog::CI::Ext::Environment::TAG_PROVIDER_NAME => "gha" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::SESSION, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec" + } + end + + it { event_created } + end + + context "test module span without CI provider" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_module", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST_MODULE, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::MODULE, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec", + Datadog::CI::Ext::Telemetry::TAG_IS_UNSUPPORTED_CI => "true" + } + end + + it { event_created } + end + + context "test suite span" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_session", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST_SUITE, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec", + Datadog::CI::Ext::Environment::TAG_PROVIDER_NAME => "gha" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::SUITE, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec" + } + end + + it { event_created } + end + + context "test span with codeowners" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_session", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec", + Datadog::CI::Ext::Environment::TAG_PROVIDER_NAME => "gha", + Datadog::CI::Ext::Test::TAG_CODEOWNERS => "@owner", + Datadog::CI::Ext::Test::TAG_IS_RUM_ACTIVE => "true", + Datadog::CI::Ext::Test::TAG_BROWSER_DRIVER => "selenium" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::TEST, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec", + Datadog::CI::Ext::Telemetry::TAG_HAS_CODEOWNER => "true" + } + end + + it { event_created } + end + end + + describe ".event_finished" do + subject(:event_finished) { described_class.event_finished(span) } + + before do + expect(Datadog::CI::Utils::Telemetry).to receive(:inc) + .with(Datadog::CI::Ext::Telemetry::METRIC_EVENT_FINISHED, 1, expected_tags) + end + + context "test session span" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_session", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST_SESSION, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec", + Datadog::CI::Ext::Environment::TAG_PROVIDER_NAME => "gha" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::SESSION, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec" + } + end + + it { event_finished } + end + + context "test module span without CI provider" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_module", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST_MODULE, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::MODULE, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec", + Datadog::CI::Ext::Telemetry::TAG_IS_UNSUPPORTED_CI => "true" + } + end + + it { event_finished } + end + + context "test suite span" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_session", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST_SUITE, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec", + Datadog::CI::Ext::Environment::TAG_PROVIDER_NAME => "gha" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::SUITE, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec" + } + end + + it { event_finished } + end + + context "test span with codeowners" do + let(:span) do + Datadog::Tracing::SpanOperation.new( + "test_session", + type: Datadog::CI::Ext::AppTypes::TYPE_TEST, + tags: { + Datadog::CI::Ext::Test::TAG_FRAMEWORK => "rspec", + Datadog::CI::Ext::Environment::TAG_PROVIDER_NAME => "gha", + Datadog::CI::Ext::Test::TAG_CODEOWNERS => "@owner", + Datadog::CI::Ext::Test::TAG_IS_RUM_ACTIVE => "true", + Datadog::CI::Ext::Test::TAG_BROWSER_DRIVER => "selenium" + } + ) + end + + let(:expected_tags) do + { + Datadog::CI::Ext::Telemetry::TAG_EVENT_TYPE => Datadog::CI::Ext::Telemetry::EventType::TEST, + Datadog::CI::Ext::Telemetry::TAG_TEST_FRAMEWORK => "rspec", + Datadog::CI::Ext::Telemetry::TAG_HAS_CODEOWNER => "true", + Datadog::CI::Ext::Telemetry::TAG_IS_RUM => "true", + Datadog::CI::Ext::Telemetry::TAG_BROWSER_DRIVER => "selenium" + } + end + + it { event_finished } + end + end +end diff --git a/spec/datadog/ci/utils/telemetry_spec.rb b/spec/datadog/ci/utils/telemetry_spec.rb new file mode 100644 index 00000000..01be5841 --- /dev/null +++ b/spec/datadog/ci/utils/telemetry_spec.rb @@ -0,0 +1,39 @@ +# frozen_string_literal: true + +require_relative "../../../../lib/datadog/ci/utils/telemetry" + +RSpec.describe Datadog::CI::Utils::Telemetry do + let(:telemetry) { double(:telemetry) } + + before { allow(Datadog).to receive_message_chain(:components, :telemetry).and_return(telemetry) } + + describe ".inc" do + subject(:inc) { described_class.inc(metric_name, count, tags) } + + let(:metric_name) { "metric_name" } + let(:count) { 1 } + let(:tags) { {tag_name: "tag_value"} } + + it "calls telemetry.inc with the expected arguments" do + expect(telemetry).to receive(:inc) + .with(Datadog::CI::Ext::Telemetry::NAMESPACE, metric_name, count, tags: tags) + + inc + end + end + + describe ".distribution" do + subject(:distribution) { described_class.distribution(metric_name, value, tags) } + + let(:metric_name) { "metric_name" } + let(:value) { 1 } + let(:tags) { {tag_name: "tag_value"} } + + it "calls telemetry.distribution with the expected arguments" do + expect(telemetry).to receive(:distribution) + .with(Datadog::CI::Ext::Telemetry::NAMESPACE, metric_name, value, tags: tags) + + distribution + end + end +end From afd50da8f9ef6e9bd5632ea3a80614761f10e47b Mon Sep 17 00:00:00 2001 From: Andrey Date: Tue, 23 Jul 2024 14:42:02 +0200 Subject: [PATCH 8/8] Introduce TestVisibility::Context that now handles all the domain model creation and context propagation --- lib/datadog/ci/test_visibility/component.rb | 350 +++++------------- lib/datadog/ci/test_visibility/context.rb | 273 ++++++++++++++ .../{context => store}/global.rb | 2 +- .../{context => store}/local.rb | 2 +- sig/datadog/ci/test_visibility/component.rbs | 34 +- sig/datadog/ci/test_visibility/context.rbs | 72 ++++ .../{context => store}/global.rbs | 2 +- .../{context => store}/local.rbs | 2 +- .../{context => store}/global_spec.rb | 6 +- .../{context => store}/local_spec.rb | 6 +- 10 files changed, 447 insertions(+), 302 deletions(-) create mode 100644 lib/datadog/ci/test_visibility/context.rb rename lib/datadog/ci/test_visibility/{context => store}/global.rb (99%) rename lib/datadog/ci/test_visibility/{context => store}/local.rb (97%) create mode 100644 sig/datadog/ci/test_visibility/context.rbs rename sig/datadog/ci/test_visibility/{context => store}/global.rbs (98%) rename sig/datadog/ci/test_visibility/{context => store}/local.rbs (95%) rename spec/datadog/ci/test_visibility/{context => store}/global_spec.rb (98%) rename spec/datadog/ci/test_visibility/{context => store}/local_spec.rb (94%) diff --git a/lib/datadog/ci/test_visibility/component.rb b/lib/datadog/ci/test_visibility/component.rb index 1b0761b6..1a5ae494 100644 --- a/lib/datadog/ci/test_visibility/component.rb +++ b/lib/datadog/ci/test_visibility/component.rb @@ -1,36 +1,24 @@ # frozen_string_literal: true -require "datadog/tracing" -require "datadog/tracing/contrib/component" -require "datadog/tracing/trace_digest" - require "rbconfig" -require_relative "context/global" -require_relative "context/local" +require_relative "context" require_relative "telemetry" require_relative "../codeowners/parser" require_relative "../contrib/contrib" -require_relative "../ext/app_types" require_relative "../ext/test" require_relative "../ext/environment" require_relative "../git/local_repository" -require_relative "../span" -require_relative "../test" -require_relative "../test_session" -require_relative "../test_module" -require_relative "../test_suite" require_relative "../worker" module Datadog module CI module TestVisibility # Common behavior for CI tests - # Note: this class has too many responsibilities and should be split into multiple classes class Component - attr_reader :environment_tags, :test_suite_level_visibility_enabled + attr_reader :test_suite_level_visibility_enabled def initialize( test_optimisation:, @@ -40,13 +28,8 @@ def initialize( codeowners: Codeowners::Parser.new(Git::LocalRepository.root).parse ) @test_suite_level_visibility_enabled = test_suite_level_visibility_enabled - - @environment_tags = Ext::Environment.tags(ENV).freeze - @local_context = Context::Local.new - @global_context = Context::Global.new - + @context = Context.new(Ext::Environment.tags(ENV).freeze) @codeowners = codeowners - @test_optimisation = test_optimisation @remote_settings_api = remote_settings_api @git_tree_upload_worker = git_tree_upload_worker @@ -59,159 +42,98 @@ def shutdown! def start_test_session(service: nil, tags: {}) return skip_tracing unless test_suite_level_visibility_enabled - @global_context.fetch_or_activate_test_session do - tracer_span = start_datadog_tracer_span( - "test.session", build_span_options(service, Ext::AppTypes::TYPE_TEST_SESSION) - ) - set_session_context(tags, tracer_span) - - test_session = build_test_session(tracer_span, tags) - on_test_session_started(test_session) - test_session - end + test_session = @context.start_test_session(service: service, tags: tags) + on_test_session_started(test_session) + test_session end def start_test_module(test_module_name, service: nil, tags: {}) return skip_tracing unless test_suite_level_visibility_enabled - @global_context.fetch_or_activate_test_module do - set_inherited_globals(tags) - set_session_context(tags) - - tracer_span = start_datadog_tracer_span( - test_module_name, build_span_options(service, Ext::AppTypes::TYPE_TEST_MODULE) - ) - set_module_context(tags, tracer_span) - - test_module = build_test_module(tracer_span, tags) - on_test_module_started(test_module) - test_module - end + test_module = @context.start_test_module(test_module_name, service: service, tags: tags) + on_test_module_started(test_module) + test_module end def start_test_suite(test_suite_name, service: nil, tags: {}) return skip_tracing unless test_suite_level_visibility_enabled - @global_context.fetch_or_activate_test_suite(test_suite_name) do - set_inherited_globals(tags) - set_session_context(tags) - set_module_context(tags) - - tracer_span = start_datadog_tracer_span( - test_suite_name, build_span_options(service, Ext::AppTypes::TYPE_TEST_SUITE) - ) - set_suite_context(tags, span: tracer_span) - - test_suite = build_test_suite(tracer_span, tags) - on_test_suite_started(test_suite) - test_suite - end + test_suite = @context.start_test_suite(test_suite_name, service: service, tags: tags) + on_test_suite_started(test_suite) + test_suite end def trace_test(test_name, test_suite_name, service: nil, tags: {}, &block) - set_inherited_globals(tags) - set_session_context(tags) - set_module_context(tags) - set_suite_context(tags, name: test_suite_name) - - tags[Ext::Test::TAG_NAME] = test_name - tags[Ext::Test::TAG_TYPE] ||= Ext::Test::Type::TEST - - span_options = build_span_options( - service, - Ext::AppTypes::TYPE_TEST, - # :resource is needed for the agent APM protocol to work correctly (for older agent versions) - # :continue_from is required to start a new trace for each test - {resource: test_name, continue_from: Datadog::Tracing::TraceDigest.new} - ) - if block - start_datadog_tracer_span(test_name, span_options) do |tracer_span| - test = build_test(tracer_span, tags) - - @local_context.activate_test(test) do - on_test_started(test) - res = block.call(test) - on_test_finished(test) - res - end + @context.trace_test(test_name, test_suite_name, service: service, tags: tags) do |test| + on_test_started(test) + res = block.call(test) + on_test_finished(test) + res end else - tracer_span = start_datadog_tracer_span(test_name, span_options) - test = build_test(tracer_span, tags) - - @local_context.activate_test(test) + test = @context.trace_test(test_name, test_suite_name, service: service, tags: tags) on_test_started(test) - test end end def trace(span_name, type: "span", tags: {}, &block) - span_options = build_span_options( - nil, # service name is completely optional for custom spans - type, - {resource: span_name} - ) - if block - start_datadog_tracer_span(span_name, span_options) do |tracer_span| - block.call(build_span(tracer_span, tags)) + @context.trace(span_name, type: type, tags: tags) do |span| + block.call(span) end else - tracer_span = start_datadog_tracer_span(span_name, span_options) - - build_span(tracer_span, tags) + @context.trace(span_name, type: type, tags: tags) end end def active_span - tracer_span = Datadog::Tracing.active_span - Span.new(tracer_span) if tracer_span + @context.active_span end def active_test - @local_context.active_test + @context.active_test end def active_test_session - @global_context.active_test_session + @context.active_test_session end def active_test_module - @global_context.active_test_module + @context.active_test_module end def active_test_suite(test_suite_name) - @global_context.active_test_suite(test_suite_name) + @context.active_test_suite(test_suite_name) end def deactivate_test test = active_test on_test_finished(test) if test - @local_context.deactivate_test + @context.deactivate_test end def deactivate_test_session test_session = active_test_session on_test_session_finished(test_session) if test_session - @global_context.deactivate_test_session! + @context.deactivate_test_session end def deactivate_test_module test_module = active_test_module on_test_module_finished(test_module) if test_module - @global_context.deactivate_test_module! + @context.deactivate_test_module end def deactivate_test_suite(test_suite_name) test_suite = active_test_suite(test_suite_name) on_test_suite_finished(test_suite) if test_suite - @global_context.deactivate_test_suite!(test_suite_name) + @context.deactivate_test_suite(test_suite_name) end def itr_enabled? @@ -220,63 +142,26 @@ def itr_enabled? private - def configure_library(test_session) - # this will change when EFD is implemented - return unless itr_enabled? - - remote_configuration = @remote_settings_api.fetch_library_settings(test_session) - # sometimes we can skip code coverage for default branch if there are no changes in the repository - # backend needs git metadata uploaded for this test session to check if we can skip code coverage - if remote_configuration.require_git? - Datadog.logger.debug { "Library configuration endpoint requires git upload to be finished, waiting..." } - @git_tree_upload_worker.wait_until_done - - Datadog.logger.debug { "Requesting library configuration again..." } - remote_configuration = @remote_settings_api.fetch_library_settings(test_session) - - if remote_configuration.require_git? - Datadog.logger.debug { "git metadata upload did not complete in time when configuring library" } - end - end - - @test_optimisation.configure( - remote_configuration.payload, - test_session: test_session, - git_tree_upload_worker: @git_tree_upload_worker - ) - end - - def skip_tracing(block = nil) - block&.call(nil) - end + # DOMAIN EVENTS + def on_test_session_started(test_session) + Telemetry.event_created(test_session) - # Sets trace's origin to ciapp-test - def set_trace_origin(trace) - trace&.origin = Ext::Test::CONTEXT_ORIGIN - end + # finds and instruments additional test libraries that we support (ex: selenium-webdriver) + Contrib.auto_instrument_on_session_start! - def build_test_session(tracer_span, tags) - test_session = TestSession.new(tracer_span) - set_initial_tags(test_session, tags) - test_session + @git_tree_upload_worker.perform(test_session.git_repository_url) + configure_library(test_session) end - def build_test_module(tracer_span, tags) - test_module = TestModule.new(tracer_span) - set_initial_tags(test_module, tags) - test_module + def on_test_module_started(test_module) + Telemetry.event_created(test_module) end - def build_test_suite(tracer_span, tags) - test_suite = TestSuite.new(tracer_span) - set_initial_tags(test_suite, tags) - test_suite + def on_test_suite_started(test_suite) + Telemetry.event_created(test_suite) end - def build_test(tracer_span, tags) - test = Test.new(tracer_span) - set_initial_tags(test, tags) - + def on_test_started(test) # sometimes test suite is not being assigned correctly # fix it by fetching the one single running test suite from the global context fix_test_suite!(test) if test.test_suite_id.nil? @@ -284,49 +169,63 @@ def build_test(tracer_span, tags) validate_test_suite_level_visibility_correctness(test) set_codeowners(test) - test - end + Telemetry.event_created(test) - def build_span(tracer_span, tags) - span = Span.new(tracer_span) - set_initial_tags(span, tags) - span + @test_optimisation.mark_if_skippable(test) + @test_optimisation.start_coverage(test) end - def build_span_options(service, type, other_options = {}) - other_options[:service] = service || @global_context.service - other_options[:type] = type + def on_test_session_finished(test_session) + @test_optimisation.write_test_session_tags(test_session) - other_options + Telemetry.event_finished(test_session) end - def set_inherited_globals(tags) - # this code achieves the same as @global_context.inheritable_session_tags.merge(tags) - # but without allocating a new hash - @global_context.inheritable_session_tags.each do |key, value| - tags[key] = value unless tags.key?(key) - end + def on_test_module_finished(test_module) + Telemetry.event_finished(test_module) end - def set_initial_tags(ci_span, tags) - ci_span.set_default_tags - ci_span.set_environment_runtime_tags - - ci_span.set_tags(tags) - ci_span.set_tags(environment_tags) + def on_test_suite_finished(test_suite) + Telemetry.event_finished(test_suite) end - def set_session_context(tags, test_session = nil) - test_session ||= active_test_session - tags[Ext::Test::TAG_TEST_SESSION_ID] = test_session.id.to_s if test_session + def on_test_finished(test) + @test_optimisation.stop_coverage(test) + @test_optimisation.count_skipped_test(test) + + Telemetry.event_finished(test) end - def set_module_context(tags, test_module = nil) - test_module ||= active_test_module - if test_module - tags[Ext::Test::TAG_TEST_MODULE_ID] = test_module.id.to_s - tags[Ext::Test::TAG_MODULE] = test_module.name + # TODO: move this to CI::Configuration::Remote + def configure_library(test_session) + # this will change when EFD is implemented + return unless itr_enabled? + + remote_configuration = @remote_settings_api.fetch_library_settings(test_session) + # sometimes we can skip code coverage for default branch if there are no changes in the repository + # backend needs git metadata uploaded for this test session to check if we can skip code coverage + if remote_configuration.require_git? + Datadog.logger.debug { "Library configuration endpoint requires git upload to be finished, waiting..." } + @git_tree_upload_worker.wait_until_done + + Datadog.logger.debug { "Requesting library configuration again..." } + remote_configuration = @remote_settings_api.fetch_library_settings(test_session) + + if remote_configuration.require_git? + Datadog.logger.debug { "git metadata upload did not complete in time when configuring library" } + end end + + @test_optimisation.configure( + remote_configuration.payload, + test_session: test_session, + git_tree_upload_worker: @git_tree_upload_worker + ) + end + + # HELPERS + def skip_tracing(block = nil) + block&.call(nil) end def set_codeowners(test) @@ -335,21 +234,8 @@ def set_codeowners(test) test.set_tag(Ext::Test::TAG_CODEOWNERS, owners) unless owners.nil? end - def set_suite_context(tags, span: nil, name: nil) - return if span.nil? && name.nil? - - test_suite = span || active_test_suite(name) - - if test_suite - tags[Ext::Test::TAG_TEST_SUITE_ID] = test_suite.id.to_s - tags[Ext::Test::TAG_SUITE] = test_suite.name - else - tags[Ext::Test::TAG_SUITE] = name - end - end - def fix_test_suite!(test) - test_suite = @global_context.fetch_single_test_suite + test_suite = @context.single_active_test_suite unless test_suite Datadog.logger.debug do "Trying to fix test suite for test [#{test.name}] but no single test suite is running." @@ -366,22 +252,6 @@ def fix_test_suite!(test) test.set_tag(Ext::Test::TAG_SUITE, test_suite.name) end - def start_datadog_tracer_span(span_name, span_options, &block) - if block - Datadog::Tracing.trace(span_name, **span_options) do |tracer_span, trace| - set_trace_origin(trace) - - yield tracer_span - end - else - tracer_span = Datadog::Tracing.trace(span_name, **span_options) - trace = Datadog::Tracing.active_trace - set_trace_origin(trace) - - tracer_span - end - end - def validate_test_suite_level_visibility_correctness(test) return unless test_suite_level_visibility_enabled @@ -406,52 +276,6 @@ def validate_test_suite_level_visibility_correctness(test) end end end - - def on_test_session_started(test_session) - Telemetry.event_created(test_session) - - # finds and instruments additional test libraries that we support (ex: selenium-webdriver) - Contrib.auto_instrument_on_session_start! - - @git_tree_upload_worker.perform(test_session.git_repository_url) - configure_library(test_session) - end - - def on_test_module_started(test_module) - Telemetry.event_created(test_module) - end - - def on_test_suite_started(test_suite) - Telemetry.event_created(test_suite) - end - - def on_test_started(test) - Telemetry.event_created(test) - - @test_optimisation.mark_if_skippable(test) - @test_optimisation.start_coverage(test) - end - - def on_test_session_finished(test_session) - @test_optimisation.write_test_session_tags(test_session) - - Telemetry.event_finished(test_session) - end - - def on_test_module_finished(test_module) - Telemetry.event_finished(test_module) - end - - def on_test_suite_finished(test_suite) - Telemetry.event_finished(test_suite) - end - - def on_test_finished(test) - @test_optimisation.stop_coverage(test) - @test_optimisation.count_skipped_test(test) - - Telemetry.event_finished(test) - end end end end diff --git a/lib/datadog/ci/test_visibility/context.rb b/lib/datadog/ci/test_visibility/context.rb new file mode 100644 index 00000000..0eb2f42c --- /dev/null +++ b/lib/datadog/ci/test_visibility/context.rb @@ -0,0 +1,273 @@ +# frozen_string_literal: true + +require "datadog/tracing" +require "datadog/tracing/contrib/component" +require "datadog/tracing/trace_digest" + +require_relative "store/global" +require_relative "store/local" + +require_relative "../ext/app_types" +require_relative "../ext/test" + +require_relative "../span" +require_relative "../test" +require_relative "../test_session" +require_relative "../test_module" +require_relative "../test_suite" + +module Datadog + module CI + module TestVisibility + # Manages current in-memory context for test visibility (such as active test session, suite, test, etc.). + # Its responsibility includes building domain models for test visibility as well. + # Internally it uses Datadog::Tracing module to create spans. + class Context + def initialize(environment_tags) + @local_context = Store::Local.new + @global_context = Store::Global.new + + @environment_tags = environment_tags + end + + def start_test_session(service: nil, tags: {}) + @global_context.fetch_or_activate_test_session do + tracer_span = start_datadog_tracer_span( + "test.session", build_tracing_span_options(service, Ext::AppTypes::TYPE_TEST_SESSION) + ) + set_session_context(tags, tracer_span) + + build_test_session(tracer_span, tags) + end + end + + def start_test_module(test_module_name, service: nil, tags: {}) + @global_context.fetch_or_activate_test_module do + set_inherited_globals(tags) + set_session_context(tags) + + tracer_span = start_datadog_tracer_span( + test_module_name, build_tracing_span_options(service, Ext::AppTypes::TYPE_TEST_MODULE) + ) + set_module_context(tags, tracer_span) + + build_test_module(tracer_span, tags) + end + end + + def start_test_suite(test_suite_name, service: nil, tags: {}) + @global_context.fetch_or_activate_test_suite(test_suite_name) do + set_inherited_globals(tags) + set_session_context(tags) + set_module_context(tags) + + tracer_span = start_datadog_tracer_span( + test_suite_name, build_tracing_span_options(service, Ext::AppTypes::TYPE_TEST_SUITE) + ) + set_suite_context(tags, span: tracer_span) + + build_test_suite(tracer_span, tags) + end + end + + def trace_test(test_name, test_suite_name, service: nil, tags: {}, &block) + set_inherited_globals(tags) + set_session_context(tags) + set_module_context(tags) + set_suite_context(tags, name: test_suite_name) + + tags[Ext::Test::TAG_NAME] = test_name + tags[Ext::Test::TAG_TYPE] ||= Ext::Test::Type::TEST + + span_options = build_tracing_span_options( + service, + Ext::AppTypes::TYPE_TEST, + # :resource is needed for the agent APM protocol to work correctly (for older agent versions) + # :continue_from is required to start a new trace for each test + {resource: test_name, continue_from: Datadog::Tracing::TraceDigest.new} + ) + + if block + start_datadog_tracer_span(test_name, span_options) do |tracer_span| + test = build_test(tracer_span, tags) + + @local_context.activate_test(test) do + block.call(test) + end + end + else + tracer_span = start_datadog_tracer_span(test_name, span_options) + test = build_test(tracer_span, tags) + @local_context.activate_test(test) + test + end + end + + def trace(span_name, type: "span", tags: {}, &block) + span_options = build_tracing_span_options( + nil, # service name is completely optional for custom spans + type, + {resource: span_name} + ) + + if block + start_datadog_tracer_span(span_name, span_options) do |tracer_span| + block.call(build_span(tracer_span, tags)) + end + else + tracer_span = start_datadog_tracer_span(span_name, span_options) + + build_span(tracer_span, tags) + end + end + + def active_span + tracer_span = Datadog::Tracing.active_span + Span.new(tracer_span) if tracer_span + end + + def active_test + @local_context.active_test + end + + def active_test_session + @global_context.active_test_session + end + + def active_test_module + @global_context.active_test_module + end + + def active_test_suite(test_suite_name) + @global_context.active_test_suite(test_suite_name) + end + + def single_active_test_suite + @global_context.fetch_single_test_suite + end + + def deactivate_test + @local_context.deactivate_test + end + + def deactivate_test_session + @global_context.deactivate_test_session! + end + + def deactivate_test_module + @global_context.deactivate_test_module! + end + + def deactivate_test_suite(test_suite_name) + @global_context.deactivate_test_suite!(test_suite_name) + end + + private + + # BUILDING DOMAIN MODELS + def build_test_session(tracer_span, tags) + test_session = TestSession.new(tracer_span) + set_initial_tags(test_session, tags) + test_session + end + + def build_test_module(tracer_span, tags) + test_module = TestModule.new(tracer_span) + set_initial_tags(test_module, tags) + test_module + end + + def build_test_suite(tracer_span, tags) + test_suite = TestSuite.new(tracer_span) + set_initial_tags(test_suite, tags) + test_suite + end + + def build_test(tracer_span, tags) + test = Test.new(tracer_span) + set_initial_tags(test, tags) + test + end + + def build_span(tracer_span, tags) + span = Span.new(tracer_span) + set_initial_tags(span, tags) + span + end + + # TAGGING + def set_initial_tags(ci_span, tags) + ci_span.set_default_tags + ci_span.set_environment_runtime_tags + + ci_span.set_tags(tags) + ci_span.set_tags(@environment_tags) + end + + # PROPAGATING CONTEXT FROM TOP-LEVEL TO THE LOWER LEVELS + def set_inherited_globals(tags) + # this code achieves the same as @global_context.inheritable_session_tags.merge(tags) + # but without allocating a new hash + @global_context.inheritable_session_tags.each do |key, value| + tags[key] = value unless tags.key?(key) + end + end + + def set_session_context(tags, test_session = nil) + test_session ||= active_test_session + tags[Ext::Test::TAG_TEST_SESSION_ID] = test_session.id.to_s if test_session + end + + def set_module_context(tags, test_module = nil) + test_module ||= active_test_module + if test_module + tags[Ext::Test::TAG_TEST_MODULE_ID] = test_module.id.to_s + tags[Ext::Test::TAG_MODULE] = test_module.name + end + end + + def set_suite_context(tags, span: nil, name: nil) + return if span.nil? && name.nil? + + test_suite = span || active_test_suite(name) + + if test_suite + tags[Ext::Test::TAG_TEST_SUITE_ID] = test_suite.id.to_s + tags[Ext::Test::TAG_SUITE] = test_suite.name + else + tags[Ext::Test::TAG_SUITE] = name + end + end + + # INTERACTIONS WITH TRACING + def start_datadog_tracer_span(span_name, span_options, &block) + if block + Datadog::Tracing.trace(span_name, **span_options) do |tracer_span, trace| + set_trace_origin(trace) + + yield tracer_span + end + else + tracer_span = Datadog::Tracing.trace(span_name, **span_options) + trace = Datadog::Tracing.active_trace + set_trace_origin(trace) + + tracer_span + end + end + + # Sets trace's origin to ciapp-test because tracing requires so + def set_trace_origin(trace) + trace&.origin = Ext::Test::CONTEXT_ORIGIN + end + + def build_tracing_span_options(service, type, other_options = {}) + other_options[:service] = service || @global_context.service + other_options[:type] = type + + other_options + end + end + end + end +end diff --git a/lib/datadog/ci/test_visibility/context/global.rb b/lib/datadog/ci/test_visibility/store/global.rb similarity index 99% rename from lib/datadog/ci/test_visibility/context/global.rb rename to lib/datadog/ci/test_visibility/store/global.rb index 35f1b0e4..f75195b1 100644 --- a/lib/datadog/ci/test_visibility/context/global.rb +++ b/lib/datadog/ci/test_visibility/store/global.rb @@ -3,7 +3,7 @@ module Datadog module CI module TestVisibility - module Context + module Store # This context is shared between threads and represents the current test session and test module. class Global def initialize diff --git a/lib/datadog/ci/test_visibility/context/local.rb b/lib/datadog/ci/test_visibility/store/local.rb similarity index 97% rename from lib/datadog/ci/test_visibility/context/local.rb rename to lib/datadog/ci/test_visibility/store/local.rb index 83f87a8e..c264bd2c 100644 --- a/lib/datadog/ci/test_visibility/context/local.rb +++ b/lib/datadog/ci/test_visibility/store/local.rb @@ -3,7 +3,7 @@ module Datadog module CI module TestVisibility - module Context + module Store class Local def initialize @key = :datadog_ci_active_test diff --git a/sig/datadog/ci/test_visibility/component.rbs b/sig/datadog/ci/test_visibility/component.rbs index b0bcbf9a..9b413c2b 100644 --- a/sig/datadog/ci/test_visibility/component.rbs +++ b/sig/datadog/ci/test_visibility/component.rbs @@ -4,15 +4,12 @@ module Datadog class Component @test_suite_level_visibility_enabled: bool - @environment_tags: Hash[String, String] - @local_context: Datadog::CI::TestVisibility::Context::Local - @global_context: Datadog::CI::TestVisibility::Context::Global @test_optimisation: Datadog::CI::TestOptimisation::Component @remote_settings_api: Datadog::CI::Transport::RemoteSettingsApi @codeowners: Datadog::CI::Codeowners::Matcher @git_tree_upload_worker: Datadog::CI::Worker + @context: Datadog::CI::TestVisibility::Context - attr_reader environment_tags: Hash[String, String] attr_reader test_suite_level_visibility_enabled: bool def initialize: (?test_suite_level_visibility_enabled: bool, ?codeowners: Datadog::CI::Codeowners::Matcher, test_optimisation: Datadog::CI::TestOptimisation::Component, remote_settings_api: Datadog::CI::Transport::RemoteSettingsApi, ?git_tree_upload_worker: Datadog::CI::Worker) -> void @@ -53,43 +50,14 @@ module Datadog def configure_library: (Datadog::CI::TestSession test_session) -> void - def create_datadog_span: (String span_name, ?span_options: Hash[untyped, untyped], ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Span span) -> untyped } -> untyped - - def set_trace_origin: (Datadog::Tracing::TraceOperation trace) -> untyped - - def build_test: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::Test - - def build_test_session: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestSession - - def build_test_module: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestModule - - def build_test_suite: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestSuite - - def build_span: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::Span - - def build_span_options: (String? service_name, String type, ?Hash[Symbol, untyped] other_options) -> Hash[Symbol, untyped] - - def set_initial_tags: (Datadog::CI::Span ci_span, Hash[untyped, untyped] tags) -> void - - # the type (Datadog::CI::TestSession | Datadog::Tracing::SpanOperation) screams of wrong/mising abstraction - def set_session_context: (Hash[untyped, untyped] tags, ?Datadog::CI::TestSession | Datadog::Tracing::SpanOperation? test_session) -> void - - def set_suite_context: (Hash[untyped, untyped] tags, ?span: Datadog::Tracing::SpanOperation, ?name: String) -> void - def fix_test_suite!: (Datadog::CI::Test test) -> void - def set_module_context: (Hash[untyped, untyped] tags, ?Datadog::CI::TestModule | Datadog::Tracing::SpanOperation? test_module) -> void - def set_codeowners: (Datadog::CI::Test test) -> void def null_span: () -> Datadog::CI::Span def skip_tracing: (?untyped block) -> untyped - def start_datadog_tracer_span: (String span_name, Hash[untyped, untyped] span_options) ?{ (untyped) -> untyped } -> untyped - - def set_inherited_globals: (Hash[untyped, untyped] tags) -> void - def validate_test_suite_level_visibility_correctness: (Datadog::CI::Test test) -> void def on_test_session_started: (Datadog::CI::TestSession test_session) -> void diff --git a/sig/datadog/ci/test_visibility/context.rbs b/sig/datadog/ci/test_visibility/context.rbs new file mode 100644 index 00000000..a4b8efb0 --- /dev/null +++ b/sig/datadog/ci/test_visibility/context.rbs @@ -0,0 +1,72 @@ +module Datadog + module CI + module TestVisibility + class Context + @local_context: Datadog::CI::TestVisibility::Store::Local + @global_context: Datadog::CI::TestVisibility::Store::Global + + @environment_tags: Hash[String, String] + + def initialize: (Hash[String, String] environment_tags) -> void + + def trace_test: (String span_name, String test_suite_name, ?service: String?, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Test span) -> untyped } -> untyped + + def trace: (String span_name, ?type: String, ?tags: Hash[untyped, untyped]) ?{ (Datadog::CI::Span span) -> untyped } -> untyped + + def start_test_session: (?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::TestSession + + def start_test_module: (String test_module_name, ?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::TestModule + + def start_test_suite: (String test_suite_name, ?service: String?, ?tags: Hash[untyped, untyped]) -> Datadog::CI::TestSuite + + def active_test_session: () -> Datadog::CI::TestSession? + + def active_test_module: () -> Datadog::CI::TestModule? + + def active_test_suite: (String test_suite_name) -> Datadog::CI::TestSuite? + + def single_active_test_suite: () -> Datadog::CI::TestSuite? + + def active_test: () -> Datadog::CI::Test? + + def active_span: () -> Datadog::CI::Span? + + def deactivate_test: () -> void + + def deactivate_test_session: () -> void + + def deactivate_test_module: () -> void + + def deactivate_test_suite: (String test_suite_name) -> void + + private + + def build_test: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::Test + + def build_test_session: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestSession + + def build_test_module: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestModule + + def build_test_suite: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::TestSuite + + def build_span: (Datadog::Tracing::SpanOperation tracer_span, Hash[untyped, untyped] tags) -> Datadog::CI::Span + + def set_trace_origin: (Datadog::Tracing::TraceOperation trace) -> void + + def set_initial_tags: (Datadog::CI::Span ci_span, Hash[untyped, untyped] tags) -> void + + def set_inherited_globals: (Hash[untyped, untyped] tags) -> void + + def set_session_context: (Hash[untyped, untyped] tags, ?Datadog::CI::TestSession | Datadog::Tracing::SpanOperation? test_session) -> void + + def set_suite_context: (Hash[untyped, untyped] tags, ?span: Datadog::Tracing::SpanOperation, ?name: String) -> void + + def set_module_context: (Hash[untyped, untyped] tags, ?Datadog::CI::TestModule | Datadog::Tracing::SpanOperation? test_module) -> void + + def start_datadog_tracer_span: (String span_name, Hash[untyped, untyped] span_options) ?{ (untyped) -> untyped } -> untyped + + def build_tracing_span_options: (String? service_name, String type, ?Hash[Symbol, untyped] other_options) -> Hash[Symbol, untyped] + end + end + end +end diff --git a/sig/datadog/ci/test_visibility/context/global.rbs b/sig/datadog/ci/test_visibility/store/global.rbs similarity index 98% rename from sig/datadog/ci/test_visibility/context/global.rbs rename to sig/datadog/ci/test_visibility/store/global.rbs index 04d4e404..1ccad05f 100644 --- a/sig/datadog/ci/test_visibility/context/global.rbs +++ b/sig/datadog/ci/test_visibility/store/global.rbs @@ -1,7 +1,7 @@ module Datadog module CI module TestVisibility - module Context + module Store class Global @mutex: Thread::Mutex diff --git a/sig/datadog/ci/test_visibility/context/local.rbs b/sig/datadog/ci/test_visibility/store/local.rbs similarity index 95% rename from sig/datadog/ci/test_visibility/context/local.rbs rename to sig/datadog/ci/test_visibility/store/local.rbs index 3ce7c880..3be11c68 100644 --- a/sig/datadog/ci/test_visibility/context/local.rbs +++ b/sig/datadog/ci/test_visibility/store/local.rbs @@ -1,7 +1,7 @@ module Datadog module CI module TestVisibility - module Context + module Store class Local @key: Symbol diff --git a/spec/datadog/ci/test_visibility/context/global_spec.rb b/spec/datadog/ci/test_visibility/store/global_spec.rb similarity index 98% rename from spec/datadog/ci/test_visibility/context/global_spec.rb rename to spec/datadog/ci/test_visibility/store/global_spec.rb index 4fcb0fc5..2b2b4d15 100644 --- a/spec/datadog/ci/test_visibility/context/global_spec.rb +++ b/spec/datadog/ci/test_visibility/store/global_spec.rb @@ -1,4 +1,8 @@ -RSpec.describe Datadog::CI::TestVisibility::Context::Global do +# frozen_string_literal: true + +require_relative "../../../../../lib/datadog/ci/test_visibility/store/global" + +RSpec.describe Datadog::CI::TestVisibility::Store::Global do subject(:context) { described_class.new } let(:tracer_span) { double(Datadog::Tracing::SpanOperation, name: "test.session", service: "my-service") } diff --git a/spec/datadog/ci/test_visibility/context/local_spec.rb b/spec/datadog/ci/test_visibility/store/local_spec.rb similarity index 94% rename from spec/datadog/ci/test_visibility/context/local_spec.rb rename to spec/datadog/ci/test_visibility/store/local_spec.rb index 48273bc7..dbb5a330 100644 --- a/spec/datadog/ci/test_visibility/context/local_spec.rb +++ b/spec/datadog/ci/test_visibility/store/local_spec.rb @@ -1,4 +1,8 @@ -RSpec.describe Datadog::CI::TestVisibility::Context::Local do +# frozen_string_literal: true + +require_relative "../../../../../lib/datadog/ci/test_visibility/store/local" + +RSpec.describe Datadog::CI::TestVisibility::Store::Local do subject { described_class.new } let(:tracer_span) { double(Datadog::Tracing::SpanOperation, get_tag: "my test") }