This library provides a stackdriver sink for applications instrumented with the go-metrics library.
stackdriver.NewSink's return value satisfies the go-metrics library's MetricSink interface. When providing a stackdriver.Sink
to libraries and applications instrumented against MetricSink
, the metrics will be aggregated within this library and written to stackdriver as Generic Task timeseries metrics.
import "github.com/google/go-metrics-stackdriver"
...
client, _ := monitoring.NewMetricClient(context.Background())
ss := stackdriver.NewSink(client, &stackdriver.Config{
ProjectID: projectID,
})
...
ss.SetGauge([]string{"foo"}, 42)
ss.IncrCounter([]string{"baz"}, 1)
ss.AddSample([]string{"method", "const"}, 200)
The full example can be run from a cloud shell console to test how metrics are collected and displayed.
You can also try out the example using Cloud Run!
This is not an officially supported Google product.