Documentation ¶
Overview ¶
Package telemetry implements a component for all agent telemetry.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var DefaultOptions = Options{ NoDoubleUnderscoreSep: false, }
DefaultOptions for telemetry metrics which don't need to specify any option.
Functions ¶
func MockModule ¶
MockModule defines the fx options for the mock component.
Types ¶
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 ¶
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 ¶
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.