Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/lfdominguez/rustyping
ICMP Prometheus Exporter for multiple hosts defined on Redis database
https://github.com/lfdominguez/rustyping
exporter grafana icmp ping prometheus
Last synced: 25 days ago
JSON representation
ICMP Prometheus Exporter for multiple hosts defined on Redis database
- Host: GitHub
- URL: https://github.com/lfdominguez/rustyping
- Owner: lfdominguez
- Created: 2020-07-28T20:22:44.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-03-21T21:46:08.000Z (8 months ago)
- Last Synced: 2024-04-24T04:51:44.993Z (7 months ago)
- Topics: exporter, grafana, icmp, ping, prometheus
- Language: Rust
- Homepage:
- Size: 187 KB
- Stars: 3
- Watchers: 0
- Forks: 1
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
RustyPing
=========
![Rust](https://github.com/lfdominguez/rustyping/workflows/Rust/badge.svg)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.## Metrics
| 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) |## Usage
```
rustyping [OPTIONS] --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`## Redis host
The Redis server need to contain a SET with the name `rustyping:targets` with members with this name `name@ip`.
## Grafana example
You can use grafana to view the information saved in Prometheus. Example dashboard can found on `grafana` folder.
![Grafana Dashboard example](grafana/grafana_dashboard.png)