telemetry

package module
v0.52.1 Latest Latest
Warning

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

Go to latest
Published: Apr 3, 2024 License: Apache-2.0 Imports: 12 Imported by: 1

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.

Functions

func MockModule

func MockModule() fxutil.Module

MockModule defines the fx options for the mock component.

func Module

func Module() fxutil.Module

Module defines the fx options for this component.

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

	// GatherDefault exposes metrics from the default telemetry registry (see options.DefaultMetric)
	GatherDefault() ([]*dto.MetricFamily, error)
}

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

	// DefaultMetric exports metric by default via built-in agent_telemetry core check.
	DefaultMetric 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