73 lines
2.3 KiB
Go
73 lines
2.3 KiB
Go
// Code generated by mdatagen. DO NOT EDIT.
|
|
|
|
package metadata
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"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/processorhelper")
|
|
}
|
|
|
|
func Tracer(settings component.TelemetrySettings) trace.Tracer {
|
|
return settings.TracerProvider.Tracer("go.opentelemetry.io/collector/processor/processorhelper")
|
|
}
|
|
|
|
// TelemetryBuilder provides an interface for components to report telemetry
|
|
// as defined in metadata and user config.
|
|
type TelemetryBuilder struct {
|
|
meter metric.Meter
|
|
ProcessorIncomingItems metric.Int64Counter
|
|
ProcessorOutgoingItems metric.Int64Counter
|
|
}
|
|
|
|
// TelemetryBuilderOption applies changes to default builder.
|
|
type TelemetryBuilderOption interface {
|
|
apply(*TelemetryBuilder)
|
|
}
|
|
|
|
type telemetryBuilderOptionFunc func(mb *TelemetryBuilder)
|
|
|
|
func (tbof telemetryBuilderOptionFunc) apply(mb *TelemetryBuilder) {
|
|
tbof(mb)
|
|
}
|
|
|
|
// 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{}
|
|
for _, op := range options {
|
|
op.apply(&builder)
|
|
}
|
|
builder.meter = Meter(settings)
|
|
var err, errs error
|
|
builder.ProcessorIncomingItems, err = getLeveledMeter(builder.meter, configtelemetry.LevelBasic, settings.MetricsLevel).Int64Counter(
|
|
"otelcol_processor_incoming_items",
|
|
metric.WithDescription("Number of items passed to the processor. [alpha]"),
|
|
metric.WithUnit("{items}"),
|
|
)
|
|
errs = errors.Join(errs, err)
|
|
builder.ProcessorOutgoingItems, err = getLeveledMeter(builder.meter, configtelemetry.LevelBasic, settings.MetricsLevel).Int64Counter(
|
|
"otelcol_processor_outgoing_items",
|
|
metric.WithDescription("Number of items emitted from the processor. [alpha]"),
|
|
metric.WithUnit("{items}"),
|
|
)
|
|
errs = errors.Join(errs, err)
|
|
return &builder, errs
|
|
}
|
|
|
|
func getLeveledMeter(meter metric.Meter, cfgLevel, srvLevel configtelemetry.Level) metric.Meter {
|
|
if cfgLevel <= srvLevel {
|
|
return meter
|
|
}
|
|
return noop.Meter{}
|
|
}
|