https://github.com/flashbots/latency-monitor
Monitor the latency between peers and report stats via prometheus
https://github.com/flashbots/latency-monitor
latency prometheus
Last synced: about 2 months ago
JSON representation
Monitor the latency between peers and report stats via prometheus
- Host: GitHub
- URL: https://github.com/flashbots/latency-monitor
- Owner: flashbots
- Created: 2024-05-27T08:06:58.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-06-05T17:36:08.000Z (about 2 years ago)
- Last Synced: 2025-11-15T00:05:37.348Z (7 months ago)
- Topics: latency, prometheus
- Language: Go
- Homepage:
- Size: 28.3 KB
- Stars: 2
- Watchers: 14
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: readme.md
Awesome Lists containing this project
README
# latency-monitor
Exchange small UDP datagrams between peers to measure latency between them, and
report the statistics as prometheus metrics.
## TL;DR
```shell
latency-monitor serve \
--transponder-listen-address 127.0.0.1:32123
```
```shell
curl -sS 127.0.0.1:8080/metrics | grep -v "^#.*$" | sort -u | grep "latency_monitor"
```
```text
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="+Inf"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="1"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="1.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="1000"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="115.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="115478"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="13.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="13335"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="1540"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="177828"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="178"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="1e+06"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="2.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="20.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="20535.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="2371.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="273842"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="274"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="3.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="31.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="31623"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="3651.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="421.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="421696.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="48.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="48697"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="5.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="5623.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="649.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="649381.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="74989.5"} 1
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="75"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="8.5"} 0
latency_monitor_forward_trip_latency_microseconds_bucket{peer="localhost",le="8659.5"} 1
latency_monitor_forward_trip_latency_microseconds_count{peer="localhost"} 1
latency_monitor_forward_trip_latency_microseconds_sum{peer="localhost"} 162
latency_monitor_probe_returned_count_total{peer="localhost"} 1
latency_monitor_probe_sent_count_total{peer="localhost"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="+Inf"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="1"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="1.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="1000"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="115.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="115478"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="13.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="13335"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="1540"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="177828"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="178"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="1e+06"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="2.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="20.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="20535.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="2371.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="273842"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="274"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="3.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="31.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="31623"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="3651.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="421.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="421696.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="48.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="48697"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="5.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="5623.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="649.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="649381.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="74989.5"} 1
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="75"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="8.5"} 0
latency_monitor_return_trip_latency_microseconds_bucket{peer="localhost",le="8659.5"} 1
latency_monitor_return_trip_latency_microseconds_count{peer="localhost"} 1
latency_monitor_return_trip_latency_microseconds_sum{peer="localhost"} 84
```
>
> Note: There is a specially-treated peer name `localhost` that can be used to
> send probes to self. This can be used to adjust the remote peers's
> latencies for locally incurred implicit ones (that is, by subtracting
> local average latency from all remote ones).
>