Struct tokio_metrics::RuntimeMonitor
source · [−]pub struct RuntimeMonitor { /* private fields */ }
This is supported on
tokio_unstable
and crate feature rt
only.Expand description
Monitors key metrics of the tokio runtime.
Usage
use std::time::Duration;
use tokio_metrics::RuntimeMonitor;
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error + Send + Sync>> {
let handle = tokio::runtime::Handle::current();
// print runtime metrics every 500ms
{
let runtime_monitor = RuntimeMonitor::new(&handle);
tokio::spawn(async move {
for interval in runtime_monitor.intervals() {
// pretty-print the metric interval
println!("{:?}", interval);
// wait 500ms
tokio::time::sleep(Duration::from_millis(500)).await;
}
});
}
// await some tasks
tokio::join![
do_work(),
do_work(),
do_work(),
];
Ok(())
}
async fn do_work() {
for _ in 0..25 {
tokio::task::yield_now().await;
tokio::time::sleep(Duration::from_millis(100)).await;
}
}
Implementations
sourceimpl RuntimeMonitor
impl RuntimeMonitor
pub fn new(runtime: &Handle) -> RuntimeMonitor
pub fn intervals(&self) -> impl Iterator<Item = RuntimeMetrics>
Auto Trait Implementations
impl !RefUnwindSafe for RuntimeMonitor
impl Send for RuntimeMonitor
impl Sync for RuntimeMonitor
impl Unpin for RuntimeMonitor
impl !UnwindSafe for RuntimeMonitor
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcepub fn borrow_mut(&mut self) -> &mut T
pub fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more