examples/README.md
This directory contains a collection of examples that demonstrate the use of the
tracing ecosystem:
counters: Implements a very simple metrics system to demonstrate how
subscribers can consume field values as typed data.sloggish: A demo Subscriber implementation that mimics the output of
slog-term's Compact formatter.attrs-basic: A simple example of the #[instrument] attribute.attrs-literal-field-names: Demonstrates using literal field names rather
than rust tokens..attrs-args: An example implementing a simple recursive calculation of
Fibonacci numbers, to demonstrate how the #[instrument] attribute can
record function arguments.fmt: Demonstrates the use of the fmt module in tracing-subscriber,
which provides a subscriber implementation that logs traces to the console.
This example uses the default formatter (format::Full).fmt-stderr: Demonstrates overriding the output stream used by the fmt
subscriber.fmt-pretty: Demonstrates the output of the format::Pretty formatter in
tracing-subscriber::fmt.fmt-compact: Demonstrates the output of the format::Compact formatter in
tracing-subscriber::fmt.fmt-json: Demonstrates the output of the format::Json formatter in
tracing-subscriber::fmt.fmt-custom-field: Demonstrates overriding how the fmt subscriber formats
fields on spans and events.fmt-custom-event: Demonstrates overriding how the fmt subscriber formats
events.fmt-multiple-writers: demonstrates how fmt::Layer can write
to multiple destinations (in this instance, stdout and a file) simultaneously.fmt-source-locations: demonstrates displaying source code locations
with fmt::Layer.subscriber-filter: Demonstrates the tracing-subscriber::filter module,
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.journald: Demonstrates how to use fmt and journald layers to output to
both the terminal and the system journal.toggle-layers : Demonstrates how Layers can be wrapped with an Option allowing
them to be dynamically toggled.spawny-thing: Demonstrates the use of the #[instrument] attribute macro
asynchronous functions.tokio-spawny-thing.rs: Similar to spawny-thingy, but with the additional
demonstration instrumenting concurrent tasks created with
tokio::spawn.futures-proxy-server: Demonstrates the use of tracing-futures by
implementing a simple proxy server, based on this example
from tokio.async-fn: Demonstrates how asynchronous functions can be
instrumented.echo: Demonstrates a tracing-instrumented variant of Tokio's echo example.inferno-flame: Demonstrates the use of tracing-flame to generate a flamegraph
from spans.tower-client: Demonstrates the use of tracing-tower to instrument a
simple tower HTTP/1.1 client.tower-server: Demonstrates the use of tracing-tower to instrument a
simple tower HTTP/1.1 server.serde-yak-shave: Demonstrates the use of tracing-serde by implementing a
subscriber that emits trace output as JSON.hyper-echo: Demonstrates how tracing-log can be used to record
unstructured logs from dependencies as tracing events, by instrumenting
this example from hyper, and using tracing-log to record logs
emitted by hyper.