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(any(feature = "sinks-azure_blob", feature = "sinks-azure_logs_ingestion",))]
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(feature = "sinks-databricks-zerobus")]
44pub mod databricks_zerobus;
45#[cfg(any(
46    feature = "sinks-datadog_events",
47    feature = "sinks-datadog_logs",
48    feature = "sinks-datadog_metrics",
49    feature = "sinks-datadog_traces"
50))]
51pub mod datadog;
52#[cfg(feature = "sinks-doris")]
53pub mod doris;
54#[cfg(feature = "sinks-elasticsearch")]
55pub mod elasticsearch;
56#[cfg(feature = "sinks-file")]
57pub mod file;
58#[cfg(feature = "sinks-gcp")]
59pub mod gcp;
60#[cfg(feature = "sinks-gcp-chronicle")]
61pub mod gcp_chronicle;
62#[cfg(any(feature = "sinks-gcp-chronicle", feature = "sinks-gcp"))]
63pub mod gcs_common;
64#[cfg(any(
65    feature = "sinks-greptimedb_metrics",
66    feature = "sinks-greptimedb_logs"
67))]
68pub mod greptimedb;
69#[cfg(feature = "sinks-honeycomb")]
70pub mod honeycomb;
71#[cfg(feature = "sinks-http")]
72pub mod http;
73#[cfg(feature = "sinks-humio")]
74pub mod humio;
75#[cfg(any(feature = "sinks-influxdb", feature = "prometheus-integration-tests"))]
76pub mod influxdb;
77#[cfg(feature = "sinks-kafka")]
78pub mod kafka;
79#[cfg(feature = "sinks-keep")]
80pub mod keep;
81#[cfg(feature = "sinks-loki")]
82pub mod loki;
83#[cfg(feature = "sinks-mezmo")]
84pub mod mezmo;
85#[cfg(feature = "sinks-mqtt")]
86pub mod mqtt;
87#[cfg(feature = "sinks-nats")]
88pub mod nats;
89#[cfg(feature = "sinks-new_relic")]
90pub mod new_relic;
91#[cfg(feature = "sinks-webhdfs")]
92pub mod opendal_common;
93#[cfg(feature = "sinks-opentelemetry")]
94pub mod opentelemetry;
95#[cfg(feature = "sinks-papertrail")]
96pub mod papertrail;
97#[cfg(feature = "sinks-postgres")]
98pub mod postgres;
99#[cfg(feature = "sinks-prometheus")]
100pub mod prometheus;
101#[cfg(feature = "sinks-pulsar")]
102pub mod pulsar;
103#[cfg(feature = "sinks-redis")]
104pub mod redis;
105#[cfg(all(feature = "sinks-aws_s3", feature = "aws-core"))]
106pub mod s3_common;
107#[cfg(feature = "sinks-sematext")]
108pub mod sematext;
109#[cfg(feature = "sinks-socket")]
110pub mod socket;
111#[cfg(feature = "sinks-splunk_hec")]
112pub mod splunk_hec;
113#[cfg(feature = "sinks-statsd")]
114pub mod statsd;
115#[cfg(feature = "sinks-vector")]
116pub mod vector;
117#[cfg(feature = "sinks-webhdfs")]
118pub mod webhdfs;
119#[cfg(feature = "sinks-websocket")]
120pub mod websocket;
121#[cfg(feature = "sinks-websocket-server")]
122pub mod websocket_server;
123
124pub use vector_lib::{config::Input, sink::VectorSink};
125
126pub type Healthcheck = BoxFuture<'static, crate::Result<()>>;
127
128/// Common build errors
129#[derive(Debug, Snafu)]
130pub enum BuildError {
131    #[snafu(display("Unable to resolve DNS for {:?}", address))]
132    DnsFailure { address: String },
133    #[snafu(display("DNS errored {}", source))]
134    DnsError { source: crate::dns::DnsError },
135    #[snafu(display("Socket address problem: {}", source))]
136    SocketAddressError { source: std::io::Error },
137    #[snafu(display("URI parse error: {}", source))]
138    UriParseError { source: ::http::uri::InvalidUri },
139    #[snafu(display("HTTP request build error: {}", source))]
140    HTTPRequestBuilderError { source: ::http::Error },
141}
142
143/// Common healthcheck errors
144#[derive(Debug, Snafu)]
145pub enum HealthcheckError {
146    #[snafu(display("Unexpected status: {}", status))]
147    UnexpectedStatus { status: ::http::StatusCode },
148}