package metricdata

import "go.opentelemetry.io/otel/sdk/metric/metricdata"

Index

Types

type Aggregation

type Aggregation interface {
	// contains filtered or unexported methods
}

Aggregation is the store of data reported by an Instrument. It will be one of: Gauge, Sum, Histogram.

type DataPoint

type DataPoint[N int64 | float64] struct {
	// Attributes is the set of key value pairs that uniquely identify the
	// timeseries.
	Attributes attribute.Set
	// StartTime is when the timeseries was started. (optional)
	StartTime time.Time `json:",omitempty"`
	// Time is the time when the timeseries was recorded. (optional)
	Time time.Time `json:",omitempty"`
	// Value is the value of this data point.
	Value N

	// Exemplars is the sampled Exemplars collected during the timeseries.
	Exemplars []Exemplar[N] `json:",omitempty"`
}

DataPoint is a single data point in a timeseries.

type Exemplar

type Exemplar[N int64 | float64] struct {
	// FilteredAttributes are the attributes recorded with the measurement but
	// filtered out of the timeseries' aggregated data.
	FilteredAttributes []attribute.KeyValue
	// Time is the time when the measurement was recorded.
	Time time.Time
	// Value is the measured value.
	Value N
	// SpanID is the ID of the span that was active during the measurement. If
	// no span was active or the span was not sampled this will be empty.
	SpanID []byte `json:",omitempty"`
	// TraceID is the ID of the trace the active span belonged to during the
	// measurement. If no span was active or the span was not sampled this will
	// be empty.
	TraceID []byte `json:",omitempty"`
}

Exemplar is a measurement sampled from a timeseries providing a typical example.

type Extrema

type Extrema[N int64 | float64] struct {
	// contains filtered or unexported fields
}

Extrema is the minimum or maximum value of a dataset.

func NewExtrema

func NewExtrema[N int64 | float64](v N) Extrema[N]

NewExtrema returns an Extrema set to v.

func (Extrema[N]) Value

func (e Extrema[N]) Value() (v N, defined bool)

Value returns the Extrema value and true if the Extrema is defined. Otherwise, if the Extrema is its zero-value, defined will be false.

type Gauge

type Gauge[N int64 | float64] struct {
	// DataPoints are the individual aggregated measurements with unique
	// Attributes.
	DataPoints []DataPoint[N]
}

Gauge represents a measurement of the current value of an instrument.

type Histogram

type Histogram[N int64 | float64] struct {
	// DataPoints are the individual aggregated measurements with unique
	// Attributes.
	DataPoints []HistogramDataPoint[N]
	// Temporality describes if the aggregation is reported as the change from the
	// last report time, or the cumulative changes since a fixed start time.
	Temporality Temporality
}

Histogram represents the histogram of all measurements of values from an instrument.

type HistogramDataPoint

type HistogramDataPoint[N int64 | float64] struct {
	// Attributes is the set of key value pairs that uniquely identify the
	// timeseries.
	Attributes attribute.Set
	// StartTime is when the timeseries was started.
	StartTime time.Time
	// Time is the time when the timeseries was recorded.
	Time time.Time

	// Count is the number of updates this histogram has been calculated with.
	Count uint64
	// Bounds are the upper bounds of the buckets of the histogram. Because the
	// last boundary is +infinity this one is implied.
	Bounds []float64
	// BucketCounts is the count of each of the buckets.
	BucketCounts []uint64

	// Min is the minimum value recorded. (optional)
	Min Extrema[N]
	// Max is the maximum value recorded. (optional)
	Max Extrema[N]
	// Sum is the sum of the values recorded.
	Sum N

	// Exemplars is the sampled Exemplars collected during the timeseries.
	Exemplars []Exemplar[N] `json:",omitempty"`
}

HistogramDataPoint is a single histogram data point in a timeseries.

type Metrics

type Metrics struct {
	// Name is the name of the Instrument that created this data.
	Name string
	// Description is the description of the Instrument, which can be used in documentation.
	Description string
	// Unit is the unit in which the Instrument reports.
	Unit string
	// Data is the aggregated data from an Instrument.
	Data Aggregation
}

Metrics is a collection of one or more aggregated timeseries from an Instrument.

type ResourceMetrics

type ResourceMetrics struct {
	// Resource represents the entity that collected the metrics.
	Resource *resource.Resource
	// ScopeMetrics are the collection of metrics with unique Scopes.
	ScopeMetrics []ScopeMetrics
}

ResourceMetrics is a collection of ScopeMetrics and the associated Resource that created them.

type ScopeMetrics

type ScopeMetrics struct {
	// Scope is the Scope that the Meter was created with.
	Scope instrumentation.Scope
	// Metrics are a list of aggregations created by the Meter.
	Metrics []Metrics
}

ScopeMetrics is a collection of Metrics Produces by a Meter.

type Sum

type Sum[N int64 | float64] struct {
	// DataPoints are the individual aggregated measurements with unique
	// Attributes.
	DataPoints []DataPoint[N]
	// Temporality describes if the aggregation is reported as the change from the
	// last report time, or the cumulative changes since a fixed start time.
	Temporality Temporality
	// IsMonotonic represents if this aggregation only increases or decreases.
	IsMonotonic bool
}

Sum represents the sum of all measurements of values from an instrument.

type Temporality

type Temporality uint8

Temporality defines the window that an aggregation was calculated over.

const (

	// CumulativeTemporality defines a measurement interval that continues to
	// expand forward in time from a starting point. New measurements are
	// added to all previous measurements since a start time.
	CumulativeTemporality Temporality

	// DeltaTemporality defines a measurement interval that resets each cycle.
	// Measurements from one cycle are recorded independently, measurements
	// from other cycles do not affect them.
	DeltaTemporality
)

func (Temporality) MarshalText

func (t Temporality) MarshalText() ([]byte, error)

MarshalText returns the byte encoded of t.

func (Temporality) String

func (i Temporality) String() string

Source Files

data.go temporality.go temporality_string.go

Directories

PathSynopsis
metricdata/metricdatatestPackage metricdatatest provides testing functionality for use with the metricdata package.
Version
v0.39.0
Published
May 22, 2023
Platform
darwin/amd64
Imports
5 packages
Last checked
31 minutes ago

Tools for package owners.