package aggregation
import "go.opentelemetry.io/otel/sdk/export/metric/aggregation"
Index ¶
- Variables
- type Aggregation
- type Buckets
- type Count
- type Histogram
- type Kind
- type LastValue
- type Max
- type Min
- type MinMaxSumCount
- type Point
- type Points
- type Sum
- type Temporality
- func (t Temporality) Includes(other Temporality) bool
- func (t Temporality) MemoryRequired(mkind sdkapi.InstrumentKind) bool
- func (i Temporality) String() string
- type TemporalitySelector
Variables ¶
var ( ErrNegativeInput = fmt.Errorf("negative value is out of range for this instrument") ErrNaNInput = fmt.Errorf("NaN value is an invalid input") ErrInconsistentType = fmt.Errorf("inconsistent aggregator types") ErrNoSubtraction = fmt.Errorf("aggregator does not subtract") // ErrNoData is returned when (due to a race with collection) // the Aggregator is check-pointed before the first value is set. // The aggregator should simply be skipped in this case. ErrNoData = fmt.Errorf("no data collected by this aggregator") )
Sentinel errors for Aggregation interface.
Types ¶
type Aggregation ¶
type Aggregation interface { // Kind returns a short identifying string to identify // the Aggregator that was used to produce the // Aggregation (e.g., "Sum"). Kind() Kind }
Aggregation is an interface returned by the Aggregator containing an interval of metric data.
type Buckets ¶
type Buckets struct { // Boundaries are floating point numbers, even when // aggregating integers. Boundaries []float64 // Counts holds the count in each bucket. Counts []uint64 }
Buckets represents histogram buckets boundaries and counts.
For a Histogram with N defined boundaries, e.g, [x, y, z]. There are N+1 counts: [-inf, x), [x, y), [y, z), [z, +inf]
type Count ¶
type Count interface { Aggregation Count() (uint64, error) }
Count returns the number of values that were aggregated.
type Histogram ¶
type Histogram interface { Aggregation Count() (uint64, error) Sum() (number.Number, error) Histogram() (Buckets, error) }
Histogram returns the count of events in pre-determined buckets.
type Kind ¶
type Kind string
Kind is a short name for the Aggregator that produces an Aggregation, used for descriptive purpose only. Kind is a string to allow user-defined Aggregators.
When deciding how to handle an Aggregation, Exporters are encouraged to decide based on conversion to the above interfaces based on strength, not on Kind value, when deciding how to expose metric data. This enables user-supplied Aggregators to replace builtin Aggregators.
For example, test for a Distribution before testing for a MinMaxSumCount, test for a Histogram before testing for a Sum, and so on.
const ( SumKind Kind = "Sum" MinMaxSumCountKind Kind = "MinMaxSumCount" HistogramKind Kind = "Histogram" LastValueKind Kind = "Lastvalue" ExactKind Kind = "Exact" )
Kind description constants.
func (Kind) String ¶
String returns the string value of Kind.
type LastValue ¶
LastValue returns the latest value that was aggregated.
type Max ¶
type Max interface { Aggregation Max() (number.Number, error) }
Max returns the maximum value over the set of values that were aggregated.
type Min ¶
type Min interface { Aggregation Min() (number.Number, error) }
Min returns the minimum value over the set of values that were aggregated.
type MinMaxSumCount ¶
type MinMaxSumCount interface { Aggregation Min() (number.Number, error) Max() (number.Number, error) Sum() (number.Number, error) Count() (uint64, error) }
MinMaxSumCount supports the Min, Max, Sum, and Count interfaces.
type Point ¶
Point is a raw data point, consisting of a number and value.
type Points ¶
type Points interface { Aggregation // Points returns points in the order they were // recorded. Points are approximately ordered by // timestamp, but this is not guaranteed. Points() ([]Point, error) }
Points returns the raw values that were aggregated.
type Sum ¶
type Sum interface { Aggregation Sum() (number.Number, error) }
Sum returns an aggregated sum.
type Temporality ¶
type Temporality uint8
Temporality indicates the temporal aggregation exported by an exporter. These bits may be OR-d together when multiple exporters are in use.
const ( // CumulativeTemporality indicates that an Exporter expects a // Cumulative Aggregation. CumulativeTemporality Temporality = 1 // DeltaTemporality indicates that an Exporter expects a // Delta Aggregation. DeltaTemporality Temporality = 2 )
func (Temporality) Includes ¶
func (t Temporality) Includes(other Temporality) bool
Includes returns if t includes support for other temporality.
func (Temporality) MemoryRequired ¶
func (t Temporality) MemoryRequired(mkind sdkapi.InstrumentKind) bool
MemoryRequired returns whether an exporter of this temporality requires memory to export correctly.
func (Temporality) String ¶
func (i Temporality) String() string
type TemporalitySelector ¶
type TemporalitySelector interface { // TemporalityFor should return the correct Temporality that // should be used when exporting data for the given metric // instrument and Aggregator kind. TemporalityFor(descriptor *sdkapi.Descriptor, aggregationKind Kind) Temporality }
TemporalitySelector is a sub-interface of Exporter used to indicate whether the Processor should compute Delta or Cumulative Aggregations.
func ConstantTemporalitySelector ¶
func ConstantTemporalitySelector(t Temporality) TemporalitySelector
ConstantTemporalitySelector returns an TemporalitySelector that returns a constant Temporality.
func CumulativeTemporalitySelector ¶
func CumulativeTemporalitySelector() TemporalitySelector
CumulativeTemporalitySelector returns an TemporalitySelector that always returns CumulativeTemporality.
func DeltaTemporalitySelector ¶
func DeltaTemporalitySelector() TemporalitySelector
DeltaTemporalitySelector returns an TemporalitySelector that always returns DeltaTemporality.
func StatelessTemporalitySelector ¶
func StatelessTemporalitySelector() TemporalitySelector
StatelessTemporalitySelector returns an TemporalitySelector that always returns the Temporality that avoids long-term memory requirements.
Source Files ¶
aggregation.go temporality.go temporality_string.go
- Version
- v0.25.0
- Published
- Nov 12, 2021
- Platform
- darwin/amd64
- Imports
- 5 packages
- Last checked
- 3 hours ago –
Tools for package owners.