varz

package
v0.0.0-...-113f59a Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 16, 2024 License: BSD-3-Clause Imports: 14 Imported by: 0

Documentation

Overview

Package varz contains code to export metrics in Prometheus format.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Handler

func Handler(w http.ResponseWriter, r *http.Request)

Handler is an HTTP handler to write expvar values into the prometheus 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 with underscores. So use underscores as your metric names.
  • an expvar named starting with "gauge_" or "counter_" is of that Prometheus 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 else is not exported.

This will evolve over time, or perhaps be replaced.

func Uptime

func Uptime() time.Duration

func WritePrometheusExpvar

func WritePrometheusExpvar(w io.Writer, kv expvar.KeyValue)

WritePrometheusExpvar writes kv to w in Prometheus metrics format.

See VarzHandler for conventions. This is exported primarily for people to test their varz.

Types

type PrometheusMetricsReflectRooter

type PrometheusMetricsReflectRooter interface {
	expvar.Var

	// PrometheusMetricsReflectRoot returns the struct or struct pointer to walk.
	PrometheusMetricsReflectRoot() any
}

PrometheusMetricsReflectRooter is an optional interface that expvar.Var implementations can implement to indicate that they should be walked recursively with reflect to find sets of fields to export.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL