cloudwatch

package
v0.13.0 Latest Latest
Warning

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

Go to latest
Published: May 29, 2023 License: MIT Imports: 13 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type CloudWatch

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

CloudWatch receives metrics observations and forwards them to CloudWatch. Create a CloudWatch object, use it to create metrics, and pass those metrics as dependencies to the components that will use them.

To regularly report metrics to CloudWatch, use the WriteLoop helper method.

func New

func New(namespace string, svc cloudwatchiface.CloudWatchAPI, options ...Option) *CloudWatch

New returns a CloudWatch object that may be used to create metrics. Namespace is applied to all created metrics and maps to the CloudWatch namespace. Callers must ensure that regular calls to Send are performed, either manually or with one of the helper methods.

func (*CloudWatch) NewCounter

func (cw *CloudWatch) NewCounter(name string) metrics.Counter

NewCounter returns a counter. Observations are aggregated and emitted once per write invocation.

func (*CloudWatch) NewGauge

func (cw *CloudWatch) NewGauge(name string) metrics.Gauge

NewGauge returns an gauge.

func (*CloudWatch) NewHistogram

func (cw *CloudWatch) NewHistogram(name string) metrics.Histogram

NewHistogram returns a histogram.

func (*CloudWatch) Send

func (cw *CloudWatch) Send() error

Send will fire an API request to CloudWatch with the latest stats for all metrics. It is preferred that the WriteLoop method is used.

func (*CloudWatch) WriteLoop

func (cw *CloudWatch) WriteLoop(ctx context.Context, c <-chan time.Time)

WriteLoop is a helper method that invokes Send every time the passed channel fires. This method blocks until ctx is canceled, so clients probably want to run it in its own goroutine. For typical usage, create a time.Ticker and pass its C channel to this method.

type Counter added in v0.6.0

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

Counter is a counter. Observations are forwarded to a node object, and aggregated (summed) per timeseries.

func (*Counter) Add added in v0.6.0

func (c *Counter) Add(delta float64)

Add implements metrics.Counter.

func (*Counter) With added in v0.6.0

func (c *Counter) With(labelValues ...string) metrics.Counter

With implements metrics.Counter.

type Gauge added in v0.6.0

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

Gauge is a gauge. Observations are forwarded to a node object, and aggregated (the last observation selected) per timeseries.

func (*Gauge) Add added in v0.6.0

func (g *Gauge) Add(delta float64)

Add implements metrics.Gauge.

func (*Gauge) Set added in v0.6.0

func (g *Gauge) Set(value float64)

Set implements metrics.Gauge.

func (*Gauge) With added in v0.6.0

func (g *Gauge) With(labelValues ...string) metrics.Gauge

With implements metrics.Gauge.

type Histogram added in v0.6.0

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

Histogram is an Influx histrogram. Observations are aggregated into a generic.Histogram and emitted as per-quantile gauges to the Influx server.

func (*Histogram) Observe added in v0.6.0

func (h *Histogram) Observe(value float64)

Observe implements metrics.Histogram.

func (*Histogram) With added in v0.6.0

func (h *Histogram) With(labelValues ...string) metrics.Histogram

With implements metrics.Histogram.

type Option added in v0.13.0

type Option func(*CloudWatch)

Option is a function adapter to change config of the CloudWatch struct

func WithConcurrentRequests added in v0.6.0

func WithConcurrentRequests(n int) Option

WithConcurrentRequests sets the upper limit on how many cloudwatch.PutMetricDataRequest may be under way at any given time. If n is greater than 20, 20 is used. By default, the max is set at 10 concurrent requests.

func WithLogger added in v0.6.0

func WithLogger(logger log.Logger) Option

WithLogger sets the Logger that will receive error messages generated during the WriteLoop. By default, fmt logger is used.

func WithPercentiles added in v0.6.0

func WithPercentiles(percentiles ...float64) Option

WithPercentiles registers the percentiles to track, overriding the existing/default values. Reason is that Cloudwatch makes you pay per metric, so you can save half the money by only using 2 metrics instead of the default 4.

Jump to

Keyboard shortcuts

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