Skip to content

Instantly share code, notes, and snippets.

@brietaylor
Last active January 27, 2023 19:39
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save brietaylor/c5aa76df6a2f3fa3a8e14e4f8250cab1 to your computer and use it in GitHub Desktop.
Save brietaylor/c5aa76df6a2f3fa3a8e14e4f8250cab1 to your computer and use it in GitHub Desktop.
package main
import (
"net/http"
"github.com/labstack/echo-contrib/prometheus"
"github.com/labstack/echo/v4"
)
func main() {
e := echo.New()
p := prometheus.NewPrometheus("test", nil)
p.Use(e)
e.GET("/", func(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
})
e.Logger.Fatal(e.Start(":1323"))
}
# The following is a snippet of the output from the /metrics URL above, showing metrics generated for each URL.
# HELP test_request_duration_seconds The HTTP request latencies in seconds.
# TYPE test_request_duration_seconds histogram
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="0.005"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="0.01"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="0.025"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="0.05"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="0.1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="0.25"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="0.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="2.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="10"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/1",le="+Inf"} 1
test_request_duration_seconds_sum{code="404",method="GET",url="/1"} 1.1125e-05
test_request_duration_seconds_count{code="404",method="GET",url="/1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="0.005"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="0.01"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="0.025"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="0.05"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="0.1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="0.25"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="0.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="2.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="10"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/10",le="+Inf"} 1
test_request_duration_seconds_sum{code="404",method="GET",url="/10"} 2.167e-06
test_request_duration_seconds_count{code="404",method="GET",url="/10"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="0.005"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="0.01"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="0.025"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="0.05"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="0.1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="0.25"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="0.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="2.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="10"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/100",le="+Inf"} 1
test_request_duration_seconds_sum{code="404",method="GET",url="/100"} 2.167e-06
test_request_duration_seconds_count{code="404",method="GET",url="/100"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="0.005"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="0.01"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="0.025"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="0.05"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="0.1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="0.25"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="0.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="2.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="10"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/101",le="+Inf"} 1
test_request_duration_seconds_sum{code="404",method="GET",url="/101"} 2.375e-06
test_request_duration_seconds_count{code="404",method="GET",url="/101"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="0.005"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="0.01"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="0.025"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="0.05"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="0.1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="0.25"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="0.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="2.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="10"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/102",le="+Inf"} 1
test_request_duration_seconds_sum{code="404",method="GET",url="/102"} 3.042e-06
test_request_duration_seconds_count{code="404",method="GET",url="/102"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="0.005"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="0.01"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="0.025"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="0.05"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="0.1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="0.25"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="0.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="1"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="2.5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="5"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="10"} 1
test_request_duration_seconds_bucket{code="404",method="GET",url="/103",le="+Inf"} 1
# Start the server
go run main.go &
# How many metrics are there? (95)
curl localhost:1323/metrics | wc -l
# Generetae some 404's
seq 1 1000 | while read x; do curl localhost:1323/"$x"; done
# How many metrics? (Now 41103)
curl localhost:1323/metrics | wc -l
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment