Commit Graph

11 Commits

Author SHA1 Message Date
Jan Kühle cb419bb9f1
Configure async runtime in Rust code instead of cargo feature (#481)
Configure the async runtime (Tokio, async-std, ...) in Rust using
`with_runtime(runtime)` on the trace pipeline builders instead of using
cargo features.

The main advantages of using Rust code is that cargo doesn't have a way
of describing mutually exclusive features at the moment. We currently
fall back to Tokio if multiple runtime features are enabled. This can be
confusing, especially if a runtime feature is enabled by another crate.

Choosing the runtime in Rust code means the entire trace pipeline
configuration is in one place.
2021-03-20 21:23:12 -07:00
Zhongyang Wu e9ef3e23d6
feat: clean up lint.sh, use API to set grpc layer (#467)
`tonic` and `grpcio` take different approaches in serializing and sending spans. This change use an enum to represent the two grpc layers. If users want to bring their own grpc layer, they can implement `TracerExporter` and `SpanExporter` and then install it.
2021-03-15 10:02:14 -07:00
Zhongyang Wu c697b58008
Remove tracer provider guard. (#444)
This adds a suite of tests to ensure the global tracer provider shuts down properly using different runtimes. For optimal performance it is often preferable to spawn shutdown tasks using `tokio::spawn` instead of `tokio::spawn_blocking`, but in order to have a consistent API between blocking and non-blocking programs, then shutdown code will block on some tasks. This can cause deadlocks with single-threaded runtimes, the current solution is to spawn the background task in a separate thread if single threaded runtime features are present.
2021-02-27 11:23:33 -08:00
Dirkjan Ochtman 1bfaef0b7c
Minimal dependencies (#413) 2021-01-04 16:07:40 -08:00
Filip ea61575aa6
Add tonic for opentelemetry-otlp (#352)
Add support for the [tonic](https://github.com/hyperium/tonic) implementation of the gRPC transport layer to `opentelemetry-otlp`.

- Use tonic as the underlying gRPC transport layer (default)
- Optional: TLS support using rustls
- Optional: Use the platform's native certificate store
- Optional: Use an async client
2020-12-04 19:20:52 -08:00
Dirkjan Ochtman f9e91e719c
Move opentelemetry crate into a directory to flatten the workspace (#324)
This makes working with cargo easier, because many commands (like cargo
check, cargo test) will apply to all crates by default, rather than
only selecting the crate in the top-level directory.
2020-11-01 12:35:57 -08:00
Raphael Taylor-Davies 5c64f663b7
Add datadog exporter (#216) (#222) 2020-09-24 12:15:59 -07:00
Chen Yixiao 3a7439925b
Move experimental features to separate folder (#134) 2020-06-16 14:47:47 -07:00
xd009642 07ad1e6faa
Add base64 conversion traits (#81)
* Add base64 conversion traits

Co-authored-by: Julian Tescher <jatescher@gmail.com>
2020-03-21 11:33:45 -07:00
James O. D. Hunt a0e8f0b63a
features: Add "serialize" feature (#59)
Added optional `serialize` feature that allows `SpanData` to be
serialized/deserialized using the `serde` crate.

Also added a basic unit test for `SpanData` to test serialization and
deserialization.

Fixes: #58.

Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
2020-01-31 11:16:21 -08:00
Isobel Redelmeier b793cc502e
Configure CI through GitHub Actions (#19)
[Closes #10]
2019-12-02 13:20:40 -08:00