varz
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package varz contains code to export metrics in Prometheus format.
Index¶
- func ExpvarDoHandler(expvarDoFunc func(f func(expvar.KeyValue))) func(http.ResponseWriter, *http.Request)
- func Handler(w http.ResponseWriter, r *http.Request)
- func StaticStringVar(s string) expvar.Var
- func Uptime() time.Duration
- func WritePrometheusExpvar(w io.Writer, kv expvar.KeyValue)
- type PrometheusMetricsReflectRooter
- type PrometheusWriter
Constants¶
This section is empty.
Variables¶
This section is empty.
Functions¶
funcExpvarDoHandler¶added inv1.74.0
func ExpvarDoHandler(expvarDoFunc func(f func(expvar.KeyValue))) func(http.ResponseWriter, *http.Request)
ExpvarDoHandler handler returns a Handler like above, but takes an optionalexpvar.Do func allow the usage of alternative containers of metrics, otherthan the global expvar.Map.
funcHandler¶
func Handler(whttp.ResponseWriter, r *http.Request)
Handler is an HTTP handler to write expvar values into theprometheus export format:
https://github.com/prometheus/docs/blob/master/content/docs/instrumenting/exposition_formats.md
It makes the following assumptions:
- *expvar.Int are counters (unless marked as a gauge_; see below)
- a *tailscale/metrics.Set is descended into, joining keys withunderscores. So use underscores as your metric names.
- an expvar named starting with "gauge_" or "counter_" is of thatPrometheus type, and has that prefix stripped.
- anything else is untyped and thus not exported.
- expvar.Func can return an int or int64 (for now) and anything elseis not exported.
This will evolve over time, or perhaps be replaced.
funcStaticStringVar¶added inv1.78.0
StaticStringVar returns a new expvar.Var that always returns s.
Types¶
typePrometheusMetricsReflectRooter¶
type PrometheusMetricsReflectRooter interface {expvar.Var// PrometheusMetricsReflectRoot returns the struct or struct pointer to walk.PrometheusMetricsReflectRoot()any}PrometheusMetricsReflectRooter is an optional interface that expvar.Var implementationscan implement to indicate that they should be walked recursively with reflect to findsets of fields to export.
typePrometheusWriter¶added inv1.64.0
PrometheusWriter is the interface implemented by metrics that can writethemselves into Prometheus exposition format.
As of 2024-03-25, this is only *metrics.MultiLabelMap.