luci: go.chromium.org/luci/common/tsmon/runtimestats Index | Files

package runtimestats

import "go.chromium.org/luci/common/tsmon/runtimestats"

Package runtimestats exposes metrics related to the Go runtime.

It exports the allocator statistics (go/mem/* metrics) and the current number of goroutines (go/goroutine/num).

Should be invoked manually for now. Call Report(c) to populate the metrics prior tsmon Flush.

Index

Package Files

runtimestats.go

Variables

var (
    MemAlloc       = metric.NewInt("go/mem/alloc", "Bytes allocated and not yet freed.", &types.MetricMetadata{types.Bytes})
    MemTotalAlloc  = metric.NewCounter("go/mem/total_alloc", "Bytes allocated (even if freed).", &types.MetricMetadata{types.Bytes})
    MemMallocs     = metric.NewCounter("go/mem/mallocs", "Number of mallocs.", nil)
    MemFrees       = metric.NewCounter("go/mem/frees", "Number of frees.", nil)
    MemNextGC      = metric.NewInt("go/mem/next_gc", "Next GC will happen when go/mem/alloc > this amount.", nil)
    MemNumGC       = metric.NewCounter("go/mem/num_gc", "Number of garbage collections.", nil)
    MemPauseTotal  = metric.NewCounter("go/mem/pause_total", "Total GC pause, in microseconds.", nil)
    MemHeapSys     = metric.NewInt("go/mem/heap_sys", "Bytes obtained from system.", &types.MetricMetadata{types.Bytes})
    MemHeapIdle    = metric.NewInt("go/mem/heap_idle", "Bytes in idle spans.", &types.MetricMetadata{types.Bytes})
    MemHeapInuse   = metric.NewInt("go/mem/heap_in_use", "Bytes in non-idle span.", &types.MetricMetadata{types.Bytes})
    MemHeapObjects = metric.NewInt("go/mem/heap_objects", "Total number of allocated objects.", nil)
    MemStackInuse  = metric.NewInt("go/mem/stack_in_use", "Bytes used by stack allocator.", &types.MetricMetadata{types.Bytes})
    MemStackSys    = metric.NewInt("go/mem/stack_in_sys", "Bytes allocated to stack allocator.", &types.MetricMetadata{types.Bytes})
    MemMSpanInuse  = metric.NewInt("go/mem/mspan_in_use", "Bytes used by mspan structures.", &types.MetricMetadata{types.Bytes})
    MemMSpanSys    = metric.NewInt("go/mem/mspan_in_sys", "Bytes allocated to mspan structures.", &types.MetricMetadata{types.Bytes})
    MemMCacheInuse = metric.NewInt("go/mem/mcache_in_use", "Bytes used by mcache structures.", &types.MetricMetadata{types.Bytes})
    MemMCacheSys   = metric.NewInt("go/mem/mcache_in_sys", "Bytes allocated to mcache structures.", &types.MetricMetadata{types.Bytes})

    GoroutineNum = metric.NewInt("go/goroutine/num", "The number of goroutines that currently exist.", nil)
)

func Report Uses

func Report(c context.Context)

Report updates runtime stats metrics.

Call it periodically (ideally right before flushing the metrics) to gather runtime stats metrics.

Package runtimestats imports 4 packages (graph) and is imported by 2 packages. Updated 2018-08-21. Refresh now. Tools for package owners.