Skip to content

Commit

Permalink
metrics: add an example Grafana dashboard (#4559)
Browse files Browse the repository at this point in the history
* metrics: add an example Grafana dashboard

* metrics: rename Handshake Duration to Handshake Latency

Co-authored-by: sukun <[email protected]>

---------

Co-authored-by: sukun <[email protected]>
  • Loading branch information
marten-seemann and sukunrt committed Jun 6, 2024
1 parent 0c84297 commit 4d0562d
Show file tree
Hide file tree
Showing 2 changed files with 739 additions and 20 deletions.
31 changes: 11 additions & 20 deletions metrics/dashboards/README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,24 @@
# quic-go Prometheus / Grafana setup
# quic-go Prometheus / Grafana Local Development Setup

Expose a Grafana endpoint on `http:https://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:https://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.

0 comments on commit 4d0562d

Please sign in to comment.