27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/logstash/outputs/datadog_logs.rb', line 27
def register
require "socket"
client = nil
@codec.on_event do |event, payload|
message = "#{@api_key} #{payload}\n"
retries = 0
backoff = 1
begin
client ||= new_client
client.write(message)
rescue => e
@logger.warn("Could not send payload", :exception => e, :backtrace => e.backtrace)
client.close rescue nil
client = nil
if retries < max_retries || max_retries < 0
sleep backoff
backoff = 2 * backoff unless backoff > max_backoff
retries += 1
retry
end
@logger.warn("Max number of retries reached, dropping the payload", :payload => payload, :max_retries => max_retries)
end
end
end
|