telemetry

package module
v0.50.0-rc.5 Latest Latest
Warning

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

Go to latest
Published: Nov 30, 2023 License: Apache-2.0 Imports: 12 Imported by: 2

Documentation

Overview

Package telemetry implements a component for all agent telemetry.

Index

Constants

This section is empty.

Variables

View Source
var DefaultOptions = Options{

	NoDoubleUnderscoreSep: false,
}

DefaultOptions for telemetry metrics which don't need to specify any option.

View Source
var MockModule = fxutil.Component(
	fx.Provide(newMock),
	fx.Provide(func(m Mock) Component { return m }),
)

MockModule defines the fx options for the mock component.

View Source
var Module = fxutil.Component(
	fx.Provide(newTelemetry),
)

Module defines the fx options for this component.

Functions

This section is empty.

Types

type Bucket

type Bucket struct {
	UpperBound float64
	Count      uint64
}

Bucket is a struct representing the internal bucket state

type Component

type Component interface {
	// Handler returns an http handler to expose the internal metrics
	Handler() http.Handler
	// Reset resets all tracked telemetry
	Reset()
	// RegisterCollector Registers a Collector with the prometheus registry
	RegisterCollector(c prometheus.Collector)
	// UnregisterCollector unregisters a Collector with the prometheus registry
	UnregisterCollector(c prometheus.Collector) bool
	// Meter returns a new OTEL meter
	Meter(name string, opts ...metric.MeterOption) metric.Meter

	// NewCounter creates a Counter with default options for telemetry purpose.
	NewCounter(subsystem, name string, tags []string, help string) Counter
	// NewCounterWithOpts creates a Counter with the given options for telemetry purpose.
	NewCounterWithOpts(subsystem, name string, tags []string, help string, opts Options) Counter

	// NewSimpleCounter creates a new SimpleCounter with default options.
	NewSimpleCounter(subsystem, name, help string) SimpleCounter
	// NewSimpleCounterWithOpts creates a new SimpleCounter.
	NewSimpleCounterWithOpts(subsystem, name, help string, opts Options) SimpleCounter

	// NewGauge creates a Gauge with default options for telemetry purpose.
	NewGauge(subsystem, name string, tags []string, help string) Gauge
	// NewGaugeWithOpts creates a Gauge with the given options for telemetry purpose.
	NewGaugeWithOpts(subsystem, name string, tags []string, help string, opts Options) Gauge

	// NewSimpleGauge creates a new SimpleGauge with default options.
	NewSimpleGauge(subsystem, name, help string) SimpleGauge
	// NewSimpleGaugeWithOpts creates a new SimpleGauge.
	NewSimpleGaugeWithOpts(subsystem, name, help string, opts Options) SimpleGauge

	// NewHistogram creates a Histogram with default options for telemetry purpose.
	NewHistogram(subsystem, name string, tags []string, help string, buckets []float64) Histogram
	// NewHistogramWithOpts creates a Histogram with the given options for telemetry purpose.
	NewHistogramWithOpts(subsystem, name string, tags []string, help string, buckets []float64, opts Options) Histogram

	// NewSimpleHistogram creates a new SimpleHistogram with default options.
	NewSimpleHistogram(subsystem, name, help string, buckets []float64) SimpleHistogram
	// NewSimpleHistogramWithOpts creates a new SimpleHistogram.
	NewSimpleHistogramWithOpts(subsystem, name, help string, buckets []float64, opts Options) SimpleHistogram
}

Component is the component type.

func GetCompatComponent

func GetCompatComponent() Component

GetCompatComponent returns a component wrapping telemetry global variables TODO (components): Remove this when all telemetry is migrated to the component

type Counter

