vector/sinks/
mod.rs

1#![allow(missing_docs)]
2use futures::future::BoxFuture;
3use snafu::Snafu;
4
5pub mod prelude;
6pub mod util;
7
8#[cfg(feature = "sinks-amqp")]
9pub mod amqp;
10#[cfg(feature = "sinks-appsignal")]
11pub mod appsignal;
12#[cfg(feature = "sinks-aws_cloudwatch_logs")]
13pub mod aws_cloudwatch_logs;
14#[cfg(feature = "sinks-aws_cloudwatch_metrics")]
15pub mod aws_cloudwatch_metrics;
16#[cfg(any(
17    feature = "sinks-aws_kinesis_streams",
18    feature = "sinks-aws_kinesis_firehose",
19))]
20pub mod aws_kinesis;
21#[cfg(feature = "sinks-aws_s3")]
22pub mod aws_s3;
23#[cfg(feature = "sinks-aws_sqs")]
24pub mod aws_s_s;
25#[cfg(feature = "sinks-axiom")]
26pub mod axiom;
27#[cfg(feature = "sinks-azure_blob")]
28pub mod azure_blob;
29#[cfg(feature = "sinks-azure_blob")]
30pub mod azure_common;
31#[cfg(feature = "sinks-azure_logs_ingestion")]
32pub mod azure_logs_ingestion;
33#[cfg(feature = "sinks-azure_monitor_logs")]
34pub mod azure_monitor_logs;
35#[cfg(feature = "sinks-blackhole")]
36pub mod blackhole;
37#[cfg(feature = "sinks-clickhouse")]
38pub mod clickhouse;
39#[cfg(feature = "sinks-console")]
40pub mod console;
41#[cfg(feature = "sinks-databend")]
42pub mod databend;
43#[cfg(any(
44    feature = "sinks-datadog_events",
45    feature = "sinks-datadog_logs",
46    feature = "sinks-datadog_metrics",
47    feature = "sinks-datadog_traces"
48))]
49pub mod datadog;
50#[cfg(feature = "sinks-doris")]
51pub mod doris;
52#[cfg(feature = "sinks-elasticsearch")]
53pub mod elasticsearch;
54#[cfg(feature = "sinks-file")]
55pub mod file;
56#[cfg(feature = "sinks-gcp")]
57pub mod gcp;
58#[cfg(feature = "sinks-gcp-chronicle")]
59pub mod gcp_chronicle;
60#[cfg(any(feature = "sinks-gcp-chronicle", feature = "sinks-gcp"))]
61pub mod gcs_common;
62#[cfg(any(
63    feature = "sinks-greptimedb_metrics",
64    feature = "sinks-greptimedb_logs"
65))]
66pub mod greptimedb;
67#[cfg(feature = "sinks-honeycomb")]
68pub mod honeycomb;
69#[cfg(feature = "sinks-http")]
70pub mod http;
71#[cfg(feature = "sinks-humio")]
72pub mod humio;
73#[cfg(any(feature = "sinks-influxdb", feature = "prometheus-integration-tests"))]
74pub mod influxdb;
75#[cfg(feature = "sinks-kafka")]
76pub mod kafka;
77#[cfg(feature = "sinks-keep")]
78pub mod keep;
79#[cfg(feature = "sinks-loki")]
80pub mod loki;
81#[cfg(feature = "sinks-mezmo")]
82pub mod mezmo;
83#[cfg(feature = "sinks-mqtt")]
84pub mod mqtt;
85#[cfg(feature = "sinks-nats")]
86pub mod nats;
87#[cfg(feature = "sinks-new_relic")]
88pub mod new_relic;
89#[cfg(feature = "sinks-webhdfs")]
90pub mod opendal_common;
91#[cfg(feature = "sinks-opentelemetry")]
92pub mod opentelemetry;
93#[cfg(feature = "sinks-papertrail")]
94pub mod papertrail;
95#[cfg(feature = "sinks-postgres")]
96pub mod postgres;
97#[cfg(feature = "sinks-prometheus")]
98pub mod prometheus;
99#[cfg(feature = "sinks-pulsar")]
100pub mod pulsar;
101#[cfg(feature = "sinks-redis")]
102pub mod redis;
103#[cfg(all(feature = "sinks-aws_s3", feature = "aws-core"))]
104pub mod s3_common;
105#[cfg(feature = "sinks-sematext")]
106pub mod sematext;
107#[cfg(feature = "sinks-socket")]
108pub mod socket;
109#[cfg(feature = "sinks-splunk_hec")]
110pub mod splunk_hec;
111#[cfg(feature = "sinks-statsd")]
112pub mod statsd;
113#[cfg(feature = "sinks-vector")]
114pub mod vector;
115#[cfg(feature = "sinks-webhdfs")]
116pub mod webhdfs;
117#[cfg(feature = "sinks-websocket")]
118pub mod websocket;
119#[cfg(feature = "sinks-websocket-server")]
120pub mod websocket_server;
121
122pub use vector_lib::{config::Input, sink::VectorSink};
123
124pub type Healthcheck = BoxFuture<'static, crate::Result<()>>;
125
126/// Common build errors
127#[derive(Debug, Snafu)]
128pub enum BuildError {
129    #[snafu(display("Unable to resolve DNS for {:?}", address))]
130    DnsFailure { address: String },
131    #[snafu(display("DNS errored {}", source))]
132    DnsError { source: crate::dns::DnsError },
133    #[snafu(display("Socket address problem: {}", source))]
134    SocketAddressError { source: std::io::Error },
135    #[snafu(display("URI parse error: {}", source))]
136    UriParseError { source: ::http::uri::InvalidUri },
137    #[snafu(display("HTTP request build error: {}", source))]
138    HTTPRequestBuilderError { source: ::http::Error },
139}
140
141/// Common healthcheck errors
142#[derive(Debug, Snafu)]
143pub enum HealthcheckError {
144    #[snafu(display("Unexpected status: {}", status))]
145    UnexpectedStatus { status: ::http::StatusCode },
146}