package exemplar
import "go.opentelemetry.io/otel/sdk/metric/internal/exemplar"
Package exemplar provides an implementation of the OpenTelemetry exemplar reservoir to be used in metric collection pipelines.
Index ¶
Types ¶
type Reservoir ¶
type Reservoir[N int64 | float64] interface { // Offer accepts the parameters associated with a measurement. The // parameters will be stored as an exemplar if the Reservoir decides to // sample the measurement. // // The passed ctx needs to contain any baggage or span that were active // when the measurement was made. This information may be used by the // Reservoir in making a sampling decision. // // The time t is the time when the measurement was made. The val and attr // parameters are the value and dropped (filtered) attributes of the // measurement respectively. Offer(ctx context.Context, t time.Time, val N, attr []attribute.KeyValue) // Collect returns all the held exemplars. // // The Reservoir state is preserved after this call. Collect(dest *[]metricdata.Exemplar[N]) }
Reservoir holds the sampled exemplar of measurements made.
func Drop ¶
Drop returns a Reservoir that drops all measurements it is offered.
func FixedSize ¶
FixedSize returns a Reservoir that samples at most k exemplars. If there are k or less measurements made, the Reservoir will sample each one. If there are more than k, the Reservoir will then randomly sample all additional measurement with a decreasing probability.
func Histogram ¶
Histogram returns a Reservoir that samples the last measurement that falls within a histogram bucket. The histogram bucket upper-boundaries are define by bounds.
The passed bounds will be sorted by this function.
func SampledFilter ¶
SampledFilter returns a Reservoir wrapping r that will only offer measurements to r if the passed context associated with the measurement contains a sampled go.opentelemetry.io/otel/trace.SpanContext.
Source Files ¶
doc.go drop.go filter.go hist.go rand.go reservoir.go storage.go
- Version
- v1.24.0
- Published
- Feb 23, 2024
- Platform
- js/wasm
- Imports
- 8 packages
- Last checked
- 54 minutes ago –
Tools for package owners.