opentelemetry-collector/processor/batchprocessor/internal/metadata/generated_telemetry.go

114 lines
4.8 KiB
Go

// Code generated by mdatagen. DO NOT EDIT.
package metadata
import (
"context"
"errors"
"go.opentelemetry.io/otel/attribute"
"go.opentelemetry.io/otel/metric"
"go.opentelemetry.io/otel/metric/noop"
"go.opentelemetry.io/otel/trace"
"go.opentelemetry.io/collector/component"
"go.opentelemetry.io/collector/config/configtelemetry"
)
func Meter(settings component.TelemetrySettings) metric.Meter {
return settings.MeterProvider.Meter("go.opentelemetry.io/collector/processor/batchprocessor")
}
func Tracer(settings component.TelemetrySettings) trace.Tracer {
return settings.TracerProvider.Tracer("go.opentelemetry.io/collector/processor/batchprocessor")
}
// TelemetryBuilder provides an interface for components to report telemetry
// as defined in metadata and user config.
type TelemetryBuilder struct {
meter metric.Meter
ProcessorBatchBatchSendSize metric.Int64Histogram
ProcessorBatchBatchSendSizeBytes metric.Int64Histogram
ProcessorBatchBatchSizeTriggerSend metric.Int64Counter
ProcessorBatchMetadataCardinality metric.Int64ObservableUpDownCounter
observeProcessorBatchMetadataCardinality func() int64
ProcessorBatchTimeoutTriggerSend metric.Int64Counter
level configtelemetry.Level
attributeSet attribute.Set
}
// telemetryBuilderOption applies changes to default builder.
type telemetryBuilderOption func(*TelemetryBuilder)
// WithLevel sets the current telemetry level for the component.
func WithLevel(lvl configtelemetry.Level) telemetryBuilderOption {
return func(builder *TelemetryBuilder) {
builder.level = lvl
}
}
// WithAttributeSet applies a set of attributes for asynchronous instruments.
func WithAttributeSet(set attribute.Set) telemetryBuilderOption {
return func(builder *TelemetryBuilder) {
builder.attributeSet = set
}
}
// WithProcessorBatchMetadataCardinalityCallback sets callback for observable ProcessorBatchMetadataCardinality metric.
func WithProcessorBatchMetadataCardinalityCallback(cb func() int64) telemetryBuilderOption {
return func(builder *TelemetryBuilder) {
builder.observeProcessorBatchMetadataCardinality = cb
}
}
// NewTelemetryBuilder provides a struct with methods to update all internal telemetry
// for a component
func NewTelemetryBuilder(settings component.TelemetrySettings, options ...telemetryBuilderOption) (*TelemetryBuilder, error) {
builder := TelemetryBuilder{level: configtelemetry.LevelBasic}
for _, op := range options {
op(&builder)
}
var err, errs error
if builder.level >= configtelemetry.LevelNormal {
builder.meter = Meter(settings)
} else {
builder.meter = noop.Meter{}
}
builder.ProcessorBatchBatchSendSize, err = builder.meter.Int64Histogram(
"processor_batch_batch_send_size",
metric.WithDescription("Number of units in the batch"),
metric.WithUnit("1"), metric.WithExplicitBucketBoundaries([]float64{10, 25, 50, 75, 100, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 20000, 30000, 50000, 100000}...),
)
errs = errors.Join(errs, err)
builder.ProcessorBatchBatchSendSizeBytes, err = builder.meter.Int64Histogram(
"processor_batch_batch_send_size_bytes",
metric.WithDescription("Number of bytes in batch that was sent"),
metric.WithUnit("By"), metric.WithExplicitBucketBoundaries([]float64{10, 25, 50, 75, 100, 250, 500, 750, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 8000, 9000, 10000, 20000, 30000, 50000, 100000, 200000, 300000, 400000, 500000, 600000, 700000, 800000, 900000, 1e+06, 2e+06, 3e+06, 4e+06, 5e+06, 6e+06, 7e+06, 8e+06, 9e+06}...),
)
errs = errors.Join(errs, err)
builder.ProcessorBatchBatchSizeTriggerSend, err = builder.meter.Int64Counter(
"processor_batch_batch_size_trigger_send",
metric.WithDescription("Number of times the batch was sent due to a size trigger"),
metric.WithUnit("1"),
)
errs = errors.Join(errs, err)
builder.ProcessorBatchMetadataCardinality, err = builder.meter.Int64ObservableUpDownCounter(
"processor_batch_metadata_cardinality",
metric.WithDescription("Number of distinct metadata value combinations being processed"),
metric.WithUnit("1"),
)
errs = errors.Join(errs, err)
_, err = builder.meter.RegisterCallback(func(_ context.Context, o metric.Observer) error {
o.ObserveInt64(builder.ProcessorBatchMetadataCardinality, builder.observeProcessorBatchMetadataCardinality(), metric.WithAttributeSet(builder.attributeSet))
return nil
}, builder.ProcessorBatchMetadataCardinality)
errs = errors.Join(errs, err)
builder.ProcessorBatchTimeoutTriggerSend, err = builder.meter.Int64Counter(
"processor_batch_timeout_trigger_send",
metric.WithDescription("Number of times the batch was sent due to a timeout trigger"),
metric.WithUnit("1"),
)
errs = errors.Join(errs, err)
return &builder, errs
}