Skip to content

Releases: asaaki/opentelemetry-tide

v0.12.0

15 Feb 17:17
v0.12.0
7efd91e
Compare
Choose a tag to compare

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 to BoxedTracer 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

03 Oct 13:27
90d18c1
Compare
Choose a tag to compare

Changed

  • Update dependencies

    [dependencies]
    opentelemetry = "0.16.0"
    opentelemetry-prometheus = { version = "0.9.0", optional = true }
    opentelemetry-semantic-conventions = "0.8.0"

Cosmetic

v0.10.0

28 Jul 20:17
v0.10.0
ab58987
Compare
Choose a tag to compare

Changed

  • Update dependencies

v0.9.0

10 May 23:11
73792e6
Compare
Choose a tag to compare

Fixed

  • MetricsConfig would cause a stack overflow on construction

v0.8.0

10 May 21:57
0955a63
Compare
Choose a tag to compare

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 of 0.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 the aes crate"
    • Ignore "RUSTSEC-2021-0060: aes-soft has been merged into the aes crate"
  • Use cargo audit directly, as actions-rs/audit-check does not support ignore option

v0.7.0 - Spring Release with Easter eggs

03 Apr 00:38
534f889
Compare
Choose a tag to compare

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, and full, 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

08 Mar 19:09
v0.6.2
6308e98
Compare
Choose a tag to compare

Changed

  • Update dependencies (tide 0.16)

Cosmetic

  • Use auto merge action for dependabot (patch level updates)

v0.6.1

26 Jan 17:47
v0.6.1
09de7ec
Compare
Choose a tag to compare

Added

  • Dependabot v2 configuration

Changed

  • Update dependencies (#3)
  • Include "The opentelemetry-tide Contributors" in the authors list of the crate

Thank you for your contribution

v0.6.0

13 Jan 22:51
v0.6.0
c5968e9
Compare
Choose a tag to compare

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

Thank you for your contribution