An example of a fairing for rocket to use tracing (as this pops up at many places in dicussions and questions)

Overview

Rocket Tracing Fairing Example

Open in Gitpod

This repository aims to give a short example of how you can add a Fairing to your Rocket for tracing and how to use it in requests.

As Rocket currently doesn't implement this by default many have asked about implementing this. The actix-web tracing crate has been taken as a reference for the info span data

Logging

There 2 log types and 5 log levels you can configure at runtime.

Log Types

Log types control how your output is formatted. They can be controlled via the environment variable LOG_TYPE.

The 2 types are:

  • formatted(default): a good choice for development
  • json: the propert choice if you are running your app in a production environment. If you are using vector you can check out parse_json(...)

Log Levels

A lot of that code originated from a stable PR in rocket's repository SergioBenites/Rocket#1579 so thanks a lot to the people there and @jebrosen for the awesome work.

You can controll these with the environment variable LOG_LEVEL:

  • critical: Shows only critical logs
  • support: Shows logs to help out
  • normal: Includes all your default logs
  • debug: Shows debuging with tracing
  • off: Shows exactly nothing

Request-Tracing

You need to add the enter and drop statements inside your request as Rocket will not enter the span by default as it is currently not implemented in the base repository.

Names

If your parser follows the opentelemetry spec it will pick up the otel.name field as the name of the span which is a composit of the uri path and the method

Request Ids

You may be hosting rocket on a platform which provides it's own request ids via the X-Request-Id standard. If so rocket will pick this up and add it to the request span.

If not rocket will create a uuid, use that and append it as the X-Request-Id header to the response.

Why isn't this a crate?

As of right now I have has 4 people asking me the same question about tracing and rocket from difference perspektives within 4 days. If more people point out their desire to have a crate for this please open an issue and let the people vote.

