go.opencensus.io: go.opencensus.io/plugin/runmetrics Index | Examples | Files

package runmetrics

import "go.opencensus.io/plugin/runmetrics"

Package runmetrics contains support for runtime metrics.

To enable collecting runtime metrics, just call Enable():

_ := runmetrics.Enable(runmetrics.RunMetricOptions{
    EnableCPU: true,
    EnableMemory: true,
})

Index

Examples

Package Files

doc.go producer.go

func Disable Uses

func Disable()

Disable disables collection of runtime metrics.

func Enable Uses

func Enable(options RunMetricOptions) error

Enable enables collection of runtime metrics.

Supply RunMetricOptions to configure the behavior of metrics collection. An error might be returned, if creating metrics gauges fails.

Previous calls will be overwritten by subsequent ones.

Code:

package main

import (
    "context"
    "fmt"
    "log"
    "sort"

    "go.opencensus.io/metric/metricdata"
    "go.opencensus.io/metric/metricexport"
    "go.opencensus.io/plugin/runmetrics"
)

type printExporter struct {
}

func (l *printExporter) ExportMetrics(ctx context.Context, data []*metricdata.Metric) error {
    mapData := make(map[string]metricdata.Metric, 0)

    for _, v := range data {
        mapData[v.Descriptor.Name] = *v
    }

    mapKeys := make([]string, 0, len(mapData))
    for key := range mapData {
        mapKeys = append(mapKeys, key)
    }
    sort.Strings(mapKeys)

    // for the sake of a simple example, we cannot use the real value here
    simpleVal := func(v interface{}) int { return 42 }

    for _, k := range mapKeys {
        v := mapData[k]
        fmt.Printf("%s %d\n", k, simpleVal(v.TimeSeries[0].Points[0].Value))
    }

    return nil
}

func main() {

    // Enable collection of runtime metrics and supply options
    err := runmetrics.Enable(runmetrics.RunMetricOptions{
        EnableCPU:    true,
        EnableMemory: true,
        Prefix:       "mayapp/",
    })
    if err != nil {
        log.Fatal(err)
    }

    // Use your reader/exporter to extract values
    // This part is not specific to runtime metrics and only here to make it a complete example.
    metricexport.NewReader().ReadAndExport(&printExporter{})

}

type RunMetricOptions Uses

type RunMetricOptions struct {
    EnableCPU    bool   // EnableCPU whether CPU metrics shall be recorded
    EnableMemory bool   // EnableMemory whether memory metrics shall be recorded
    Prefix       string // Prefix is a custom prefix for metric names
}

RunMetricOptions allows to configure runtime metrics.

Package runmetrics imports 6 packages (graph) and is imported by 2 packages. Updated 2020-02-08. Refresh now. Tools for package owners.