runtime/metrics

Guided tour · Runtime & Debug · pkg.go.dev →

Structured, versioned access to runtime metrics (heap, GC pauses, scheduler latency, etc). Preferred over runtime.MemStats for monitoring.

Read metrics

Sample a set of metrics

samples := []metrics.Sample{
    {Name: "/gc/pauses:seconds"},
    {Name: "/memory/classes/heap/objects:bytes"},
    {Name: "/sched/goroutines:goroutines"},
}
metrics.Read(samples)
for _, s := range samples {
    fmt.Println(s.Name, s.Value.Kind())
}

Discover available metrics

for _, d := range metrics.All() {
    fmt.Println(d.Name, "-", d.Description)
}