diff --git a/docs/tutorials/instrumenting_http_server_in_go.md b/docs/tutorials/instrumenting_http_server_in_go.md index 1d6a74ba0..18ea51c8c 100644 --- a/docs/tutorials/instrumenting_http_server_in_go.md +++ b/docs/tutorials/instrumenting_http_server_in_go.md @@ -84,9 +84,9 @@ func main() { } ``` -The `prometheus.MustRegister` function registers the pingCounter with the default registry. +The `promauto.With(reg).NewCounter()` function creates the pingCounter and registers it with the `reg` registry. To expose the metrics, the Go Prometheus client library provides the promhttp package. -`promhttp.Handler()` provides an `http.Handler` which exposes the metrics registered in the default registry. +`promhttp.HandlerFor(reg, promhttp.HandlerOpts{})` provides an `http.Handler` which exposes the metrics registered in the `reg` registry. The sample code is now: @@ -147,7 +147,7 @@ Now hit the localhost:8090/ping endpoint a couple of times and then send a reque Here, the `ping_request_count` shows that the `/ping` endpoint was called 3 times. -The default registry comes with a collector for Go runtime metrics, and that is why we see other metrics like `go_threads`, `go_goroutines`, etc. +The code above uses a custom registry (`prometheus.NewRegistry()`), which does not include Go runtime metrics by default. To also collect Go runtime metrics like `go_threads` and `go_goroutines`, register `collectors.NewGoCollector()` (from `github.com/prometheus/client_golang/prometheus/collectors`) with the registry. We have built our first metric exporter. Let’s update our Prometheus config to scrape the metrics from our server.