metrics/README.md
2019-04-08 21:11:48 +03:00

1.9 KiB

GoDoc Go Report

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

Usage

import "github.com/VictoriaMetrics/metrics"
// ...
var (
	requestsTotal = metrics.NewCounter("requests_total")

	requestDuration = metrics.NewSummary(`requests_duration_seconds{handler="/my/super/handler"}`)
)

func init() {
	metrics.NewGauge(`queue_size{queue="foobar",topic="baz"}`, func() float64 {
		return float64(foobarQueue.Len())
	})
}

// ...
func requestHandler() {
	startTime := time.Now()
	// ...
	requestsTotal.Inc()
	requestDuration.UpdateDuration(startTime)
}
// ...

// Register `/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