forked from quic-go/quic-go
metrics: add an example Grafana dashboard (#4559)
* metrics: add an example Grafana dashboard * metrics: rename Handshake Duration to Handshake Latency Co-authored-by: sukun <sukunrt@gmail.com> --------- Co-authored-by: sukun <sukunrt@gmail.com>
This commit is contained in:
@@ -1,33 +1,24 @@
|
||||
# quic-go Prometheus / Grafana setup
|
||||
# quic-go Prometheus / Grafana Local Development Setup
|
||||
|
||||
Expose a Grafana endpoint on `http://localhost:5001/prometheus`:
|
||||
For local development and debugging, it can be useful to spin up a local Prometheus and Grafana instance.
|
||||
|
||||
Please refer to the [documentation](https://quic-go.net/docs/quic/metrics/) for how to configure quic-go to expose Prometheus metrics.
|
||||
|
||||
The configuration files in this directory assume that the application exposes the Prometheus endpoint at `http://localhost:5001/prometheus`:
|
||||
```go
|
||||
import "github.com/prometheus/client_golang/prometheus/promhttp"
|
||||
|
||||
go func() {
|
||||
http.Handle("/prometheus", promhttp.Handler())
|
||||
log.Fatal(http.ListenAndServe(":5001", nil))
|
||||
log.Fatal(http.ListenAndServe("localhost:5001", nil))
|
||||
}()
|
||||
```
|
||||
|
||||
Set a metrics tracer on the `Transport`:
|
||||
```go
|
||||
quic.Transport{
|
||||
Tracer: metrics.NewTracer(),
|
||||
}
|
||||
```
|
||||
|
||||
When using multiple `Transport`s, it is recommended to use the metrics tracer struct for all of them.
|
||||
|
||||
|
||||
Set a metrics connection tracer on the `Config`:
|
||||
```go
|
||||
quic.Config{
|
||||
Tracer: metrics.DefaultConnectionTracer,
|
||||
}
|
||||
```
|
||||
Prometheus and Grafana can be started using Docker Compose:
|
||||
|
||||
Running:
|
||||
```shell
|
||||
docker-compose up
|
||||
docker compose up
|
||||
```
|
||||
|
||||
[quic-go.json](./quic-go.json) contains the JSON model of an example Grafana dashboard.
|
||||
|
||||
Reference in New Issue
Block a user