vector/sinks/datadog/logs/mod.rs
1//! The Datadog Logs [`vector_lib::sink::VectorSink`]
2//!
3//! This module contains the [`vector_lib::sink::VectorSink`] instance that is responsible for
4//! taking a stream of [`vector_lib::event::Event`] instances and getting them flung out to the
5//! Datadog Log API. The log API is relatively generous in terms of its
6//! constraints, except that:
7//!
8//! * a 'payload' is comprised of no more than 1,000 array members
9//! * a 'payload' may not be more than 5Mb in size, uncompressed and
10//! * a 'payload' may not mix API keys
11//!
12//! Otherwise per [the
13//! docs](https://docs.datadoghq.com/api/latest/logs/#send-logs) there aren't
14//! other major constraints we have to follow in this implementation. The sink
15//! is careful to always send the maximum payload size excepting where we
16//! violate the size constraint.
17//!
18//! The endpoint used to send the payload is currently being migrated from
19//! `/v1/input` to `/api/v2/logs`, but the content of the above documentation
20//! still applies for `/api/v2/logs`.
21
22#[cfg(all(test, feature = "datadog-logs-integration-tests"))]
23mod integration_tests;
24#[cfg(test)]
25mod tests;
26
27pub mod config;
28pub mod service;
29pub mod sink;
30
31pub use self::config::DatadogLogsConfig;