type Counter interface {
	// InitializeToZero creates the counter with the given tags and initializes it to 0.
	// This method is intended to be used when the counter value is important to
	// send even before any incrementing/addition is done on it.
	InitializeToZero(tagsValue ...string)
	// Inc increments the counter with the given tags value.
	Inc(tagsValue ...string)
	// Add adds the given value to the counter with the given tags value.
	Add(value float64, tagsValue ...string)
	// Delete deletes the value for the counter with the given tags value.
	Delete(tagsValue ...string)
	// IncWithTags increments the counter with the given tags.
	// Even if less convenient, this signature could be used in hot path
	// instead of Inc(...string) to avoid escaping the parameters on the heap.
	IncWithTags(tags map[string]string)
	// AddWithTags adds the given value to the counter with the given tags.
	// Even if less convenient, this signature could be used in hot path
	// instead of Add(float64, ...string) to avoid escaping the parameters on the heap.
	AddWithTags(value float64, tags map[string]string)
	// DeleteWithTags deletes the value for the counter with the given tags.
	// Even if less convenient, this signature could be used in hot path
	// instead of Delete(...string) to avoid escaping the parameters on the heap.
	DeleteWithTags(tags map[string]string)
	// WithValues returns SimpleCounter for this metric with the given tag values.
	WithValues(tagsValue ...string) SimpleCounter
	// WithTags returns SimpleCounter for this metric with the given tag values.
	WithTags(tags map[string]string) SimpleCounter
}

Counter tracks how many times something is happening.

type Gauge

type Gauge interface {
	// Set stores the value for the given tags.
	Set(value float64, tagsValue ...string)
	// Inc increments the Gauge value.
	Inc(tagsValue ...string)
	// Dec decrements the Gauge value.
	Dec(tagsValue ...string)
	// Add adds the value to the Gauge value.
	Add(value float64, tagsValue ...string)
	// Sub subtracts the value to the Gauge value.
	Sub(value float64, tagsValue ...string)
	// Delete deletes the value for the Gauge with the given tags.
	Delete(tagsValue ...string)
	// WithValues returns SimpleGauge for this metric with the given tag values.
	WithValues(tagsValue ...string) SimpleGauge
	// WithTags returns SimpleGauge for this metric with the given tag values.
	WithTags(tags map[string]string) SimpleGauge
}

Gauge tracks the value of one health metric of the Agent.

type Histogram

type Histogram interface {
	// Observe the value to the Histogram value.
	Observe(value float64, tagsValue ...string)
	// Delete deletes the value for the Histogram with the given tags.
	Delete(tagsValue ...string)
	// WithValues returns SimpleHistogram for this metric with the given tag values.
	WithValues(tagsValue ...string) SimpleHistogram
	// WithTags returns SimpleHistogram for this metric with the given tag values.
	WithTags(tags map[string]string) SimpleHistogram
}

Histogram tracks the value of one health metric of the Agent.

type HistogramValue

type HistogramValue struct {
	Count   uint64
	Sum     float64
	Buckets []Bucket
}

HistogramValue is a struct representing the internal histogram state

type Mock

type Mock interface {
	Component

	GetRegistry() *prometheus.Registry
	GetMeterProvider() *sdk.MeterProvider
}

Mock implements mock-specific methods.

type Options

type Options struct {
	// NoDoubleUnderscoreSep is set to true when you don't want to
	// separate the subsystem and the name with a double underscore separator.
	NoDoubleUnderscoreSep bool
}

Options for telemetry metrics. Creating an Options struct without specifying any of its fields should be the equivalent of using the DefaultOptions var.

func (*Options) NameWithSeparator

func (opts *Options) NameWithSeparator(subsystem, name string) string

NameWithSeparator returns name prefixed according to NoDoubleUnderscoreOption.

type SimpleCounter

type SimpleCounter interface {
	// Inc increments the counter.
	Inc()
	// Add increments the counter by given amount.
	Add(float64)
	// Get gets the current counter value
	Get() float64
}

SimpleCounter tracks how many times something is happening.

type SimpleGauge

type SimpleGauge interface {
	// Inc increments the gaguge.
	Inc()
	// Dec decrements the gauge.
	Dec()
	// Add increments the gauge by given amount.
	Add(float64)
	// Sub decrements the gauge by given amount.
	Sub(float64)
	// Set sets the value of the gauge.
	Set(float64)
	// Get gets the value of the gauge.
	Get() float64
}

SimpleGauge tracks how many times something is happening.

type SimpleHistogram

type SimpleHistogram interface {
	// Observe the value to the Histogram value.
	Observe(value float64)

	// Get gets the current histogram values
	Get() HistogramValue
}

SimpleHistogram tracks how many times something is happening.

Jump to

Keyboard shortcuts

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