63 lines
1.8 KiB
Go
63 lines
1.8 KiB
Go
// Copyright The OpenTelemetry Authors
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
|
|
package consumertest // import "go.opentelemetry.io/collector/consumer/consumertest"
|
|
|
|
import (
|
|
"context"
|
|
|
|
"go.opentelemetry.io/collector/consumer"
|
|
"go.opentelemetry.io/collector/consumer/xconsumer"
|
|
"go.opentelemetry.io/collector/pdata/plog"
|
|
"go.opentelemetry.io/collector/pdata/pmetric"
|
|
"go.opentelemetry.io/collector/pdata/pprofile"
|
|
"go.opentelemetry.io/collector/pdata/ptrace"
|
|
)
|
|
|
|
// Consumer is a convenience interface that implements all consumer interfaces.
|
|
// It has a private function on it to forbid external users from implementing it
|
|
// and, as a result, to allow us to add extra functions without breaking
|
|
// compatibility.
|
|
type Consumer interface {
|
|
// Capabilities to implement the base consumer functionality.
|
|
Capabilities() consumer.Capabilities
|
|
|
|
// ConsumeTraces to implement the consumer.Traces.
|
|
ConsumeTraces(context.Context, ptrace.Traces) error
|
|
|
|
// ConsumeMetrics to implement the consumer.Metrics.
|
|
ConsumeMetrics(context.Context, pmetric.Metrics) error
|
|
|
|
// ConsumeLogs to implement the consumer.Logs.
|
|
ConsumeLogs(context.Context, plog.Logs) error
|
|
|
|
// ConsumeProfiles to implement the xconsumer.Profiles.
|
|
ConsumeProfiles(context.Context, pprofile.Profiles) error
|
|
|
|
unexported()
|
|
}
|
|
|
|
var (
|
|
_ consumer.Logs = Consumer(nil)
|
|
_ consumer.Metrics = Consumer(nil)
|
|
_ consumer.Traces = Consumer(nil)
|
|
_ xconsumer.Profiles = Consumer(nil)
|
|
)
|
|
|
|
type nonMutatingConsumer struct{}
|
|
|
|
// Capabilities returns the base consumer capabilities.
|
|
func (bc nonMutatingConsumer) Capabilities() consumer.Capabilities {
|
|
return consumer.Capabilities{MutatesData: false}
|
|
}
|
|
|
|
type baseConsumer struct {
|
|
nonMutatingConsumer
|
|
consumer.ConsumeTracesFunc
|
|
consumer.ConsumeMetricsFunc
|
|
consumer.ConsumeLogsFunc
|
|
xconsumer.ConsumeProfilesFunc
|
|
}
|
|
|
|
func (bc baseConsumer) unexported() {}
|