Class: AWS::Distro::OpenTelemetry::Exporter::XRay::UDP::UdpExporter
- Inherits:
-
Object
- Object
- AWS::Distro::OpenTelemetry::Exporter::XRay::UDP::UdpExporter
- Defined in:
- lib/aws/distro/opentelemetry/exporter/xray/udp/exporter.rb
Overview
Class that sends data over UDP.
Instance Method Summary collapse
-
#initialize(endpoint = nil) ⇒ UdpExporter
constructor
A new instance of UdpExporter.
- #send_data(data, signal_prefix) ⇒ Object
- #shutdown ⇒ Object
Constructor Details
#initialize(endpoint = nil) ⇒ UdpExporter
Returns a new instance of UdpExporter.
25 26 27 28 29 |
# File 'lib/aws/distro/opentelemetry/exporter/xray/udp/exporter.rb', line 25 def initialize(endpoint = nil) @endpoint = endpoint || DEFAULT_ENDPOINT @host, @port = parse_endpoint(@endpoint) @socket = UDPSocket.new end |
Instance Method Details
#send_data(data, signal_prefix) ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/aws/distro/opentelemetry/exporter/xray/udp/exporter.rb', line 31 def send_data(data, signal_prefix) base64_encoded_string = Base64.strict_encode64(data) = "#{PROTOCOL_HEADER}#{signal_prefix}#{base64_encoded_string}" begin @socket.send(.encode('utf-8'), 0, @host, @port) rescue StandardError => e ::OpenTelemetry.logger.error("Error sending UDP data: #{e}") raise e end end |
#shutdown ⇒ Object
43 44 45 |
# File 'lib/aws/distro/opentelemetry/exporter/xray/udp/exporter.rb', line 43 def shutdown @socket.close end |