laminar_connectors/otel/
mod.rs1#![allow(clippy::doc_markdown)] pub mod config;
16pub mod convert;
17pub mod schema;
18pub mod server;
19pub mod source;
20
21pub use config::{OtelSignal, OtelSourceConfig};
22pub use source::OtelSource;
23
24use std::sync::Arc;
25
26use crate::config::ConnectorInfo;
27use crate::registry::ConnectorRegistry;
28
29use self::config::otel_source_config_keys;
30use self::schema::traces_schema;
31
32pub fn register_otel_source(
41 registry: &ConnectorRegistry,
42) -> Result<(), crate::error::ConnectorError> {
43 let info = ConnectorInfo {
44 schema_capabilities: crate::schema::resolution::SchemaCapabilities::built_in(),
45 name: "otel".to_string(),
46 display_name: "OpenTelemetry OTLP/gRPC Source".to_string(),
47 version: env!("CARGO_PKG_VERSION").to_string(),
48 is_source: true,
49 is_sink: false,
50 config_keys: otel_source_config_keys(),
51 };
52
53 registry.register_source(
54 "otel",
55 info,
56 Arc::new(|registry: Option<&Arc<prometheus::Registry>>| {
57 Ok(Box::new(OtelSource::new(
58 traces_schema(),
59 registry.map(Arc::as_ref),
60 )))
61 }),
62 )
63}