Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/otelcol/internal/fakeconsumer/fake.go
4096 views
1
package fakeconsumer
2
3
import (
4
"context"
5
6
"github.com/grafana/agent/component/otelcol"
7
otelconsumer "go.opentelemetry.io/collector/consumer"
8
"go.opentelemetry.io/collector/pdata/plog"
9
"go.opentelemetry.io/collector/pdata/pmetric"
10
"go.opentelemetry.io/collector/pdata/ptrace"
11
)
12
13
// Consumer is a fake otelcol.Consumer implementation which invokes functions
14
// when methods are called. All struct member fields are optional. If a struct
15
// member field is not provided, implementations of methods will default to a
16
// no-op.
17
type Consumer struct {
18
CapabilitiesFunc func() otelconsumer.Capabilities
19
ConsumeTracesFunc func(context.Context, ptrace.Traces) error
20
ConsumeMetricsFunc func(context.Context, pmetric.Metrics) error
21
ConsumeLogsFunc func(context.Context, plog.Logs) error
22
}
23
24
var _ otelcol.Consumer = (*Consumer)(nil)
25
26
// Capabilities implements otelcol.Consumer. If the CapabilitiesFunc is not
27
// provided, MutatesData is reported as true.
28
func (c *Consumer) Capabilities() otelconsumer.Capabilities {
29
if c.CapabilitiesFunc != nil {
30
return c.CapabilitiesFunc()
31
}
32
33
// We don't know what the fake implementation will do, so return true just
34
// in case it mutates data.
35
return otelconsumer.Capabilities{MutatesData: true}
36
}
37
38
// ConsumeTraces implements otelcol.ConsumeTraces.
39
func (c *Consumer) ConsumeTraces(ctx context.Context, td ptrace.Traces) error {
40
if c.ConsumeTracesFunc != nil {
41
return c.ConsumeTracesFunc(ctx, td)
42
}
43
return nil
44
}
45
46
// ConsumeMetrics implements otelcol.ConsumeMetrics.
47
func (c *Consumer) ConsumeMetrics(ctx context.Context, md pmetric.Metrics) error {
48
if c.ConsumeMetricsFunc != nil {
49
return c.ConsumeMetricsFunc(ctx, md)
50
}
51
return nil
52
}
53
54
// ConsumeLogs implements otelcol.ConsumeLogs.
55
func (c *Consumer) ConsumeLogs(ctx context.Context, md plog.Logs) error {
56
if c.ConsumeLogsFunc != nil {
57
return c.ConsumeLogsFunc(ctx, md)
58
}
59
return nil
60
}
61
62