4 releases (breaking)
0.4.0 | Oct 26, 2023 |
---|---|
0.3.0 | Mar 26, 2023 |
0.2.0 | Sep 13, 2022 |
0.1.0 | Jan 22, 2022 |
#85 in #open-telemetry
1MB
20K
SLoC
Dynatrace
This is the last release of the crate!
Dynatrace supports native OpenTelemetry protocol (OTLP) ingest for traces, metrics and logs. All signals can be sent directly to Dynatrace via OTLP protobuf over HTTP using the built-in OTLP/HTTP Exporter available in the OpenTelemetry Rust SDK. More information on configuring your Rust applications to use the OTLP exporter can be found in the Dynatrace documentation.
Dynatrace OpenTelemetry Metrics Exporter for Rust
Warning Dynatrace supports native OpenTelemetry protocol (OTLP) ingest for traces, metrics and logs. Therefore, the proprietary Dynatrace OpenTelemetry metrics exporter is deprecated in favor of exporting via OTLP/HTTP.
The exporter is still available but after the end of 2023, no support, updates, or compatibility with newer OTel versions will be provided.
Please refer to the migration guide for instructions on how to migrate to the OTLP HTTP exporter, as well as reasoning and benefits for this transition.
For an example on how to configure the OTLP exporter in a Rust application, check out the Rust integration walk-through page in the Dynatrace documentation.
Overview
OpenTelemetry
is a collection of tools, APIs, and SDKs used to instrument,
generate, collect, and export telemetry data (metrics, logs, and traces) for
analysis in order to understand your software's performance and behavior. This
crate provides additional propagators and exporters for sending telemetry data
to Dynatrace
.
Exporter features
- Metrics - Ingest metric data to Dynatrace using the Dynatrace Metrics ingestion protocol.
This exporter only supports the ingestion of metric data. For trace data, use
opentelemetry-otlp
as described in the
Dynatrace documentation for Rust. This exporter is based on the OpenTelemetry
Metrics SDK for Rust, which is currently in an alpha state and neither
considered stable nor complete as of this writing. As such, this exporter is
not intended for production use until the underlying OpenTelemetry Metrics API
and SDK are stable. See open-telemetry/opentelemetry-rust
for the current
state of the OpenTelemetry SDK for Rust.
Examples
The examples directory contains an advanced example showing the ingestion of trace data and metric data together.
Performance
For optimal performance, a batch exporter is used. You can enable the rt-tokio
feature flag to use the tokio
runtime, or enable the rt-async-std
feature
flag to use the async-std
runtime to have a batch exporter configured for
you automatically.
Choosing an HTTP client
The HTTP client that this exporter will use can be overridden with feature
flags. By default the reqwest-client
feature flag is enabled which will use
the reqwest
http client.
reqwest-client
(enabled by default): use thereqwest
http client to send metric data.reqwest-tls
(enabled by default): use thereqwest
http client withrustls
to enable TLS support.reqwest-blocking-client
: use thereqwest
blocking http client to send metric data.isahc-client
: use theisahc
http client to send metric data.surf-client
: use thesurf
http client to send metric data.
You can also configure your own http client implementation using the HttpClient
trait.
WebAssembly
WebAssembly support can be enabled with the wasm
feature flag.
Dependencies
~3–20MB
~297K SLoC