pub use subms::{
ObservationCtx, SubMsBenchSummary, SubMsObserver, SubMsStageKind, SubMsStageSummary,
SubMsTimer, SubMsTimerCheckpoint,
};
#[cfg(feature = "autoconfig")]
mod autoconfig;
#[cfg(feature = "bridge")]
mod bridge;
#[cfg(feature = "bridge")]
mod composite;
#[cfg(feature = "bridge")]
mod drift;
#[cfg(feature = "exemplars")]
mod exemplars;
#[cfg(feature = "exporter-otlp")]
mod exporter_otlp;
#[cfg(feature = "exporter-prometheus")]
mod exporter_prometheus;
#[cfg(feature = "exporter-stdout")]
mod exporter_stdout;
#[cfg(feature = "observer")]
mod observer;
#[cfg(feature = "observer")]
mod observer_async;
#[cfg(feature = "bridge")]
mod resource;
#[cfg(feature = "tracing")]
mod tracing_observer;
#[cfg(feature = "autoconfig")]
pub use autoconfig::{
SubMsObserverRegistration, SubMsOtelAutoConfig, auto_configure, clear_registered_observers,
register_observer, registered_observers,
};
#[cfg(feature = "bridge")]
pub use bridge::{
HISTOGRAM_NAME, HISTOGRAM_UNIT, attributes_from_ctx, attributes_from_summary, export_summary,
export_timer, histogram_boundaries,
};
#[cfg(feature = "bridge")]
pub use composite::CompositeObserver;
#[cfg(feature = "bridge")]
pub use drift::{
REFERENCE_DIVERGENCE_COUNTER_NAME, ReferenceDivergenceRecorder, divergence_attributes,
record_reference_divergence,
};
#[cfg(feature = "exemplars")]
pub use exemplars::{DEFAULT_RESERVOIR_K, EXEMPLAR_GAUGE_NAME, Exemplar, ExemplarReservoir};
#[cfg(feature = "exporter-otlp")]
pub use exporter_otlp::{ExporterOtlpHelper, OtlpBuilder, OtlpProtocol};
#[cfg(feature = "exporter-prometheus")]
pub use exporter_prometheus::{
ExporterPrometheusHelper, PrometheusBuilder, PrometheusTextExporter,
};
#[cfg(feature = "exporter-stdout")]
pub use exporter_stdout::ExporterStdoutHelper;
#[cfg(feature = "observer")]
pub use observer::OtelObserver;
#[cfg(feature = "observer")]
pub use observer_async::OtelObserverAsync;
#[cfg(feature = "bridge")]
pub use resource::SubMsOtelResource;
#[cfg(feature = "tracing")]
pub use tracing_observer::{TRACING_SPAN_NAME, TracingObserver};
#[cfg(feature = "bridge")]
pub const OPS_TOTAL_COUNTER_NAME: &str = "subms.bench.ops_total";
#[cfg(feature = "bridge")]
pub const IN_FLIGHT_GAUGE_NAME: &str = "subms.bench.in_flight";
#[cfg(feature = "bridge")]
pub const EXEMPLARS_KEPT_COUNTER_NAME: &str = "subms.otel.exemplars_kept_total";
#[cfg(feature = "bridge")]
pub const DROPPED_TOTAL_COUNTER_NAME: &str = "subms.otel.dropped_total";