53 lines
1.6 KiB
Markdown
53 lines
1.6 KiB
Markdown
# peach-stats
|
|
|
|
![Generic badge](https://img.shields.io/badge/version-0.3.0-<COLOR>.svg)
|
|
|
|
System statistics library for PeachCloud. Provides a wrapper around the [probes](https://crates.io/crates/probes) and [systemstat](https://crates.io/crates/systemstat) crates.
|
|
|
|
Currently offers the following system statistics and associated data structures:
|
|
|
|
- CPU: `user`, `system`, `nice`, `idle` (as values or percentages)
|
|
- Disk usage: `filesystem`, `one_k_blocks`, `one_k_blocks_used`,
|
|
`one_k_blocks_free`, `used_percentage`, `mountpoint`
|
|
- Load average: `one`, `five`, `fifteen`
|
|
- Memory: `total`, `free`, `used`
|
|
- Uptime: `seconds`
|
|
|
|
As well as the following go-sbot process statistics:
|
|
|
|
- Sbot: `state`, `memory`, `uptime`, `downtime`
|
|
|
|
## Example Usage
|
|
|
|
```rust
|
|
use peach_stats::{sbot, stats, StatsError};
|
|
|
|
fn main() -> Result<(), StatsError> {
|
|
let cpu = stats::cpu_stats()?;
|
|
let cpu_percentages = stats::cpu_stats_percent()?;
|
|
let disks = stats::disk_usage()?;
|
|
let load = stats::load_average()?;
|
|
let mem = stats::mem_stats()?;
|
|
let uptime = stats::uptime()?;
|
|
let sbot_process = sbot::sbot_stats()?;
|
|
|
|
// do things with the retrieved values...
|
|
|
|
Ok(())
|
|
}
|
|
```
|
|
|
|
## Feature Flags
|
|
|
|
Feature flags are used to offer `Serialize` and `Deserialize` implementations for all `struct` data types provided by this library. These traits are not provided by default. A choice of `miniserde` and `serde` is provided.
|
|
|
|
Define the desired feature in the `Cargo.toml` manifest of your project:
|
|
|
|
```toml
|
|
peach-stats = { version = "0.1.0", features = ["miniserde_support"] }
|
|
```
|
|
|
|
## License
|
|
|
|
LGPL-3.0.
|