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