Class: Fluent::Plugin::OpentelemetryOutput::HttpHandler
- Inherits:
-
Object
- Object
- Fluent::Plugin::OpentelemetryOutput::HttpHandler
- Defined in:
- lib/fluent/plugin/out_opentelemetry.rb
Instance Method Summary collapse
- #export(record) ⇒ Object
-
#initialize(http_config, transport_config, logger) ⇒ HttpHandler
constructor
A new instance of HttpHandler.
Constructor Details
#initialize(http_config, transport_config, logger) ⇒ HttpHandler
Returns a new instance of HttpHandler.
87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 87 def initialize(http_config, transport_config, logger) @http_config = http_config @transport_config = transport_config @logger = logger @tls_settings = {} if @transport_config.protocol == :tls @tls_settings[:client_cert] = @transport_config.cert_path @tls_settings[:client_key] = @transport_config.private_key_path @tls_settings[:client_key_pass] = @transport_config.private_key_passphrase @tls_settings[:ssl_min_version] = Opentelemetry::TLS_VERSIONS_MAP[@transport_config.min_version] @tls_settings[:ssl_max_version] = Opentelemetry::TLS_VERSIONS_MAP[@transport_config.max_version] end @timeout_settings = { read_timeout: http_config.read_timeout, write_timeout: http_config.write_timeout, connect_timeout: http_config.connect_timeout } end |
Instance Method Details
#export(record) ⇒ Object
108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'lib/fluent/plugin/out_opentelemetry.rb', line 108 def export(record) uri, connection = create_http_connection(record) response = connection.post if response.status != 200 if response.status == 400 # The client MUST NOT retry the request when it receives HTTP 400 Bad Request response. raise Fluent::UnrecoverableError, "got unrecoverable error response from '#{uri}', response code is #{response.status}" end if @http_config.retryable_response_codes&.include?(response.status) raise RetryableResponse, "got retryable error response from '#{uri}', response code is #{response.status}" end if @http_config.error_response_as_unrecoverable raise Fluent::UnrecoverableError, "got unrecoverable error response from '#{uri}', response code is #{response.status}" else @logger.error "got error response from '#{uri}', response code is #{response.status}" end end end |