Class: LogStash::Outputs::DatadogLogs::DatadogClient
- Inherits:
-
Object
- Object
- LogStash::Outputs::DatadogLogs::DatadogClient
show all
- Defined in:
- lib/logstash/outputs/datadog_logs.rb
Instance Method Summary
collapse
Instance Method Details
#close ⇒ Object
184
185
186
|
# File 'lib/logstash/outputs/datadog_logs.rb', line 184
def close
raise NotImplementedError, "Datadog transport client should implement the close method"
end
|
#send(payload) ⇒ Object
180
181
182
|
# File 'lib/logstash/outputs/datadog_logs.rb', line 180
def send(payload)
raise NotImplementedError, "Datadog transport client should implement the send method"
end
|
#send_retries(payload, max_retries, max_backoff) ⇒ Object
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
|
# File 'lib/logstash/outputs/datadog_logs.rb', line 161
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
@logger.error("Max number of retries reached, dropping message. Last exception: #{ex.message}")
rescue => ex
@logger.error("Unmanaged exception while sending log to datadog #{ex.message}")
end
end
|