psutil 5.4.0

Process and system monitoring library
Documentation
use std::thread;
use std::time::Duration;

use psutil::*;

fn main() {
	let block_time = Duration::from_millis(1000);

	let mut cpu_percent_collector = cpu::CpuPercentCollector::new().unwrap();
	let mut cpu_times_percent_collector = cpu::CpuTimesPercentCollector::new().unwrap();

	let mut disk_io_counters_collector = disk::DiskIoCountersCollector::default();

	let mut net_io_counters_collector = network::NetIoCountersCollector::default();

	thread::sleep(block_time);

	let cpu_percents_percpu = cpu_percent_collector.cpu_percent_percpu().unwrap();
	let cpu_times_percpu = cpu::cpu_times_percpu().unwrap();
	let cpu_times_percent_percpu = cpu_times_percent_collector
		.cpu_times_percent_percpu()
		.unwrap();

	let disk_io_counters_per_partition = disk_io_counters_collector
		.disk_io_counters_per_partition()
		.unwrap();
	let partitions = disk::partitions_physical().unwrap();
	let disk_usage = disk::disk_usage("/").unwrap();

	let uptime = host::uptime().unwrap();
	let boot_time = host::boot_time().unwrap();
	let loadavg = host::loadavg().unwrap();

	let virtual_memory = memory::virtual_memory().unwrap();
	let swap_memory = memory::swap_memory().unwrap();

	let net_io_counters = net_io_counters_collector.net_io_counters().unwrap();

	let pids = process::pids().unwrap();
	let processes = process::processes().unwrap();

	let temperatures = sensors::temperatures();

	dbg!(cpu_percents_percpu);
	dbg!(cpu_times_percpu);
	dbg!(cpu_times_percent_percpu);

	dbg!(disk_io_counters_per_partition);
	dbg!(partitions);
	dbg!(disk_usage);

	dbg!(uptime);
	dbg!(boot_time);
	dbg!(loadavg);

	dbg!(virtual_memory);
	dbg!(swap_memory);

	dbg!(net_io_counters);

	dbg!(pids);
	dbg!(processes);

	dbg!(temperatures);
}