Gufo Agent¶
Gufo Agent
is a lightweight software for collecting and exposing system metrics
and performing QoS and SLA checks. We implement it in the Rust language with correctness,
performance, and low system resource usage in mind.
The Gufo Agent
is built around four cornerstones:
- Zeroconf configuration system allows plain YAML configuration files in simple cases while allowing the flexible config resolution process for the centralized management in more complex ones. The sophisticated Config Discovery allows the automatic generation of config in most cases.
- The collector plugins, perform the measurements and collect the metrics. The API is developer-friendly, enforces correctness, and allows a rapid development process.
- Internal scheduler which runs the collectors as defined in the config.
- The sender exposes the collected metrics. The openmetrics endpoint is available out-of-the-box, allowing seamless Prometheus integration.
The Rust language's unique properties allowed us to build an agent which can be used not only for the trivial system metrics collection but for performing high-precision measurements as well.
Compatibility¶
Supported platforms:
OS | libc | Arch |
---|---|---|
Linux | glibc 2.17+ | amd64 |
Linux | glibc 2.17+ | aarch64 |
Obtaining the Gufo Agent¶
View the CHANGELOG for the latest updates and changes by version.
Automated Install¶
Binary Downloads¶
The binary downloads are available from each of the Github Releases page in the "Assets" section.
Building from Source¶
- Clone Gufo Agent repository
- Go to Gufo Agent directory
- Install proper Rust toolchain
- Build
- Resulting binary location is
./target/release/gufo-agent
Running¶
To generate the default configuration use:
See Config Discovery for details.
Then run the Gufo Agent:
See Gufo Agent Man Pages for details.
Available Collectors¶
Type | Description |
---|---|
block_io | Block I/O devices statistics |
cpu | CPU statistics |
dns | Perform DNS request using system resolver |
exec | Execute command and read output |
fs | File systems statistic |
http | Perform HTTP request |
memory | Host's memory statistics |
modbus_rtu | Perform Modbus RTU requests |
modbus_tcp | Perform Modbus TCP requests |
mysql | MySQL instance statistics |
mysql_query | Perform MySQL queries |
network | Host's network interface statistics |
pgbouncer | PgBouncer statistics |
postgres | PostgreSQL instance statistics |
postgres_query | Perform PostgreSQL queries |
procstat | Process' statistics |
redis | Redis instance statistics |
scrape | Fetch data from OpenMetrics/Prometheus endpoints |
sockets | Host's sockets statistics |
spool | Read files in openmetrics format from a directory |
twamp_reflector | TWAMP reflector for SLA probing |
twamp_sender | TWAMP sender for SLA probing |
uptime | System uptime |
On Gufo Stack¶
This product is a part of Gufo Stack - the collaborative effort led by Gufo Labs. Our goal is to create a robust and flexible set of tools to create network management software and automate routine administration tasks.
To do this, we extract the key technologies that have proven themselves in the NOC and bring them as separate packages. Then we work on API, performance tuning, documentation, and testing. The NOC uses the final result as the external dependencies.
Gufo Stack makes the NOC better, and this is our primary task. But other products can benefit from Gufo Stack too. So we believe that our effort will make the other network management products better.