mirror of
https://github.com/tokio-rs/tracing.git
synced 2026-03-15 18:47:54 +00:00
Tracing Examples
This directory contains a collection of examples that demonstrate the use of the
tracing ecosystem:
- tracing:
counters: Implements a very simple metrics system to demonstrate how subscribers can consume field values as typed data.sloggish: A demoSubscriberimplementation that mimics the output ofslog-term'sCompactformatter.
- tracing-attributes:
attrs-basic: A simple example of the#[instrument]attribute.attrs-args: An example implementing a simple recursive calculation of Fibonacci numbers, to demonstrate how the#[instrument]attribute can record function arguments.
- tracing-subscriber:
fmt: Demonstrates the use of thefmtmodule intracing-subscriber, which provides a subscriber implementation that logs traces to the console.fmt-stderr: Demonstrates overriding the output stream used by thefmtsubscriber.subscriber-filter: Demonstrates thetracing-subscriber::filtermodule, which provides a layer which adds configurable filtering to a subscriber implementation.tower-load: Demonstrates how dynamically reloadable filters can be used to debug a server under load in production.
- tracing-futures:
futures-proxy-server: Demonstrates the use oftracing-futuresby implementing a simple proxy server, based on this example fromtokio.futures-spawn: A simple demonstration of the relationship between the spans representing spawned futures.
- tracing-tower:
tower-h2-client: Demonstrates the use oftracing-towerto instrument a simpletower-h2HTTP/2 client (based on this example fromtower-h2).tower-h2-server: Demonstrates the use oftracing-towerto instrument a simpletower-h2HTTP/2 server (based on this example fromtower-h2).
- tracing-serde:
serde-yak-shave: Demonstrates the use oftracing-serdeby implementing a subscriber that emits trace output as JSON.
- tracing-log:
hyper-echo: Demonstrates howtracing-logcan be used to record unstructured logs from dependencies astracingevents, by instrumenting this example fromhyper, and usingtracing-logto record logs emitted byhyper.
The nightly-examples directory contains examples of how tracing can be used
with async/await. These are kept separate as async/await is currently only
available on nightly Rust toolchains.