package exact

import "go.opentelemetry.io/otel/sdk/metric/aggregator/exact"

Index

Types

type Aggregator

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

Aggregator aggregates events that form a distribution, keeping an array with the exact set of values.

func New

func New(cnt int) []Aggregator

New returns cnt many new exact aggregators, which aggregate recorded measurements by storing them in an array. This type uses a mutex for Update() and SynchronizedMove() concurrency.

func (*Aggregator) Aggregation

func (c *Aggregator) Aggregation() aggregation.Aggregation

Aggregation returns an interface for reading the state of this aggregator.

func (*Aggregator) Count

func (c *Aggregator) Count() (uint64, error)

Count returns the number of values in the checkpoint.

func (*Aggregator) Kind

func (c *Aggregator) Kind() aggregation.Kind

Kind returns aggregation.ExactKind.

func (*Aggregator) Merge

func (c *Aggregator) Merge(oa export.Aggregator, desc *metric.Descriptor) error

Merge combines two data sets into one.

func (*Aggregator) Points

func (c *Aggregator) Points() ([]aggregation.Point, error)

Points returns access to the raw data set.

func (*Aggregator) SynchronizedMove

func (c *Aggregator) SynchronizedMove(oa export.Aggregator, desc *metric.Descriptor) error

SynchronizedMove saves the current state to oa and resets the current state to the empty set, taking a lock to prevent concurrent Update() calls.

func (*Aggregator) Update

func (c *Aggregator) Update(_ context.Context, number number.Number, desc *metric.Descriptor) error

Update adds the recorded measurement to the current data set. Update takes a lock to prevent concurrent Update() and SynchronizedMove() calls.

Source Files

exact.go

Version
v0.21.0
Published
Jun 18, 2021
Platform
linux/amd64
Imports
8 packages
Last checked
1 hour ago

Tools for package owners.