opentelemetry-otlp 0.13.0

Exporter for the OpenTelemetry Collector
Documentation
[package]
name = "opentelemetry-otlp"
version = "0.13.0"
description = "Exporter for the OpenTelemetry Collector"
homepage = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp"
repository = "https://github.com/open-telemetry/opentelemetry-rust/tree/main/opentelemetry-otlp"
readme = "README.md"
categories = [
    "development-tools::debugging",
    "development-tools::profiling",
    "asynchronous",
]
keywords = ["opentelemetry", "otlp", "logging", "tracing", "metrics"]
license = "Apache-2.0"
edition = "2021"
rust-version = "1.60"
autotests = false

[lib]
doctest = false

[[test]]
name = "smoke"
path = "tests/smoke.rs"
required-features = ["integration-testing"]

[package.metadata.docs.rs]
all-features = true
rustdoc-args = ["--cfg", "docsrs"]

[dependencies]
async-trait = "0.1"
futures-core = "0.3"
opentelemetry-proto = { version = "0.3", path = "../opentelemetry-proto", default-features = false }
grpcio = { version = "0.12", optional = true }
opentelemetry_api = { version = "0.20", default-features = false, path = "../opentelemetry-api" }
opentelemetry_sdk = { version = "0.20", default-features = false, path = "../opentelemetry-sdk" }
opentelemetry-http = { version = "0.9", path = "../opentelemetry-http", optional = true }
opentelemetry-semantic-conventions = { version = "0.12", path = "../opentelemetry-semantic-conventions" }
protobuf = { version = "2.18", optional = true }

prost = { version = "0.11.0", optional = true }
tonic = { version = "0.9.0", optional = true }
tokio = { version = "1.0", features = ["sync", "rt"], optional = true }

reqwest = { version = "0.11", optional = true, default-features = false }
surf = { version = "2.0", optional = true, default-features = false }
http = { version = "0.2", optional = true }
serde = { version = "1.0", features = ["derive"], optional = true }
thiserror = "1.0"

[dev-dependencies]
tokio-stream = { version = "0.1", features = ["net"] }
# need tokio runtime to run smoke tests.
opentelemetry_sdk = { features = ["trace", "rt-tokio", "testing"], path = "../opentelemetry-sdk" }
time = { version = "0.3", features = ["macros"] }
tokio = { version = "1.0", features = ["macros", "rt-multi-thread"] }
futures = { version = "0.3", default-features = false, features = ["std"] }

[features]
# telemetry pillars and functions
trace = ["opentelemetry_api/trace", "opentelemetry_sdk/trace", "opentelemetry-proto/traces"]
metrics = ["opentelemetry_api/metrics", "opentelemetry_sdk/metrics", "opentelemetry-proto/metrics", "grpc-tonic"]
logs = ["opentelemetry_api/logs", "opentelemetry_sdk/logs", "opentelemetry-proto/logs"]

# add ons
serialize = ["serde"]

default = ["grpc-tonic", "trace"]

# grpc using tonic
grpc-tonic = ["tonic", "prost", "http", "tokio", "opentelemetry-proto/gen-tonic"]
gzip-tonic = ["tonic/gzip"]
tls = ["tonic/tls"]
tls-roots = ["tls", "tonic/tls-roots"]

# grpc using grpcio
grpc-sys = ["grpcio", "opentelemetry-proto/gen-protoc", "protobuf"]
openssl = ["grpcio/openssl"]
openssl-vendored = ["grpcio/openssl-vendored"]

# http binary
http-proto = ["prost", "opentelemetry-http", "opentelemetry-proto/gen-tonic-messages", "http", "trace", "metrics"]
reqwest-blocking-client = ["reqwest/blocking", "opentelemetry-http/reqwest"]
reqwest-client = ["reqwest", "opentelemetry-http/reqwest"]
reqwest-rustls = ["reqwest", "reqwest/rustls-tls-native-roots"]
surf-client = ["surf", "opentelemetry-http/surf"]

# test
integration-testing = ["tonic", "prost", "tokio/full", "trace"]