#metrics #system-info #heim #psutil #stats #api-bindings

bin+lib sys_metrics

跨平台库,用于从主机收集统计信息

7个版本

0.2.7 2024年3月24日
0.2.6 2022年6月12日
0.2.5 2021年12月18日
0.2.4 2021年8月11日
0.1.40 2020年11月28日

#117操作系统

Download history 75/week @ 2024-04-08 43/week @ 2024-04-15 67/week @ 2024-04-22 289/week @ 2024-04-29 69/week @ 2024-05-06 41/week @ 2024-05-13 21/week @ 2024-05-20 38/week @ 2024-05-27 79/week @ 2024-06-03 75/week @ 2024-06-10 228/week @ 2024-06-17 238/week @ 2024-06-24 448/week @ 2024-07-01 440/week @ 2024-07-08 204/week @ 2024-07-15 140/week @ 2024-07-22

每月1,248次下载
ztui 中使用

AGPL-3.0

86KB
2K SLoC

sys_metrics

从主机收集指标

AGPL License crates.io Docs.rs CI

sys_metrics 是一个WIP项目,旨在为其他工具提供替代方案,这些工具可能较慢或提供过多的无用信息。它将尝试至少具有与 psutilheim 相同的功能。

这是一个同步库,试图尽可能快(可能甚至是最快的),并且尽可能不依赖其他库。

WIP备注

sys_metrics 在其WIP阶段将仅支持Linux和macOS。结构可能会随着版本的不同而变化。如果您对此或任何其他内容有评论,请随时打开一个问题。

用法

将依赖项添加到您的 Cargo.toml

[dependencies]
sys_metrics = "0.2"

基本用法示例

use sys_metrics::{cpu::*};

// This is just a very basic example of the CPU part.
// Check the doc, this crate can do much more.
fn main() {
    let cpufreq = get_cpufreq().unwrap();
    println!("CPU Speed: {:13}MHz\n", cpufreq as u64);

    let cpu_logical = get_logical_count().unwrap();
    let cpu_physical = get_physical_count().unwrap();

    println!("CPU Core: {:12}\nLogical processors: {}", cpu_physical, cpu_logical);

    let loadavg = get_loadavg().unwrap();
    println!("Load average: {:10} {} {}", loadavg.one, loadavg.five, loadavg.fifteen);
}

对于更复杂的示例,请查看此处使用的此crate: speculare-client/src/harvest/data_harvest.rs.

基准测试

查看 BENCHMARKS 以比较sys_metrics与其他crate。

 cargo bench

支持的目标

目标 测试
x86_64-apple-darwin
x86_64-unknown-linux-gnu

贡献

欢迎Pull请求。对于重大更改,请首先打开一个问题来讨论您想要更改的内容。

依赖项

~0.4–1.2MB
~27K SLoC