#[cfg(any(feature = "daemon", feature = "tempo", feature = "jaeger-query"))]
pub mod auth_header;
pub mod jaeger;
#[cfg(feature = "jaeger-query")]
pub mod jaeger_query;
pub mod json;
#[cfg(any(feature = "tempo", feature = "jaeger-query"))]
pub mod lookback;
pub mod otlp;
pub mod pg_stat;
#[cfg(feature = "tempo")]
pub mod tempo;
#[cfg(any(feature = "tempo", feature = "jaeger-query"))]
pub(crate) mod url_enc;
pub mod zipkin;
use crate::event::SpanEvent;
const NON_SQL_DB_SYSTEMS: &[&str] = &[
"redis",
"memcached",
"mongodb",
"cassandra",
"dynamodb",
"couchbase",
"couchdb",
"elasticsearch",
"opensearch",
"neo4j",
"hbase",
"geode",
"influxdb",
];
#[must_use]
pub(crate) fn is_non_sql_db_system(system: &str) -> bool {
NON_SQL_DB_SYSTEMS
.iter()
.any(|s| system.eq_ignore_ascii_case(s))
}
pub trait IngestSource {
type Error: std::error::Error;
fn ingest(&self, raw: &[u8]) -> Result<Vec<SpanEvent>, Self::Error>;
}