class Fluent::DatadogOutput::DatadogClient
Top level class for datadog transport clients, managing retries and backoff
Public Instance Methods
close()
click to toggle source
# File lib/fluent/plugin/out_datadog.rb, line 294 def close raise NotImplementedError, "Datadog transport client should implement the close method" end
send(payload)
click to toggle source
# File lib/fluent/plugin/out_datadog.rb, line 290 def send(payload) raise NotImplementedError, "Datadog transport client should implement the send method" end
send_retries(payload, max_retries, max_backoff)
click to toggle source
# File lib/fluent/plugin/out_datadog.rb, line 274 def send_retries(payload, max_retries, max_backoff) backoff = 1 retries = 0 begin send(payload) rescue RetryableError => e if retries < max_retries || max_retries < 0 @logger.warn("Retrying ", :exception => e, :backtrace => e.backtrace) sleep backoff backoff = 2 * backoff unless backoff > max_backoff retries += 1 retry end end end