class LogStash::Outputs::DatadogLogs::DatadogClient

Public Instance Methods

close() click to toggle source
# File lib/logstash/outputs/datadog_logs.rb, line 180
def close
  raise NotImplementedError, "Datadog transport client should implement the close method"
end
send(payload) click to toggle source
# File lib/logstash/outputs/datadog_logs.rb, line 176
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/logstash/outputs/datadog_logs.rb, line 158
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 send due to: #{e.message}")
      sleep backoff
      backoff = 2 * backoff unless backoff > max_backoff
      retries += 1
      retry
    end
  rescue => ex
    @logger.error("Unmanaged exception while sending log to datadog #{ex.message}")
  end
end