metric

package
v0.0.0-...-aec1f2c Latest Latest
Warning

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

Go to latest
Published: Nov 5, 2018 License: MIT Imports: 12 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AddFuncDuration

func AddFuncDuration(emitter Emitter, name string, tags map[string]string) func()

AddFuncDuration enables easy reporting of function duration In the following example, "execution-duration" is added to metrics

and "marked" at the end of the function to record function duration

defer AddFuncDuration(metrics, "execution-duration", nil)

func FlushAndLog

func FlushAndLog(emitter Emitter)

func PutCloudwatch

func PutCloudwatch(namespace string, values []cloudwatch.MetricDatum) error

func WithEmitter

func WithEmitter(ctx context.Context, e Emitter) context.Context

Types

type DurationPoint

type DurationPoint struct {
	Point
	// contains filtered or unexported fields
}

func Duration

func Duration(name string, tags map[string]string) *DurationPoint

This will report duration in microseconds to cloudwatch The duration starts when this is created and ends when converted to MetricDatum via ToAWS

func (*DurationPoint) Mark

func (p *DurationPoint) Mark()

type Emitter

type Emitter interface {
	scaffold.Contextualizer
	Add(point *Point)
	Flush() error
}

func ContextEmitter

func ContextEmitter(ctx context.Context) Emitter

func NewCloudwatchEmitter

func NewCloudwatchEmitter(namespace string) Emitter

NewCloudwatchEmitter creates an emitter that publishes to AWS Cloudwatch Metrics

func NewDatadogEmitter

func NewDatadogEmitter(apiKey, namespace string) Emitter

NewDatadogEmitter creates an emitter that publishes custom metrics to datadog via API

func NewNoopEmitter

func NewNoopEmitter() Emitter

NewNoopEmitter creates an emitter that ignores metrics

func NewStderrEmitter

func NewStderrEmitter(namespace string) Emitter

NewStderrEmitter creates an emitter dumps metrics to stderr

type MultiEmitter

type MultiEmitter []Emitter

MultiEmitter provides the ability to wrap multiple emitters

func (MultiEmitter) Add

func (e MultiEmitter) Add(point *Point)

func (MultiEmitter) Contextualize

func (e MultiEmitter) Contextualize(ctx context.Context) context.Context

func (MultiEmitter) Flush

func (e MultiEmitter) Flush() error

type Point

type Point struct {
	Metric     string
	Unit       string
	Timestamp  time.Time
	Resolution *int64
	Value      float64
	Tags       map[string]string
}

func Count

func Count(name string, count int, tags map[string]string) *Point

Jump to

Keyboard shortcuts

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