Path: blob/main/component/otelcol/internal/fakeconsumer/fake.go
4096 views
package fakeconsumer12import (3"context"45"github.com/grafana/agent/component/otelcol"6otelconsumer "go.opentelemetry.io/collector/consumer"7"go.opentelemetry.io/collector/pdata/plog"8"go.opentelemetry.io/collector/pdata/pmetric"9"go.opentelemetry.io/collector/pdata/ptrace"10)1112// Consumer is a fake otelcol.Consumer implementation which invokes functions13// when methods are called. All struct member fields are optional. If a struct14// member field is not provided, implementations of methods will default to a15// no-op.16type Consumer struct {17CapabilitiesFunc func() otelconsumer.Capabilities18ConsumeTracesFunc func(context.Context, ptrace.Traces) error19ConsumeMetricsFunc func(context.Context, pmetric.Metrics) error20ConsumeLogsFunc func(context.Context, plog.Logs) error21}2223var _ otelcol.Consumer = (*Consumer)(nil)2425// Capabilities implements otelcol.Consumer. If the CapabilitiesFunc is not26// provided, MutatesData is reported as true.27func (c *Consumer) Capabilities() otelconsumer.Capabilities {28if c.CapabilitiesFunc != nil {29return c.CapabilitiesFunc()30}3132// We don't know what the fake implementation will do, so return true just33// in case it mutates data.34return otelconsumer.Capabilities{MutatesData: true}35}3637// ConsumeTraces implements otelcol.ConsumeTraces.38func (c *Consumer) ConsumeTraces(ctx context.Context, td ptrace.Traces) error {39if c.ConsumeTracesFunc != nil {40return c.ConsumeTracesFunc(ctx, td)41}42return nil43}4445// ConsumeMetrics implements otelcol.ConsumeMetrics.46func (c *Consumer) ConsumeMetrics(ctx context.Context, md pmetric.Metrics) error {47if c.ConsumeMetricsFunc != nil {48return c.ConsumeMetricsFunc(ctx, md)49}50return nil51}5253// ConsumeLogs implements otelcol.ConsumeLogs.54func (c *Consumer) ConsumeLogs(ctx context.Context, md plog.Logs) error {55if c.ConsumeLogsFunc != nil {56return c.ConsumeLogsFunc(ctx, md)57}58return nil59}606162