Releases: asaaki/opentelemetry-tide
v0.12.0
Changed
-
Update dependencies and fix breaking changes
opentelemetry = "0.17" opentelemetry-prometheus = { version = "0.10", optional = true } opentelemetry-semantic-conventions = "0.9" prometheus = { version = "0.13", optional = true }
Due to lifetime and thread-safety issues (non-Send across await point),
a switch toBoxedTracer
was necessary. Since most examples and implementation do that,
this crate gets in line with the others now. -
Ensure that docs are generated for both middlewares (
#[cfg(any(…, doc))]
)
Added
-
More default methods to set up the middlewares (via
opentelemetry_tide::TideExt
):.with_default_metrics_middleware()
.with_default_tracing_middleware()
.with_default_middlewares()
This should avoid the need to pass in a tracer for common scenarios.
v0.11.0 — German Unity Edition
Changed
-
Update dependencies
[dependencies] opentelemetry = "0.16.0" opentelemetry-prometheus = { version = "0.9.0", optional = true } opentelemetry-semantic-conventions = "0.8.0"
Cosmetic
- Use Rust 1.54's new feature to include the README content into the crate doc via a macro call;
see https://blog.rust-lang.org/2021/07/29/Rust-1.54.0.html#attributes-can-invoke-function-like-macros
v0.10.0
v0.9.0
v0.8.0
Added
-
MetricsConfig
to provide a more convenient and publicly accessible way of
configuring the metrics middleware;
this allows you to also align histogram boundaries across your services, even if you do not use
this crate at all (prometheus loves to have a defined set of buckets for identical metrics)Usage example:
use opentelemetry_tide::{MetricsConfig, TideExt}; // ... snip ... app.with_middlewares(tracer, MetricsConfig::default());
Changed
- metrics endpoint is configurable now
- histogram boundaries default buckets
- more granular steppings
- lower bound is now
0.001
instead of0.0001
- (new) summary quantiles default, which has more different nines buckets than the upstream default;
currently the summary is not really used anywhere yet, otel rust/prom need some changes/features
exposed to users, yet we still want to communicate a more desired standard nature if we would
use summaries somewhere - Update dependencies and adapt code accordingly
Cosmetic
- Fix formatting and notes in README.md
- Ignore "RUSTSEC-2020-0056: stdweb is unmaintained" (#11)
- Ignore aes related audits until upstream dependencies have been updated
- Ignore "RUSTSEC-2021-0059:
aesni
has been merged into theaes
crate" - Ignore "RUSTSEC-2021-0060:
aes-soft
has been merged into theaes
crate"
- Ignore "RUSTSEC-2021-0059:
- Use cargo audit directly, as
actions-rs/audit-check
does not support ignore option
v0.7.0 - Spring Release with Easter eggs
This is indeed a "big" release! It add's quite some features and is also a breaking change due to the fast moving opentelemetry rust community. For existing users most notably the Uninstall guard is gone. Instead you are advised to explicitly shutdown the tracer provider after your app finished, so the final spans will be sent off to your observability infrastructure (my fancy buzzword for jaeger-agent here). Check out the example server code for how to do that.
Added
-
middleware for metrics (
OpenTelemetryMetricsMiddleware
)Simplest example to get it up and running:
// setup app.with(opentelemetry_tide::OpenTelemetryMetricsMiddleware::new(None)); // the rest
Note: it will respond to
/metrics
in the same app. This routes is currently hardcoded.
If that clashes for you, please open an issue or send me a PR with a change. -
tide::Server trait extension
TideExt
to set up middlewares more conveniently:use opentelemetry_tide::TideExt; // for tracing only app.with_tracing_middleware(tracer); // for metrics only app.with_metrics_middleware(None); // using both together app.with_middlewares(tracer, None);
If you use
.with_middlewares
, keep in mind that the order is trace -> metrics, so that the tracing middleware can also observe and trace calls to the/metrics
route.
If that is an undesired behaviour and/or you want this configurable, please open an issue or send me a PR with a change.
Also the method names are open for debate, but I wouldn't expect people to use many extensions, or that tide would add those names anytime soon. -
feature flags
trace
,metrics
, andfull
, with "full" being the default.
If you want to scope it down, use[dependencies] opentelemetry-tide = { version = "0.7", default-features = false, features = ["trace"]
for example.
Changed
-
Update dependencies and adapt code accordingly
This is a breaking change!
Most notably: The "uninstall" guard is gone; see examples for how to do it with current otel crates.
Cosmetic
- "Fix" the issue with examples' shared module
- Improve the example code (move more setup and config to shared module)
- Adds k6.io script and .envrc sample for load testing purposes
- Generate readme from crate documentation and a template (using
cargo-readme
)
v0.6.2
v0.6.1
v0.6.0
Added
- Changelog with basic historical summaries
Changed
-
Middleware takes the uninstall guard to support different setup styles and ensures the provider lives long enough.
Example for an alternative tracing middleware init in this PR comment.
-
dependency updates and adjustment of code and example