Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/otelcol/receiver/opencensus/opencensus.go
4096 views
1
// Package opencensus provides an otelcol.receiver.opencensus component.
2
package opencensus
3
4
import (
5
"github.com/alecthomas/units"
6
"github.com/grafana/agent/component"
7
"github.com/grafana/agent/component/otelcol"
8
"github.com/grafana/agent/component/otelcol/receiver"
9
"github.com/grafana/agent/pkg/river"
10
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/opencensusreceiver"
11
otelcomponent "go.opentelemetry.io/collector/component"
12
otelconfig "go.opentelemetry.io/collector/config"
13
)
14
15
func init() {
16
component.Register(component.Registration{
17
Name: "otelcol.receiver.opencensus",
18
Args: Arguments{},
19
20
Build: func(opts component.Options, args component.Arguments) (component.Component, error) {
21
fact := opencensusreceiver.NewFactory()
22
return receiver.New(opts, fact, args.(Arguments))
23
},
24
})
25
}
26
27
// Arguments configures the otelcol.receiver.opencensus component.
28
type Arguments struct {
29
CorsAllowedOrigins []string `river:"cors_allowed_origins,attr,optional"`
30
31
GRPC otelcol.GRPCServerArguments `river:",squash"`
32
33
// Output configures where to send received data. Required.
34
Output *otelcol.ConsumerArguments `river:"output,block"`
35
}
36
37
var (
38
_ receiver.Arguments = Arguments{}
39
_ river.Unmarshaler = (*Arguments)(nil)
40
)
41
42
// Default server settings.
43
var DefaultArguments = Arguments{
44
GRPC: otelcol.GRPCServerArguments{
45
Endpoint: "0.0.0.0:4317",
46
Transport: "tcp",
47
48
ReadBufferSize: 512 * units.Kibibyte,
49
// We almost write 0 bytes, so no need to tune WriteBufferSize.
50
},
51
}
52
53
// UnmarshalRiver implements river.Unmarshaler and supplies defaults.
54
func (args *Arguments) UnmarshalRiver(f func(interface{}) error) error {
55
*args = DefaultArguments
56
57
type arguments Arguments
58
return f((*arguments)(args))
59
}
60
61
// Convert implements receiver.Arguments.
62
func (args Arguments) Convert() (otelconfig.Receiver, error) {
63
return &opencensusreceiver.Config{
64
ReceiverSettings: otelconfig.NewReceiverSettings(otelconfig.NewComponentID("opencensus")),
65
66
CorsOrigins: args.CorsAllowedOrigins,
67
GRPCServerSettings: *args.GRPC.Convert(),
68
}, nil
69
}
70
71
// Extensions implements receiver.Arguments.
72
func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {
73
return nil
74
}
75
76
// Exporters implements receiver.Arguments.
77
func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {
78
return nil
79
}
80
81
// NextConsumers implements receiver.Arguments.
82
func (args Arguments) NextConsumers() *otelcol.ConsumerArguments {
83
return args.Output
84
}
85
86