Simple Rust application to send ICMP ping request to a set of hosts defined on a Redis database. Expose the info as metric HTTP Server for Prometheus.
Focused on datacenters to get a global view of ICMP latency over all hosts.
Only support Linux to deploy the software.
If you want Windows support (or another platform) then you can push a request.
Metric | Description |
---|---|
rustyping_host_up |
Show if host is responding to ICMP |
rustyping_ping_error |
Counter of errors of ICMP |
rustyping_ping_last |
Last latency of ICMP |
rustyping_ping_latency_bucket |
Latency histogram from 0.1ms to 1s with 30 step and factor 1.37 for buckets |
rustyping_ping_latency_sum |
Sum of all ICMP latency |
rustyping_ping_latency_count |
Count of all sended ICMP requests |
RustyPing label |
Description |
---|---|
from |
Hostname of host where the ICMP is sended |
ip |
IP address of destination host (ip part of name@ip info from Redis database) |
name |
Name of destination host (name part of name@ip info from Redis database) |
rustyping [OPTIONS] --redis_host <redis_host>
Option | Description | Environment variable | Default |
---|---|---|---|
-r /--redis_host |
IP Address of Redis server | RUSTYPING_REDIS_HOST |
`` |
-t /--ping_timeout |
Set the timeout in seconds | RUSTYPING_PING_TIMEOUT |
1.0 |
-i /--ping_interval |
Set the interval in seconds of each ping request | RUSTYPING_PING_INTERVAL |
5 |
The Redis server need to contain a SET with the name rustyping:targets
with members with this name name@ip
.
You can use grafana to view the information saved in Prometheus. Example dashboard can found on grafana
folder.