[package]
edition = "2021"
rust-version = "1.81"
name = "provide-telemetry"
version = "0.7.0"
build = false
autolib = false
autobins = false
autoexamples = false
autotests = false
autobenches = false
description = "Cross-language telemetry helpers with privacy, resilience, and OTLP support."
homepage = "https://github.com/provide-io/provide-telemetry"
readme = "README.md"
keywords = [
"telemetry",
"observability",
"opentelemetry",
"otlp",
]
categories = ["development-tools::debugging"]
license = "Apache-2.0"
repository = "https://github.com/provide-io/provide-telemetry"
[features]
default = []
otel = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:opentelemetry-semantic-conventions",
"dep:reqwest",
"dep:tokio-stream",
"dep:url",
]
otel-grpc = [
"otel",
"opentelemetry-otlp/grpc-tonic",
"dep:http",
]
[lib]
name = "provide_telemetry"
path = "src/lib.rs"
[[example]]
name = "config_probe"
path = "examples/config_probe.rs"
[[example]]
name = "contract_probe"
path = "examples/contract_probe.rs"
[[example]]
name = "e2e_cross_language_client"
path = "examples/e2e_cross_language_client.rs"
[[example]]
name = "e2e_cross_language_server"
path = "examples/e2e_cross_language_server.rs"
[[example]]
name = "emit_log_probe"
path = "examples/emit_log_probe.rs"
[[example]]
name = "flush_collector_probe"
path = "examples/flush_collector_probe.rs"
[[example]]
name = "openobserve_01_emit_all_signals"
path = "examples/openobserve_01_emit_all_signals.rs"
[[example]]
name = "openobserve_02_verify_ingestion"
path = "examples/openobserve_02_verify_ingestion.rs"
[[example]]
name = "openobserve_03_hardening_profile"
path = "examples/openobserve_03_hardening_profile.rs"
[[example]]
name = "openobserve_04_via_public_api"
path = "examples/openobserve_04_via_public_api.rs"
[[example]]
name = "runtime_probe"
path = "examples/runtime_probe.rs"
[[example]]
name = "telemetry_01_basic"
path = "examples/telemetry_01_basic.rs"
[[example]]
name = "telemetry_02_w3c_propagation"
path = "examples/telemetry_02_w3c_propagation.rs"
[[example]]
name = "telemetry_03_sampling_and_backpressure"
path = "examples/telemetry_03_sampling_and_backpressure.rs"
[[example]]
name = "telemetry_04_runtime_reconfigure"
path = "examples/telemetry_04_runtime_reconfigure.rs"
[[example]]
name = "telemetry_05_pii_and_cardinality_policy"
path = "examples/telemetry_05_pii_and_cardinality_policy.rs"
[[example]]
name = "telemetry_06_exporter_resilience_modes"
path = "examples/telemetry_06_exporter_resilience_modes.rs"
[[example]]
name = "telemetry_07_slo_and_health_snapshot"
path = "examples/telemetry_07_slo_and_health_snapshot.rs"
[[example]]
name = "telemetry_08_full_hardening_profile"
path = "examples/telemetry_08_full_hardening_profile.rs"
[[example]]
name = "telemetry_09_error_handling_and_degradation"
path = "examples/telemetry_09_error_handling_and_degradation.rs"
[[example]]
name = "telemetry_10_performance_metrics"
path = "examples/telemetry_10_performance_metrics.rs"
[[example]]
name = "telemetry_11_lazy_loading_proof"
path = "examples/telemetry_11_lazy_loading_proof.rs"
[[example]]
name = "telemetry_12_error_fingerprint_and_sessions"
path = "examples/telemetry_12_error_fingerprint_and_sessions.rs"
[[example]]
name = "telemetry_13_security_hardening"
path = "examples/telemetry_13_security_hardening.rs"
[[example]]
name = "telemetry_14_data_governance"
path = "examples/telemetry_14_data_governance.rs"
[[test]]
name = "cardinality_test"
path = "tests/cardinality_test.rs"
[[test]]
name = "config_applicability"
path = "tests/config_applicability.rs"
[[test]]
name = "config_test"
path = "tests/config_test.rs"
[[test]]
name = "fuzz_test"
path = "tests/fuzz_test.rs"
[[test]]
name = "governance_test"
path = "tests/governance_test.rs"
[[test]]
name = "integration_setup_test"
path = "tests/integration_setup_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "jcs_number_fixtures"
path = "tests/jcs_number_fixtures.rs"
[[test]]
name = "logger_guard_test"
path = "tests/logger_guard_test.rs"
[[test]]
name = "logger_identity_sampling_test"
path = "tests/logger_identity_sampling_test.rs"
[[test]]
name = "logger_levels_test"
path = "tests/logger_levels_test.rs"
[[test]]
name = "logger_test"
path = "tests/logger_test.rs"
[[test]]
name = "logger_wrapper_surface_test"
path = "tests/logger_wrapper_surface_test.rs"
[[test]]
name = "metrics_otel_mutation_tests"
path = "tests/metrics_otel_mutation_tests.rs"
[[test]]
name = "metrics_test"
path = "tests/metrics_test.rs"
[[test]]
name = "mutation_classification_tests"
path = "tests/mutation_classification_tests.rs"
[[test]]
name = "mutation_config_tests"
path = "tests/mutation_config_tests.rs"
[[test]]
name = "mutation_consent_tests"
path = "tests/mutation_consent_tests.rs"
[[test]]
name = "mutation_health_tests"
path = "tests/mutation_health_tests.rs"
[[test]]
name = "mutation_remaining_tests"
path = "tests/mutation_remaining_tests.rs"
[[test]]
name = "mutation_resilience_tests"
path = "tests/mutation_resilience_tests.rs"
[[test]]
name = "mutation_slo_tests"
path = "tests/mutation_slo_tests.rs"
[[test]]
name = "openobserve_test"
path = "tests/openobserve_test.rs"
[[test]]
name = "otlp_collector_test"
path = "tests/otlp_collector_test.rs"
[[test]]
name = "otlp_runtime_test"
path = "tests/otlp_runtime_test.rs"
[[test]]
name = "parity_extra_test"
path = "tests/parity_extra_test.rs"
[[test]]
name = "parity_pii_fixes_test"
path = "tests/parity_pii_fixes_test.rs"
[[test]]
name = "parity_test"
path = "tests/parity_test.rs"
[[test]]
name = "propagation_test"
path = "tests/propagation_test.rs"
[[test]]
name = "property_test"
path = "tests/property_test.rs"
[[test]]
name = "receipt_fixtures"
path = "tests/receipt_fixtures.rs"
[[test]]
name = "resilience_missing_state_test"
path = "tests/resilience_missing_state_test.rs"
[[test]]
name = "runtime_additional_test"
path = "tests/runtime_additional_test.rs"
[[test]]
name = "runtime_provider_live_reload_test"
path = "tests/runtime_provider_live_reload_test.rs"
[[test]]
name = "runtime_reconfigure_test"
path = "tests/runtime_reconfigure_test.rs"
[[test]]
name = "runtime_runtime_policy_test"
path = "tests/runtime_runtime_policy_test.rs"
[[test]]
name = "runtime_test"
path = "tests/runtime_test.rs"
[[test]]
name = "runtime_test_support"
path = "tests/runtime_test_support.rs"
[[test]]
name = "shutdown_unreachable_endpoint_test"
path = "tests/shutdown_unreachable_endpoint_test.rs"
[[test]]
name = "signal_pipeline_order"
path = "tests/signal_pipeline_order.rs"
[[test]]
name = "testing_test"
path = "tests/testing_test.rs"
[[test]]
name = "tracing_test"
path = "tests/tracing_test.rs"
[[bench]]
name = "hot_path"
path = "benches/hot_path.rs"
harness = false
[dependencies.hmac]
version = "0.12"
[dependencies.http]
version = "1.1"
features = ["std"]
optional = true
default-features = false
[dependencies.log]
version = "0.4"
[dependencies.opentelemetry]
version = "0.31"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
"http-proto",
"reqwest-client",
"trace",
"metrics",
"logs",
]
optional = true
default-features = false
[dependencies.opentelemetry-semantic-conventions]
version = "0.31"
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31"
features = [
"rt-tokio",
"logs",
"metrics",
"trace",
"experimental_logs_batch_log_processor_with_async_runtime",
"experimental_metrics_periodicreader_with_async_runtime",
"experimental_trace_batch_span_processor_with_async_runtime",
]
optional = true
[dependencies.percent-encoding]
version = "2.3.1"
[dependencies.rand]
version = "0.9"
[dependencies.regex]
version = "1.11.1"
[dependencies.reqwest]
version = "0.12"
features = [
"blocking",
"json",
"rustls-tls",
]
optional = true
default-features = false
[dependencies.serde]
version = "1.0"
features = ["derive"]
[dependencies.serde_json]
version = "1.0"
[dependencies.sha2]
version = "0.10"
[dependencies.thiserror]
version = "2.0"
[dependencies.tokio]
version = "1.44"
features = [
"rt",
"rt-multi-thread",
"sync",
"time",
]
[dependencies.tokio-stream]
version = "0.1"
features = ["sync"]
optional = true
[dependencies.url]
version = "2"
optional = true
[dependencies.uuid]
version = "1.18"
features = ["v4"]
[dev-dependencies.base64]
version = "0.23"
[dev-dependencies.criterion]
version = "0.8"
features = ["html_reports"]
[dev-dependencies.mutants]
version = "0.0.3"
[dev-dependencies.proptest]
version = "1"
[dev-dependencies.rstest]
version = "0.26"
[dev-dependencies.serde_yaml]
version = "0.9"
[dev-dependencies.tokio]
version = "1.44"
features = ["macros"]