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
8pub mod backpressure;
9pub mod cardinality;
10#[cfg(feature = "governance")]
11pub mod classification;
12mod config;
13#[cfg(feature = "governance")]
14pub mod consent;
15pub mod context;
16mod errors;
17pub mod fingerprint;
18pub mod health;
19pub mod logger;
20pub mod metrics;
21pub mod otel;
22pub mod pii;
23pub mod propagation;
24#[cfg(feature = "governance")]
25pub mod receipts;
26pub mod resilience;
27mod runtime;
28pub mod sampling;
29pub mod schema;
30mod setup;
31pub mod slo;
32pub mod testing;
33pub mod tracer;
34pub mod tracing;
35
36pub use backpressure::{get_queue_policy, release, set_queue_policy, try_acquire, QueuePolicy};
37pub use cardinality::{
38    clear_cardinality_limits, get_cardinality_limits, guard_attributes, register_cardinality_limit,
39    CardinalityLimit,
40};
41#[cfg(feature = "governance")]
42pub use classification::{
43    classify_key, clear_classification_rules, get_classification_policy,
44    register_classification_rule, register_classification_rules, set_classification_policy,
45    ClassificationPolicy, ClassificationRule, DataClass,
46};
47pub use config::{
48    redact_config, BackpressureConfig, ExporterPolicyConfig, RuntimeOverrides, SLOConfig,
49    SamplingConfig, SecurityConfig, TelemetryConfig,
50};
51#[cfg(feature = "governance")]
52pub use consent::{
53    get_consent_level, reset_consent_for_tests, set_consent_level, should_allow, ConsentLevel,
54};
55pub use context::{
56    bind_context, bind_session_context, clear_context, clear_session_context, get_session_id,
57    unbind_context,
58};
59pub use errors::{ConfigurationError, EventSchemaError, TelemetryError};
60pub use fingerprint::compute_error_fingerprint;
61pub use health::{get_health_snapshot, HealthSnapshot};
62pub use logger::{
63    buffer_logger, get_logger, logger, null_logger, BufferLogger, LogEvent, Logger, NullLogger,
64};
65pub use metrics::{
66    counter, gauge, get_meter, histogram, reset_metrics_for_tests, Counter, Gauge, Histogram, Meter,
67};
68pub use otel::{_reset_otel_for_tests, otel_installed_for_tests};
69pub use pii::{
70    get_pii_rules, get_secret_patterns, register_pii_rule, register_secret_pattern,
71    replace_pii_rules, reset_secret_patterns_for_tests, sanitize_payload, PIIMode, PIIRule,
72    SecretPattern,
73};
74pub use propagation::{bind_propagation_context, extract_w3c_context, PropagationContext};
75#[cfg(feature = "governance")]
76pub use receipts::{
77    enable_receipts, get_emitted_receipts_for_tests, reset_receipts_for_tests, RedactionReceipt,
78};
79pub use resilience::{
80    get_circuit_state, get_exporter_policy, run_with_resilience, set_exporter_policy,
81    ExporterPolicy,
82};
83pub use runtime::{
84    get_runtime_config, reconfigure_telemetry, reload_runtime_from_env, update_runtime_config,
85};
86pub use sampling::{
87    get_sampling_policy, set_sampling_policy, should_sample, SamplingPolicy, Signal,
88};
89pub use schema::{event, event_name, get_strict_schema, set_strict_schema, Event};
90pub use setup::{setup_telemetry, shutdown_telemetry};
91pub use slo::{
92    classify_error, get_error_count_for_tests, get_request_count_for_tests, record_red_metrics,
93    record_use_metrics, reset_slo_for_tests, slo_initialized_for_tests,
94};
95pub use tracer::{
96    get_trace_context, get_tracer, set_trace_context, trace, tracer, NoopSpan, Tracer,
97};