Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/otelcol/receiver/zipkin/zipkin.go
4096 views
1
// Package zipkin provides an otelcol.receiver.zipkin component.
2
package zipkin
3
4
import (
5
"github.com/grafana/agent/component"
6
"github.com/grafana/agent/component/otelcol"
7
"github.com/grafana/agent/component/otelcol/receiver"
8
"github.com/grafana/agent/pkg/river"
9
"github.com/open-telemetry/opentelemetry-collector-contrib/receiver/zipkinreceiver"
10
otelcomponent "go.opentelemetry.io/collector/component"
11
otelconfig "go.opentelemetry.io/collector/config"
12
)
13
14
func init() {
15
component.Register(component.Registration{
16
Name: "otelcol.receiver.zipkin",
17
Args: Arguments{},
18
19
Build: func(opts component.Options, args component.Arguments) (component.Component, error) {
20
fact := zipkinreceiver.NewFactory()
21
return receiver.New(opts, fact, args.(Arguments))
22
},
23
})
24
}
25
26
// Arguments configures the otelcol.receiver.zipkin component.
27
type Arguments struct {
28
ParseStringTags bool `river:"parse_string_tags,attr,optional"`
29
30
HTTPServer otelcol.HTTPServerArguments `river:",squash"`
31
32
// Output configures where to send received data. Required.
33
Output *otelcol.ConsumerArguments `river:"output,block"`
34
}
35
36
var (
37
_ receiver.Arguments = Arguments{}
38
_ river.Unmarshaler = (*Arguments)(nil)
39
)
40
41
// DefaultArguments holds default settings for otelcol.receiver.zipkin.
42
var DefaultArguments = Arguments{
43
HTTPServer: otelcol.HTTPServerArguments{
44
Endpoint: "0.0.0.0:9411",
45
},
46
}
47
48
// UnmarshalRiver applies defaults to args before unmarshaling.
49
func (args *Arguments) UnmarshalRiver(f func(interface{}) error) error {
50
*args = DefaultArguments
51
52
type arguments Arguments
53
return f((*arguments)(args))
54
}
55
56
// Convert implements receiver.Arguments.
57
func (args Arguments) Convert() (otelconfig.Receiver, error) {
58
return &zipkinreceiver.Config{
59
ReceiverSettings: otelconfig.NewReceiverSettings(otelconfig.NewComponentID("zipkin")),
60
61
ParseStringTags: args.ParseStringTags,
62
HTTPServerSettings: *args.HTTPServer.Convert(),
63
}, nil
64
}
65
66
// Extensions implements receiver.Arguments.
67
func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {
68
return nil
69
}
70
71
// Exporters implements receiver.Arguments.
72
func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {
73
return nil
74
}
75
76
// NextConsumers implements receiver.Arguments.
77
func (args Arguments) NextConsumers() *otelcol.ConsumerArguments {
78
return args.Output
79
}
80
81