Class: Datadog::CI::TestVisibility::Transport
- Inherits:
-
Object
- Object
- Datadog::CI::TestVisibility::Transport
- Defined in:
- lib/datadog/ci/test_visibility/transport.rb
Constant Summary collapse
- DEFAULT_MAX_PAYLOAD_SIZE =
CI test cycle intake’s limit is 5.1MB uncompressed We will use a bit more conservative value 5MB
5 * 1024 * 1024
Instance Attribute Summary collapse
-
#api ⇒ Object
readonly
Returns the value of attribute api.
-
#dd_env ⇒ Object
readonly
Returns the value of attribute dd_env.
-
#max_payload_size ⇒ Object
readonly
Returns the value of attribute max_payload_size.
-
#serializers_factory ⇒ Object
readonly
Returns the value of attribute serializers_factory.
Instance Method Summary collapse
-
#initialize(api:, dd_env: nil, serializers_factory: Datadog::CI::TestVisibility::Serializers::Factories::TestLevel, max_payload_size: DEFAULT_MAX_PAYLOAD_SIZE) ⇒ Transport
constructor
A new instance of Transport.
- #send_traces(traces) ⇒ Object
Constructor Details
#initialize(api:, dd_env: nil, serializers_factory: Datadog::CI::TestVisibility::Serializers::Factories::TestLevel, max_payload_size: DEFAULT_MAX_PAYLOAD_SIZE) ⇒ Transport
Returns a new instance of Transport.
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/datadog/ci/test_visibility/transport.rb', line 26 def initialize( api:, dd_env: nil, serializers_factory: Datadog::CI::TestVisibility::Serializers::Factories::TestLevel, max_payload_size: DEFAULT_MAX_PAYLOAD_SIZE ) @serializers_factory = serializers_factory @max_payload_size = max_payload_size @dd_env = dd_env @api = api end |
Instance Attribute Details
#api ⇒ Object (readonly)
Returns the value of attribute api.
21 22 23 |
# File 'lib/datadog/ci/test_visibility/transport.rb', line 21 def api @api end |
#dd_env ⇒ Object (readonly)
Returns the value of attribute dd_env.
21 22 23 |
# File 'lib/datadog/ci/test_visibility/transport.rb', line 21 def dd_env @dd_env end |
#max_payload_size ⇒ Object (readonly)
Returns the value of attribute max_payload_size.
21 22 23 |
# File 'lib/datadog/ci/test_visibility/transport.rb', line 21 def max_payload_size @max_payload_size end |
#serializers_factory ⇒ Object (readonly)
Returns the value of attribute serializers_factory.
21 22 23 |
# File 'lib/datadog/ci/test_visibility/transport.rb', line 21 def serializers_factory @serializers_factory end |
Instance Method Details
#send_traces(traces) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/datadog/ci/test_visibility/transport.rb', line 38 def send_traces(traces) return [] if traces.nil? || traces.empty? Datadog.logger.debug { "Sending #{traces.count} traces..." } encoded_events = encode_traces(traces) if encoded_events.empty? Datadog.logger.debug { "Empty encoded events list, skipping send" } return [] end responses = [] Datadog::Core::Chunker.chunk_by_size(encoded_events, max_payload_size).map do |chunk| encoded_payload = pack_events(chunk) Datadog.logger.debug do "Send chunk of #{chunk.count} events; payload size #{encoded_payload.size}" end response = send_payload(encoded_payload) responses << response end responses end |