[package]
edition = "2021"
rust-version = "1.81"
name = "provide-telemetry"
version = "0.3.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 = ["governance"]
governance = []
otel = [
"dep:opentelemetry",
"dep:opentelemetry_sdk",
"dep:opentelemetry-otlp",
"dep:reqwest",
"dep:tracing-opentelemetry",
]
[lib]
name = "provide_telemetry"
path = "src/lib.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 = "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 = "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"
required-features = ["governance"]
[[test]]
name = "config_test"
path = "tests/config_test.rs"
[[test]]
name = "governance_test"
path = "tests/governance_test.rs"
[[test]]
name = "integration_test"
path = "tests/integration_test.rs"
[[test]]
name = "logger_test"
path = "tests/logger_test.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 = "no_governance_test"
path = "tests/no_governance_test.rs"
[[test]]
name = "openobserve_test"
path = "tests/openobserve_test.rs"
[[test]]
name = "parity_test"
path = "tests/parity_test.rs"
[[test]]
name = "propagation_test"
path = "tests/propagation_test.rs"
[[test]]
name = "runtime_test"
path = "tests/runtime_test.rs"
[[test]]
name = "testing_test"
path = "tests/testing_test.rs"
[[test]]
name = "tracing_test"
path = "tests/tracing_test.rs"
[dependencies.base64]
version = "0.22"
[dependencies.hmac]
version = "0.12"
[dependencies.mutants]
version = "0.0.3"
[dependencies.opentelemetry]
version = "0.31"
optional = true
[dependencies.opentelemetry-otlp]
version = "0.31"
features = [
"http-proto",
"reqwest-client",
]
optional = true
[dependencies.opentelemetry_sdk]
version = "0.31"
features = ["rt-tokio"]
optional = true
[dependencies.percent-encoding]
version = "2.3.1"
[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 = "1.0"
[dependencies.tokio]
version = "1.44"
features = [
"rt",
"rt-multi-thread",
"sync",
"time",
]
[dependencies.tracing-opentelemetry]
version = "0.32"
optional = true
[dependencies.uuid]
version = "1.18"
features = ["v4"]
[dev-dependencies.rstest]
version = "0.25"