lib/datadog/ci/test_visibility/transport.rb in datadog-ci-1.2.0 vs lib/datadog/ci/test_visibility/transport.rb in datadog-ci-1.3.0

- old
+ new

@@ -1,12 +1,14 @@ # frozen_string_literal: true require "datadog/core/environment/identity" require_relative "serializers/factories/test_level" +require_relative "../ext/telemetry" require_relative "../ext/transport" require_relative "../transport/event_platform_transport" +require_relative "../transport/telemetry" module Datadog module CI module TestVisibility class Transport < Datadog::CI::Transport::EventPlatformTransport @@ -29,10 +31,14 @@ send_events(traces) end private + def telemetry_endpoint_tag + Ext::Telemetry::Endpoint::TEST_CYCLE + end + def send_payload(encoded_payload) api.citestcycle_request( path: Datadog::CI::Ext::Transport::TEST_VISIBILITY_INTAKE_PATH, payload: encoded_payload ) @@ -44,24 +50,17 @@ end end def encode_span(trace, span) serializer = serializers_factory.serializer(trace, span, options: {itr_correlation_id: itr&.correlation_id}) - if serializer.valid? encoded = encoder.encode(serializer) + return nil if event_too_large?(span, encoded) - if encoded.size > max_payload_size - # This single event is too large, we can't flush it - Datadog.logger.warn("Dropping test event. Payload too large: '#{span.inspect}'") - Datadog.logger.warn(encoded) - - return nil - end - encoded else Datadog.logger.warn("Invalid event skipped: #{serializer} Errors: #{serializer.validation_errors}") + CI::Transport::Telemetry.endpoint_payload_dropped(1, endpoint: telemetry_endpoint_tag) nil end end def encoder