Skip to main content

provide_telemetry/
lib.rs

1// SPDX-FileCopyrightText: Copyright (C) 2026 provide.io llc
2// SPDX-License-Identifier: Apache-2.0
3// SPDX-Comment: Part of provide-telemetry.
4//
5
6#![allow(non_upper_case_globals)]
7
8mod _lock;
9pub mod backpressure;
10pub mod cardinality;
11#[cfg(feature = "governance")]
12pub mod classification;
13mod config;
14#[cfg(feature = "governance")]
15pub mod consent;
16pub mod context;
17mod errors;
18pub mod fingerprint;
19pub mod health;
20pub mod logger;
21pub mod metrics;
22pub mod otel;
23pub mod pii;
24mod policies;
25pub mod propagation;
26#[cfg(feature = "governance")]
27pub mod receipts;
28pub mod resilience;
29mod runtime;
30pub mod sampling;
31pub mod schema;
32mod secret_patterns_generated;
33mod setup;
34pub mod slo;
35pub mod testing;
36pub mod tracer;
37pub mod tracing;
38
39pub use backpressure::{get_queue_policy, release, set_queue_policy, try_acquire, QueuePolicy};
40pub use cardinality::{
41    clear_cardinality_limits, get_cardinality_limits, guard_attributes, register_cardinality_limit,
42    CardinalityLimit,
43};
44#[cfg(feature = "governance")]
45pub use classification::{
46    classify_key, clear_classification_rules, get_classification_policy,
47    register_classification_rule, register_classification_rules, set_classification_policy,
48    ClassificationPolicy, ClassificationRule, DataClass,
49};
50pub use config::{
51    redact_config, BackpressureConfig, EventSchemaConfig, ExporterPolicyConfig, LoggingConfig,
52    MetricsConfig, RuntimeOverrides, SLOConfig, SamplingConfig, SecurityConfig, TelemetryConfig,
53    TracingConfig,
54};
55#[cfg(feature = "governance")]
56pub use consent::{
57    get_consent_level, reset_consent_for_tests, set_consent_level, should_allow, ConsentLevel,
58};
59pub use context::{
60    bind_context, bind_session_context, clear_context, clear_session_context, get_session_id,
61    unbind_context,
62};
63pub use errors::{ConfigurationError, EventSchemaError, TelemetryError};
64pub use fingerprint::compute_error_fingerprint;
65pub use health::{get_health_snapshot, HealthSnapshot};
66pub use logger::{
67    buffer_logger, configure_logging, enable_console_capture_for_tests,
68    enable_json_capture_for_tests, enable_pretty_capture_for_tests, get_logger, logger,
69    null_logger, reset_logging_config_for_tests, set_as_global_logger, take_console_capture,
70    take_json_capture, take_pretty_capture, BufferLogger, EventMetadata, LogEvent, Logger,
71    NullLogger,
72};
73pub use metrics::{
74    counter, gauge, get_meter, histogram, reset_metrics_for_tests, Counter, Gauge, Histogram, Meter,
75};
76pub use otel::{_reset_otel_for_tests, otel_installed_for_tests};
77pub use pii::{
78    get_pii_rules, get_secret_patterns, register_pii_rule, register_secret_pattern,
79    replace_pii_rules, reset_secret_patterns_for_tests, sanitize_payload, PIIMode, PIIRule,
80    SecretPattern,
81};
82pub use propagation::{
83    bind_propagation_context, extract_w3c_context, parse_baggage, PropagationContext,
84};
85#[cfg(feature = "governance")]
86pub use receipts::{
87    enable_receipts, get_emitted_receipts_for_tests, reset_receipts_for_tests, RedactionReceipt,
88};
89pub use resilience::{
90    get_circuit_state, get_exporter_policy, run_with_resilience, set_exporter_policy,
91    ExporterPolicy,
92};
93pub use runtime::{
94    get_runtime_config, get_runtime_status, reconfigure_telemetry, reload_runtime_from_env,
95    update_runtime_config, RuntimeStatus, SignalStatus,
96};
97pub use sampling::{
98    get_sampling_policy, set_sampling_policy, should_sample, SamplingPolicy, Signal,
99};
100pub use schema::{
101    event, event_name, get_strict_schema, set_strict_schema, validate_required_keys, Event,
102};
103pub use setup::{setup_telemetry, shutdown_telemetry};
104pub use slo::{
105    classify_error, get_error_count_for_tests, get_request_count_for_tests, record_red_metrics,
106    record_use_metrics, reset_slo_for_tests, slo_initialized_for_tests,
107};
108pub use tracer::{
109    get_trace_context, get_tracer, set_trace_context, trace, tracer, NoopSpan, Tracer,
110};