go.mod | ||
go.sum | ||
LICENSE | ||
metrics.go | ||
README.md | ||
summary.go | ||
validator_test.go | ||
validator.go |
metrics - lightweight package for exporting metrics in Prometheus format
Features
- Lightweight. Has minimal number of third-party dependencies and all these deps are small. See this article for details.
- Easy to use. See the API docs.
- Fast.
Limitations
- It doesn't implement advanced functionality from github.com/prometheus/client_golang/prometheus.
Usage
import "github.com/VictoriaMetrics/metrics"
// Register various time series.
// Time series name may contain labels in Prometheus format - see below.
var (
// Register counter without labels.
requestsTotal = metrics.NewCounter("requests_total")
// Register summary with a single label.
requestDuration = metrics.NewSummary(`requests_duration_seconds{handler="/my/super/handler"}`)
// Register gauge with two labels.
queueSize = metrics.NewGauge(`queue_size{queue="foobar",topic="baz"}`, func() float64 {
return float64(foobarQueue.Len())
})
)
// ...
func requestHandler() {
startTime := time.Now()
// ...
requestsTotal.Inc()
requestDuration.UpdateDuration(startTime)
}
// ...
// `/metrics` handler for exposing the registered metrics.
http.HandleFunc("/metrics", func(w http.ResponseWriter, req *http.Request) {
metrics.WritePrometheus(w, true)
})
See docs for more info.
Users
Metrics
has been extracted from VictoriaMetrics sources. See this article for more info aboutVictoriaMetrics
.