Tokio Metrics
Provides utilities for collecting metrics from a Tokio application, including runtime and per-task metrics.
[]
= { = "0.1.0", = false }
Getting Started With Task Metrics
Use TaskMonitor
to instrument tasks before spawning them, and to observe
metrics for those tasks. All tasks instrumented with a given TaskMonitor
aggregate their metrics together. To split out metrics for different tasks, use
separate TaskMetrics
instances.
// construct a TaskMonitor
let monitor = new;
// print task metrics every 500ms
// instrument some tasks and spawn them
loop
Getting Started With Runtime Metrics
This unstable functionality requires tokio_unstable
, and the rt
crate
feature. To enable tokio_unstable
, the --cfg
tokio_unstable
must be passed
to rustc
when compiling. You can do this by setting the RUSTFLAGS
environment variable before compiling your application; e.g.:
RUSTFLAGS="--cfg tokio_unstable"
Or, by creating the file .cargo/config
in the root directory of your crate
with the contents:
[]
= ["--cfg", "tokio_unstable"]
= ["--cfg", "tokio_unstable"]
The rt
feature of tokio-metrics
is on by default; simply check that you do
not set default-features = false
when declaring it as a dependency; e.g.:
[]
= "0.1.0"
From within a Tokio runtime, use RuntimeMonitor
to monitor key metrics of
that runtime.
let handle = current;
let runtime_monitor = new;
// print runtime metrics every 500ms
let frequency = from_millis;
spawn;
// run some tasks
spawn;
spawn;
spawn;
Relation to Tokio Console
Currently, Tokio Console is primarily intended for local debugging. Tokio
metrics is intended to enable reporting of metrics in production to your
preferred tools. Longer term, it is likely that tokio-metrics
will merge with
Tokio Console.
License
This project is licensed under the MIT license.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in tokio-metrics by you, shall be licensed as MIT, without any additional terms or conditions.