Comments
  • fix(deps): update rust crate serde to 1.0.148

    fix(deps): update rust crate serde to 1.0.148

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde (source) | dependencies | patch | 1.0.145 -> 1.0.148 |


    Release Notes

    serde-rs/serde

    v1.0.148

    Compare Source

    • Support remote derive for generic types that have private fields (#​2327)

    v1.0.147

    Compare Source

    • Add serde::de::value::EnumAccessDeserializer which transforms an EnumAccess into a Deserializer (#​2305)

    v1.0.146

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 1
  • fix(deps): update rust crate serde_json to 1.0.89

    fix(deps): update rust crate serde_json to 1.0.89

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde_json | dependencies | patch | 1.0.85 -> 1.0.89 |


    Release Notes

    serde-rs/json

    v1.0.89

    Compare Source

    • Fix invalid JSON incorrectly accepted when a large number has no digits after decimal point (#​953)

    v1.0.88

    Compare Source

    • Optimize serde_json::Map's implementation of append and clone_from (#​952, thanks @​Lucretiel)

    v1.0.87

    Compare Source

    • Add write_i128 and write_u128 methods to serde_json::Formatter to control the formatting of 128-bit integers (#​940, thanks @​Lucretiel)

    v1.0.86

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate uuid to 1.2.2

    fix(deps): update rust crate uuid to 1.2.2

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | uuid | dependencies | minor | 1.1.2 -> 1.2.2 |


    Release Notes

    uuid-rs/uuid

    v1.2.2

    Compare Source

    What's Changed

    Full Changelog: https://github.com/uuid-rs/uuid/compare/1.2.1...1.2.2

    v1.2.1

    Compare Source

    What's Changed

    Full Changelog: https://github.com/uuid-rs/uuid/compare/1.2.0...1.2.1

    v1.2.0

    Compare Source

    What's Changed

    New Contributors

    Full Changelog: https://github.com/uuid-rs/uuid/compare/1.1.2...1.2.0


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate tracing-subscriber to 0.3.16

    fix(deps): update rust crate tracing-subscriber to 0.3.16

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | tracing-subscriber (source) | dependencies | patch | 0.3.15 -> 0.3.16 |


    Release Notes

    tokio-rs/tracing

    v0.3.16: tracing-subscriber 0.3.16

    Compare Source

    This release of tracing-subscriber fixes a regression introduced in v0.3.15 where Option::None's Layer implementation would set the max level hint to OFF. In addition, it adds several new APIs, including the Filter::event_enabled method for filtering events based on fields values, and the ability to log internal errors that occur when writing a log line.

    This release also replaces the dependency on the unmaintained [ansi-term] crate with the [nu-ansi-term] crate, resolving an informational security advisory (RUSTSEC-2021-0139) for [ansi-term]'s maintainance status. This increases the minimum supported Rust version (MSRV) to Rust 1.50+, although the crate should still compile for the previous MSRV of Rust 1.49+ when the ansi feature is not enabled.

    Fixed
    • layer: Option::None's Layer impl always setting the max_level_hint to LevelFilter::OFF (#​2321)
    • Compilation with -Z minimal versions (#​2246)
    • env-filter: Clarify that disabled level warnings are emitted by tracing-subscriber (#​2285)
    Added
    • fmt: Log internal errors to stderr if writing a log line fails (#​2102)
    • fmt: FmtLayer::log_internal_errors and FmtSubscriber::log_internal_errors methods for configuring whether internal writer errors are printed to stderr (#​2102)
    • fmt: #[must_use] attributes on builders to warn if a Subscriber is configured but not set as the default subscriber (#​2239)
    • filter: Filter::event_enabled method for filtering an event based on its fields (#​2245, #​2251)
    • filter: Targets::default_level accessor ([#​2242])
    Changed
    • ansi: Replaced dependency on unmaintained ansi-term crate with nu-ansi-term ((#​2287, fixes informational advisory RUSTSEC-2021-0139)
    • tracing-core: updated to 0.1.30
    • Minimum Supported Rust Version (MSRV) increased to Rust 1.50+ (when the ansi) feature flag is enabled (#​2287)
    Documented
    • fmt: Correct inaccuracies in fmt::init documentation (#​2224)
    • filter: Fix incorrect doc link in filter::Not combinator (#​2249)

    Thanks to new contributors @​cgbur, @​DesmondWillowbrook, @​RalfJung, and @​poliorcetics, as well as returning contributors @​CAD97, @​connec, @​jswrenn, @​guswynn, and @​bryangarza, for contributing to this release!


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate tracing to 0.1.37

    fix(deps): update rust crate tracing to 0.1.37

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | tracing (source) | dependencies | patch | 0.1.36 -> 0.1.37 |


    Release Notes

    tokio-rs/tracing

    v0.1.37: tracing 0.1.37

    Compare Source

    This release of tracing incorporates changes from tracing-core v0.1.30 and tracing-attributes v0.1.23, including the new Subscriber::on_register_dispatch method for performing late initialization after a Subscriber is registered as a Dispatch, and bugfixes for the #[instrument] attribute. Additionally, it fixes instances of the bare_trait_objects lint, which is now a warning on tracing's MSRV and will become an error in the next edition.

    Fixed
    • attributes: Incorrect handling of inner attributes in #[instrument]ed functions (#​2307)
    • attributes: Incorrect location of compiler diagnostic spans generated for type errors in #[instrument]ed async fns (#​2270)
    • attributes: Updated syn dependency to fix compilation with -Z minimal-versions (#​2246)
    • bare_trait_objects warning in valueset! macro expansion (#​2308)
    Added
    • core: Subscriber::on_register_dispatch method (#​2269)
    • core: WeakDispatch type and Dispatch::downgrade() function (#​2293)
    Changed
    • tracing-core: updated to 0.1.30
    • tracing-attributes: updated to 0.1.23
    Documented
    • Added [tracing-web][tracing-web] and [reqwest-tracing][reqwest-tracing] to related crates (#​2283, #​2331)

    Thanks to new contributors @​compiler-errors, @​e-nomem, @​WorldSEnder, @​Xiami2012, and @​tl-rodrigo-gryzinski, as well as @​jswrenn and @​CAD97, for contributing to this release!


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde to 1.0.145

    fix(deps): update rust crate serde to 1.0.145

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde (source) | dependencies | patch | 1.0.144 -> 1.0.145 |


    Release Notes

    serde-rs/serde

    v1.0.145

    Compare Source


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde_json to 1.0.85

    fix(deps): update rust crate serde_json to 1.0.85

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde_json | dependencies | patch | 1.0.83 -> 1.0.85 |


    Release Notes

    serde-rs/json

    v1.0.85

    Compare Source

    • Make Display for Number produce the same representation as serializing (#​919)

    v1.0.84

    Compare Source

    • Make Debug impl of serde_json::Value more compact (#​918)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde to 1.0.144

    fix(deps): update rust crate serde to 1.0.144

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde (source) | dependencies | patch | 1.0.143 -> 1.0.144 |


    Release Notes

    serde-rs/serde

    v1.0.144

    Compare Source

    • Change atomic ordering used by Serialize impl of atomic types to match ordering used by Debug impl of those same types (#​2263, thanks @​taiki-e)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde to 1.0.143

    fix(deps): update rust crate serde to 1.0.143

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde (source) | dependencies | patch | 1.0.142 -> 1.0.143 |


    Release Notes

    serde-rs/serde

    v1.0.143

    Compare Source

    • Invert build.rs cfgs in serde_test to produce the most modern configuration in the default case (#​2253, thanks @​taiki-e)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde to 1.0.142

    fix(deps): update rust crate serde to 1.0.142

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde (source) | dependencies | patch | 1.0.141 -> 1.0.142 |


    Release Notes

    serde-rs/serde

    v1.0.142

    Compare Source

    • Add keywords to crates.io metadata

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde_json to 1.0.83

    fix(deps): update rust crate serde_json to 1.0.83

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde_json | dependencies | patch | 1.0.82 -> 1.0.83 |


    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, click this checkbox.

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde_json to 1.0.91

    fix(deps): update rust crate serde_json to 1.0.91

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde_json | dependencies | patch | 1.0.89 -> 1.0.91 |


    Release Notes

    serde-rs/json

    v1.0.91

    Compare Source

    • Opt out of -Zrustdoc-scrape-examples on docs.rs for now

    v1.0.90

    Compare Source

    • Documentation improvements

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • fix(deps): update rust crate serde to 1.0.152

    fix(deps): update rust crate serde to 1.0.152

    Mend Renovate

    This PR contains the following updates:

    | Package | Type | Update | Change | |---|---|---|---| | serde (source) | dependencies | patch | 1.0.148 -> 1.0.152 |


    Release Notes

    serde-rs/serde

    v1.0.152

    Compare Source

    • Documentation improvements

    v1.0.151

    Compare Source

    • Update serde::{ser,de}::StdError to re-export core::error::Error when serde is built with feature="std" off and feature="unstable" on (#​2344)

    v1.0.150

    Compare Source

    • Relax some trait bounds from the Serialize impl of HashMap and BTreeMap (#​2334)
    • Enable Serialize and Deserialize impls of std::sync::atomic types on more platforms (#​2337, thanks @​badboy)

    v1.0.149

    Compare Source

    • Relax some trait bounds from the Serialize impl of BinaryHeap, BTreeSet, and HashSet (#​2333, thanks @​jonasbb)

    Configuration

    📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

    🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

    Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

    🔕 Ignore: Close this PR and you won't be reminded about this update again.


    • [ ] If you want to rebase/retry this PR, check this box

    This PR has been generated by Mend Renovate. View repository job log here.

    opened by renovate[bot] 0
  • Questions & Suggestions

    Questions & Suggestions

    Thanks for creating this repo, it is quite helpful! Continuing the discussion from https://github.com/SergioBenitez/Rocket/issues/982 :

    Questions

    1. Why the need to pass Option::None to .local_cache() in the response methods? As I understood, you can pass a new value and if there is, e.g., a request_id already that is there, it won't be created. Or I got this wrong?
    2. Can you use the #[instrument] macro with this instead of the explicit enter and drop? (maybe I am wrong but I thought that the span is dropped automatically when the scope ends)
    3. Where is the documentation regarding the kind of things you do in filter_layer()? (Rocket options like rocket::support=info or hyper=off), I didn't know you can do that.

    Suggestions

    • It might be helpful to add a screenshot(s) of a "demo" of how the logs look like etc.
    • What if I want to add a name to the span to identify it's function? In your examples it's always "request". Can TracingSpan include a name field in it?
    • Isn't it better to make a new or generate method for RequestId instead of calling it default? Seems more intuitive to me.
    • What if I want a debug log level but not trace? As I understand, your debug level includes both.

    I had more questions, once I remember them I'll post it here.

    Thank you very much!

    opened by oren0e 15
  • Dependency Dashboard

    Dependency Dashboard

    This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

    Open

    These updates have all been created already. Click a checkbox below to force a retry/rebase of any.

    Detected dependencies

    cargo
    Cargo.toml
    • rocket 0.5.0-rc.2
    • serde 1.0.148
    • serde_json 1.0.89
    • tracing 0.1.37
    • tracing-appender 0.2.2
    • tracing-log 0.1.3
    • tracing-subscriber 0.3.16
    • uuid 1.2.2
    • yansi 0.5.1
    dockerfile
    .gitpod.Dockerfile
    • chweicki/gitpod-rust-workspace 0.1.3

    • [ ] Check this box to trigger a request for Renovate to run again on this repository
    opened by renovate[bot] 0
Owner
Christof Weickhardt
Christof Weickhardt
tracing-glog is a glog-inspired formatter for tracing-subscriber.

tracing-glog tracing-glog is a glog-inspired formatter for tracing-subscriber. tracing-glog should be used with tracing-subscriber, as it is a formatt

David Barsky 7 Oct 8, 2022
Rust Util Collection, a simple and friendly error-chain, with many useful utils as an addition.

RUC Rust Util Collection, a simple and friendly error-chain, with many useful utils as an addition. The painful experience of using error-chain gave b

漢 6 Mar 27, 2022
A convenient tracing config and init lib, with symlinking and local timezone.

clia-tracing-config A convenient tracing config and init lib, with symlinking and local timezone. Use these formats default, and can be configured: pr

Cris Liao 5 Jan 3, 2023
Experimental Rust tool for generating FFI definitions allowing many other languages to call Rust code

Diplomat is an experimental Rust tool for generating FFI definitions allowing many other languages to call Rust code. With Diplomat, you can simply define Rust APIs to be exposed over FFI and get high-level C, C++, and JavaScript bindings automatically!

null 255 Dec 30, 2022
This crate bridges between gstreamer and tracing ecosystems.

This crate provides a bridge between gstreamer and the tracing ecosystem. The goal is to allow Rust applications utilizing GStreamer to better integra

Standard Cognition OSS 17 Jun 7, 2022
Tracing layer to quickly inspect spans and events

tracing-texray First, a word of warning: This is alpha software. Don't run this in prod or anywhere where a panic would ruin your day. tracing-texray

Russell Cohen 23 Dec 3, 2022
Middlewares and tools to integrate axum + tracing + opentelemetry

axum-tracing-opentelemetry Middlewares and tools to integrate axum + tracing + opentelemetry. Read OpenTelemetry header from incoming request Start a

David Bernard 31 Jan 4, 2023
High-performance QEMU memory and instruction tracing

Cannoli Cannoli is a high-performance tracing engine for qemu-user. It can record a trace of both PCs executed, as well as memory operations. It consi

Margin Research 412 Oct 18, 2023
Error propagation tracing in Rust.

Propagate Error propagation tracing in Rust. Why Propagate? Being able to trace the cause of an error is critical for many types of software written i

Ben Reeves 10 Sep 23, 2021
A tracing profiler for the Sega MegaDrive/Genesis

md-profiler, a tracing profiler for the Sega MegaDrive/Genesis This program, meant to be used with this fork of BlastEm, helps you finding bottlenecks

null 15 Nov 3, 2022
A tracing layer for macOS/iOS's `oslog`

tracing_oslog This is a tracing layer for the Apple OS logging framework. Activities are used to handle spans, Example use tracing_oslog::OsLogger; l

Lucy 12 Dec 6, 2022
Emit ETW events in tracing-enabled Rust applications.

tracing-etw Emit ETW events in tracing-enabled Rust applications. This crate depends on rust_win_etw. There are four ETW events. fn NewSpan(span_id: u

Microsoft 11 Aug 10, 2022
A patch to fix tracing LocalTime problem.

tracing-local-time A patch to fix tracing LocalTime problem. Tracing-subscriber now has a bug in LocalTime, so build ourselves' to fix it. In this pat

Cris Liao 2 Dec 27, 2021
A dynamic binary tracing tool

Backlight Backlight is a dynamic binary tracing tool. Install $ git clone [email protected]:JoshMcguigan/backlight.git $ cd backlight $ cargo install-b

Josh Mcguigan 42 Dec 3, 2022
tracing - a framework for instrumenting Rust programs to collect structured, event-based diagnostic information

tracing-appender Writers for logging events and spans Documentation | Chat Overview tracing is a framework for instrumenting Rust programs to collect

Cris Liao 1 Mar 9, 2022
A rust `tracing` compatible framework inspired by log4rs.

trace4rs This crate allows users to configure output from tracing in the same way as you would configure the output of log4rs. Overview For a usage ex

Imperva 5 Oct 24, 2022
AWS Cloudwatch layer for tracing-subscriber

tracing-cloudwatch tracing-cloudwatch is a custom tracing-subscriber layer that sends your application's tracing events(logs) to AWS CloudWatch Logs.

ymgyt 7 May 14, 2023
A crate providing a tracing-subscriber layer for formatting events so Datadog can parse them

Datadog Formatting Layer A crate providing a tracing-subscriber layer for formatting events so Datadog can parse them. Features Provides a layer for t

Open Schnick 4 Jun 22, 2023
Utilities for integrating Datadog with opentelemetry + tracing in rust

Non-official datadog tracing and log correlation for Rust services. This crate contains the necessary glue to bridge the gap between OpenTelemetry, tr

willbank 5 Oct 31, 2023