Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/pkg/traces/noopreceiver/factory.go
4096 views
1
package noopreceiver
2
3
import (
4
"context"
5
6
"go.opentelemetry.io/collector/component"
7
"go.opentelemetry.io/collector/config"
8
"go.opentelemetry.io/collector/consumer"
9
)
10
11
const (
12
// TypeStr for noop receiver.
13
TypeStr = "noop"
14
)
15
16
// NewFactory creates noop receiver factory.
17
func NewFactory() component.ReceiverFactory {
18
return component.NewReceiverFactory(
19
TypeStr,
20
createDefaultConfig,
21
component.WithMetricsReceiver(createMetricsReceiver, component.StabilityLevelUndefined),
22
)
23
}
24
25
// Config defines configuration for noop receiver.
26
type Config struct {
27
config.Receiver `mapstructure:",squash"` // squash ensures fields are correctly decoded in embedded struct.
28
}
29
30
func createDefaultConfig() config.Receiver {
31
s := config.NewReceiverSettings(config.NewComponentIDWithName(TypeStr, TypeStr))
32
return &s
33
}
34
35
// noop receiver is used in the metrics pipeline so we need to
36
// implement a metrics receiver.
37
func createMetricsReceiver(
38
_ context.Context,
39
_ component.ReceiverCreateSettings,
40
_ config.Receiver,
41
_ consumer.Metrics,
42
) (component.MetricsReceiver, error) {
43
44
return newNoopReceiver(nil, nil, nil), nil
45
}
46
47