mod console;
#[cfg(feature = "datadog")]
mod datadog;
#[cfg(feature = "datadog-otlp")]
mod datadog_otlp;
#[cfg(feature = "grafana-cloud")]
mod grafana_cloud;
#[cfg(feature = "honeycomb")]
mod honeycomb;
#[cfg(feature = "new-relic")]
mod new_relic;
#[cfg(feature = "otlp")]
mod otlp;
pub(crate) use console::ConsoleExporterConfig;
#[cfg(feature = "datadog")]
pub(crate) use datadog::DatadogNativeExporterConfig;
#[cfg(feature = "datadog-otlp")]
pub(crate) use datadog_otlp::{DatadogGrpcExporterConfig, DatadogHttpExporterConfig};
#[cfg(feature = "grafana-cloud")]
pub(crate) use grafana_cloud::GrafanaCloudHttpExporterConfig;
#[cfg(feature = "honeycomb")]
pub(crate) use honeycomb::{HoneycombGrpcExporterConfig, HoneycombHttpExporterConfig};
#[cfg(feature = "new-relic")]
pub(crate) use new_relic::{NewRelicGrpcExporterConfig, NewRelicHttpExporterConfig};
#[cfg(feature = "otlp")]
pub(crate) use otlp::Header;
#[cfg(feature = "otlp")]
pub(crate) use otlp::{
HeadersList, OtlpGrpcExporterConfig, OtlpHttpExporterConfig, TemporalityPreference,
};
use apollo_configuration::configuration;
#[configuration]
pub(crate) enum SpanExporter {
#[cfg(feature = "otlp")]
OtlpHttp(OtlpHttpExporterConfig),
#[cfg(feature = "otlp")]
OtlpGrpc(OtlpGrpcExporterConfig),
#[cfg(feature = "datadog")]
Datadog(DatadogNativeExporterConfig),
#[cfg(feature = "datadog-otlp")]
DatadogOtlpHttp(DatadogHttpExporterConfig),
#[cfg(feature = "datadog-otlp")]
DatadogOtlpGrpc(DatadogGrpcExporterConfig),
#[cfg(feature = "new-relic")]
NewRelicHttp(NewRelicHttpExporterConfig),
#[cfg(feature = "new-relic")]
NewRelicGrpc(NewRelicGrpcExporterConfig),
#[cfg(feature = "honeycomb")]
HoneycombHttp(HoneycombHttpExporterConfig),
#[cfg(feature = "honeycomb")]
HoneycombGrpc(HoneycombGrpcExporterConfig),
#[cfg(feature = "grafana-cloud")]
GrafanaCloud(GrafanaCloudHttpExporterConfig),
Console(ConsoleExporterConfig),
}
#[configuration]
pub(crate) enum MetricExporter {
#[cfg(feature = "otlp")]
OtlpHttp(OtlpHttpExporterConfig),
#[cfg(feature = "otlp")]
OtlpGrpc(OtlpGrpcExporterConfig),
#[cfg(feature = "datadog-otlp")]
DatadogOtlpHttp(DatadogHttpExporterConfig),
#[cfg(feature = "datadog-otlp")]
DatadogOtlpGrpc(DatadogGrpcExporterConfig),
#[cfg(feature = "new-relic")]
NewRelicHttp(NewRelicHttpExporterConfig),
#[cfg(feature = "new-relic")]
NewRelicGrpc(NewRelicGrpcExporterConfig),
#[cfg(feature = "honeycomb")]
HoneycombHttp(HoneycombHttpExporterConfig),
#[cfg(feature = "honeycomb")]
HoneycombGrpc(HoneycombGrpcExporterConfig),
#[cfg(feature = "grafana-cloud")]
GrafanaCloud(GrafanaCloudHttpExporterConfig),
Console(ConsoleExporterConfig),
}
#[configuration]
pub(crate) enum LogExporter {
#[cfg(feature = "otlp")]
OtlpHttp(OtlpHttpExporterConfig),
#[cfg(feature = "otlp")]
OtlpGrpc(OtlpGrpcExporterConfig),
#[cfg(feature = "datadog-otlp")]
DatadogOtlpHttp(DatadogHttpExporterConfig),
#[cfg(feature = "datadog-otlp")]
DatadogOtlpGrpc(DatadogGrpcExporterConfig),
#[cfg(feature = "new-relic")]
NewRelicHttp(NewRelicHttpExporterConfig),
#[cfg(feature = "new-relic")]
NewRelicGrpc(NewRelicGrpcExporterConfig),
#[cfg(feature = "honeycomb")]
HoneycombHttp(HoneycombHttpExporterConfig),
#[cfg(feature = "honeycomb")]
HoneycombGrpc(HoneycombGrpcExporterConfig),
#[cfg(feature = "grafana-cloud")]
GrafanaCloud(GrafanaCloudHttpExporterConfig),
Console(ConsoleExporterConfig),
}