From 12cb7453a611f7598335b314ecd582bb83733b0c Mon Sep 17 00:00:00 2001 From: rogerogers Date: Mon, 9 Dec 2024 13:14:26 +0800 Subject: [PATCH] docs: update monitoring readme Signed-off-by: rogerogers --- monitoring/README.md | 47 +++++++++++++++++++++++++------------------- 1 file changed, 27 insertions(+), 20 deletions(-) diff --git a/monitoring/README.md b/monitoring/README.md index 1dc27331..80e08762 100644 --- a/monitoring/README.md +++ b/monitoring/README.md @@ -4,19 +4,26 @@ ### Server -``` +```go +package main + import ( - "context" + "context" "time" - "github.com/cloudwego/monitor-prometheus" "github.com/cloudwego/hertz/pkg/app" "github.com/cloudwego/hertz/pkg/app/server" + prometheus "github.com/hertz-contrib/monitor-prometheus" ) func main() { -... - h := server.Default(server.WithHostPorts("127.0.0.1:8080"), server.WithTracer(prometheus.NewServerTracer(":9091", "/hertz"))) + //... + h := server.Default( + server.WithHostPorts("127.0.0.1:8080"), + server.WithTracer( + prometheus.NewServerTracer(":9091", "/hertz"), + ), + ) h.GET("/metricGet", func(c context.Context, ctx *app.RequestContext) { ctx.String(200, "hello get") @@ -28,31 +35,31 @@ func main() { }) h.Spin() +} ``` + ## HOW-TO-RUN + 1. install docker and start docker 2. change $inetIP to local ip in line 30 of prometheus.yml -3. run Prometheus and Grafana - `docker-compose up` -4. run Hertz server - `go run main.go` -5. run Hertz client - `go run client/main.go` +3. run Prometheus and Grafana `docker-compose up` or `docker compose up` +4. run Hertz server `go run main.go` +5. run Hertz client `go run client/main.go` 6. visit `http://localhost:3000`, the account password is `admin` by default 7. configure Prometheus data sources - 1. `Configuration` - 2. `Data Source` - 3. `Add data source` - 4. Select `Prometheus` and fill the URL with `http://prometheus:9090` - 5. click `Save & Test` after configuration to test if it works -8. add dashboard `Create` -> `dashboard`, add monitoring metrics such as throughput and pct99 according to your needs, for example: - + 1. `Connections` + 2. `Data sources` + 3. `Add new data source` + 4. Select `Prometheus` and fill the URL with `http://prometheus:9090` + 5. click `Save & test` after configuration to test if it works +8. add dashboard `Dashboards` -> `New` -> `New dashboard`, add monitoring metrics such as throughput and pct99 according to your needs, for example: + - server throughput of succeed requests `sum(rate(hertz_server_throughput{statusCode="200"}[1m])) by (method)` - + - server latency pct99 of succeed requests `histogram_quantile(0.9,sum(rate(hertz_server_latency_us_bucket{statusCode="200"}[1m]))by(le))` -For more information about hertz monitoring, please click [monitoring](https://www.cloudwego.io/zh/docs/hertz/tutorials/framework-exten/monitor/) \ No newline at end of file +For more information about hertz monitoring, please click [monitoring](https://www.cloudwego.io/zh/docs/hertz/tutorials/framework-exten/monitor/)