stackdriver

package
v1.23.4 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2022 License: MIT Imports: 18 Imported by: 3

README

Stackdriver Google Cloud Monitoring Output Plugin

This plugin writes to the Google Cloud Monitoring API (formerly Stackdriver) and requires authentication with Google Cloud using either a service account or user credentials

This plugin accesses APIs which are chargeable; you might incur costs.

Requires project to specify where Stackdriver metrics will be delivered to.

Metrics are grouped by the namespace variable and metric key - eg: custom.googleapis.com/telegraf/system/load5

Resource type is configured by the resource_type variable (default global).

Additional resource labels can be configured by resource_labels. By default the required project_id label is always set to the project variable.

Configuration

# Configuration for Google Cloud Stackdriver to send metrics to
[[outputs.stackdriver]]
  ## GCP Project
  project = "erudite-bloom-151019"

  ## The namespace for the metric descriptor
  namespace = "telegraf"

  ## Custom resource type
  # resource_type = "generic_node"

  ## Additional resource labels
  # [outputs.stackdriver.resource_labels]
  #   node_id = "$HOSTNAME"
  #   namespace = "myapp"
  #   location = "eu-north0"

Restrictions

Stackdriver does not support string values in custom metrics, any string fields will not be written.

The Stackdriver API does not allow writing points which are out of order, older than 24 hours, or more with resolution greater than than one per point minute. Since Telegraf writes the newest points first and moves backwards through the metric buffer, it may not be possible to write historical data after an interruption.

Points collected with greater than 1 minute precision may need to be aggregated before then can be written. Consider using the basicstats aggregator to do this.

Histogram / distribution and delta metrics are not yet supported. These will be dropped silently unless debugging is on.

Note that the plugin keeps an in-memory cache of the start times and last observed values of all COUNTER metrics in order to comply with the requirements of the stackdriver API. This cache is not GCed: if you remove a large number of counters from the input side, you may wish to restart telegraf to clear it.

Documentation

Index

Constants

View Source
const (
	// QuotaLabelsPerMetricDescriptor is the limit
	// to labels (tags) per metric descriptor.
	QuotaLabelsPerMetricDescriptor = 10
	// QuotaStringLengthForLabelKey is the limit
	// to string length for label key.
	QuotaStringLengthForLabelKey = 100
	// QuotaStringLengthForLabelValue is the limit
	// to string length for label value.
	QuotaStringLengthForLabelValue = 1024

	// MaxInt is the max int64 value.
	MaxInt = int(^uint(0) >> 1)
)

Variables

This section is empty.

Functions

func GetCounterCacheKey added in v1.21.3

func GetCounterCacheKey(m telegraf.Metric, f *telegraf.Field) string

func NewCounterCache added in v1.21.3

func NewCounterCache(log telegraf.Logger) *counterCache

func NewCounterCacheEntry added in v1.21.3

func NewCounterCacheEntry(value *monpb.TypedValue, ts *tspb.Timestamp) *counterCacheEntry

Types

type Stackdriver

type Stackdriver struct {
	Project        string            `toml:"project"`
	Namespace      string            `toml:"namespace"`
	ResourceType   string            `toml:"resource_type"`
	ResourceLabels map[string]string `toml:"resource_labels"`
	Log            telegraf.Logger   `toml:"-"`
	// contains filtered or unexported fields
}

Stackdriver is the Google Stackdriver config info.

func (*Stackdriver) Close

func (s *Stackdriver) Close() error

Close will terminate the session to the backend, returning error if an issue arises.

func (*Stackdriver) Connect

func (s *Stackdriver) Connect() error

Connect initiates the primary connection to the GCP project.

func (*Stackdriver) SampleConfig

func (*Stackdriver) SampleConfig() string

func (*Stackdriver) Write

func (s *Stackdriver) Write(metrics []telegraf.Metric) error

Write the metrics to Google Cloud Stackdriver.

Jump to

Keyboard shortcuts

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