2 unstable releases

Uses new Rust 2021

0.2.0 Sep 13, 2022
0.1.0 Jan 22, 2022

#15 in #zipkin

24 downloads per month

Apache-2.0

100KB
1.5K SLoC

OpenTelemetry — An observability framework for cloud-native software.

OpenTelemetry Dynatrace

Dynatrace integration for applications instrumented with OpenTelemetry.

Crates.io: opentelemetry-dynatrace Documentation LICENSE GitHub Actions CI Gitter chat

Documentation | Chat

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

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 the reqwest http client to send metric data.
  • reqwest-tls (enabled by default): use the reqwest http client with rustls to enable TLS support.
  • reqwest-blocking-client: use the reqwest blocking http client to send metric data.
  • isahc-client: use the isahc http client to send metric data.
  • surf-client: use the surf 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–15MB
~277K SLoC