cloudwatch

package
v1.247351.0 Latest Latest
Warning

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

Go to latest
Published: Apr 5, 2022 License: MIT Imports: 26 Imported by: 0

README

Amazon CloudWatch Output for Telegraf

This plugin will send metrics to Amazon CloudWatch.

Amazon Authentication

This plugin uses a credential chain for Authentication with the CloudWatch API endpoint. In the following order the plugin will attempt to authenticate.

  1. Assumed credentials via STS if role_arn attribute is specified (source credentials are evaluated from subsequent rules)
  2. Explicit credentials from access_key, secret_key, and token attributes
  3. Shared profile from profile attribute
  4. Environment Variables
  5. Shared Credentials
  6. EC2 Instance Profile

Config

For this output plugin to function correctly the following variables must be configured.

  • region
  • endpoint_override
  • namespace

region

The region is the Amazon region that you wish to connect to. Examples include but are not limited to:

  • us-west-1
  • us-west-2
  • us-east-1
  • ap-southeast-1
  • ap-southeast-2

endpoint_override

The endpoint_override is the endpoint you want to use other than the default endpoint based on the region information.

namespace

The namespace used for AWS CloudWatch metrics.

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func BuildDimensions

func BuildDimensions(mTags map[string]string) []*cloudwatch.Dimension

Make a list of Dimensions by using a Point's tags. CloudWatch supports up to 10 dimensions per metric so we only keep up to the first 10 alphabetically. This always includes the "host" tag if it exists.

func GetDroppingDimensionMap added in v1.247350.0

func GetDroppingDimensionMap(input map[string][]string) map[string]map[string]struct{}

func GetUniqueRollupList

func GetUniqueRollupList(inputLists [][]string) [][]string

Types

type Aggregator

type Aggregator interface {
	AddMetric(m telegraf.Metric)
}

func NewAggregator

func NewAggregator(metricChan chan<- telegraf.Metric, shutdownChan <-chan struct{}, wg *sync.WaitGroup) Aggregator

type CloudWatch

type CloudWatch struct {
	Region             string                   `toml:"region"`
	EndpointOverride   string                   `toml:"endpoint_override"`
	AccessKey          string                   `toml:"access_key"`
	SecretKey          string                   `toml:"secret_key"`
	RoleARN            string                   `toml:"role_arn"`
	Profile            string                   `toml:"profile"`
	Filename           string                   `toml:"shared_credential_file"`
	Token              string                   `toml:"token"`
	ForceFlushInterval internal.Duration        `toml:"force_flush_interval"` // unit is second
	MaxDatumsPerCall   int                      `toml:"max_datums_per_call"`
	MaxValuesPerDatum  int                      `toml:"max_values_per_datum"`
	MetricConfigs      []MetricDecorationConfig `toml:"metric_decoration"`
	RollupDimensions   [][]string               `toml:"rollup_dimensions"`
	DropOriginConfigs  map[string][]string      `toml:"drop_original_metrics"`
	Namespace          string                   `toml:"namespace"` // CloudWatch Metrics Namespace

	Log telegraf.Logger `toml:"-"`
	// contains filtered or unexported fields
}

func (*CloudWatch) BuildMetricDatum

func (c *CloudWatch) BuildMetricDatum(point telegraf.Metric) []*cloudwatch.MetricDatum

Create MetricDatums according to metric roll up requirement for each field in a Point. Only fields with values that can be converted to float64 are supported. Non-supported fields are skipped.

func (*CloudWatch) Close

func (c *CloudWatch) Close() error

func (*CloudWatch) Connect

func (c *CloudWatch) Connect() error

func (*CloudWatch) Description

func (c *CloudWatch) Description() string

func (*CloudWatch) IsDropping added in v1.247350.0

func (c *CloudWatch) IsDropping(metricName string, dimensionName string) bool

func (*CloudWatch) ProcessRollup

func (c *CloudWatch) ProcessRollup(rawDimension []*cloudwatch.Dimension) [][]*cloudwatch.Dimension

func (*CloudWatch) SampleConfig

func (c *CloudWatch) SampleConfig() string

func (*CloudWatch) Write

func (c *CloudWatch) Write(metrics []telegraf.Metric) error

func (*CloudWatch) WriteToCloudWatch

func (c *CloudWatch) WriteToCloudWatch(req interface{})

type MetricDatumBatch

type MetricDatumBatch struct {
	MaxDatumsPerCall int
	Partition        []*cloudwatch.MetricDatum
	BeginTime        time.Time
	Size             int
	// contains filtered or unexported fields
}

type MetricDecorationConfig

type MetricDecorationConfig struct {
	Category string `toml:"category"`
	Metric   string `toml:"name"`
	Rename   string `toml:"rename"`
	Unit     string `toml:"unit"`
}

type MetricDecorations

type MetricDecorations struct {
	// contains filtered or unexported fields
}

func NewMetricDecorations

func NewMetricDecorations(metricConfigs []MetricDecorationConfig) (*MetricDecorations, error)

Jump to

Keyboard shortcuts

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