Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
aos
GitHub Repository: aos/grafana-agent
Path: blob/main/component/otelcol/exporter/logging/logging.go
4096 views
1
// Package logging provides an otelcol.exporter.logging component.
2
package logging
3
4
import (
5
"github.com/grafana/agent/component"
6
"github.com/grafana/agent/component/otelcol"
7
"github.com/grafana/agent/component/otelcol/exporter"
8
"github.com/grafana/agent/pkg/river"
9
otelcomponent "go.opentelemetry.io/collector/component"
10
otelconfig "go.opentelemetry.io/collector/config"
11
"go.opentelemetry.io/collector/config/configtelemetry"
12
loggingexporter "go.opentelemetry.io/collector/exporter/loggingexporter"
13
)
14
15
func init() {
16
component.Register(component.Registration{
17
Name: "otelcol.exporter.logging",
18
Args: Arguments{},
19
Exports: otelcol.ConsumerExports{},
20
21
Build: func(opts component.Options, args component.Arguments) (component.Component, error) {
22
fact := loggingexporter.NewFactory()
23
return exporter.New(opts, fact, args.(Arguments))
24
},
25
})
26
}
27
28
// Arguments configures the otelcol.exporter.logging component.
29
type Arguments struct {
30
Verbosity configtelemetry.Level `river:"verbosity,attr,optional"`
31
SamplingInitial int `river:"sampling_initial,attr,optional"`
32
SamplingThereafter int `river:"sampling_thereafter,attr,optional"`
33
}
34
35
var (
36
_ river.Unmarshaler = (*Arguments)(nil)
37
_ exporter.Arguments = Arguments{}
38
)
39
40
// DefaultArguments holds default values for Arguments.
41
var DefaultArguments = Arguments{
42
Verbosity: configtelemetry.LevelNormal,
43
SamplingInitial: 2,
44
SamplingThereafter: 500,
45
}
46
47
// UnmarshalRiver implements river.Unmarshaler.
48
func (args *Arguments) UnmarshalRiver(f func(interface{}) error) error {
49
*args = DefaultArguments
50
type arguments Arguments
51
return f((*arguments)(args))
52
}
53
54
// Convert implements exporter.Arguments.
55
func (args Arguments) Convert() (otelconfig.Exporter, error) {
56
return &loggingexporter.Config{
57
ExporterSettings: otelconfig.NewExporterSettings(otelconfig.NewComponentID("logging")),
58
Verbosity: args.Verbosity,
59
SamplingInitial: args.SamplingInitial,
60
SamplingThereafter: args.SamplingInitial,
61
}, nil
62
}
63
64
// Extensions implements exporter.Arguments.
65
func (args Arguments) Extensions() map[otelconfig.ComponentID]otelcomponent.Extension {
66
return nil
67
}
68
69
// Exporters implements exporter.Arguments.
70
func (args Arguments) Exporters() map[otelconfig.DataType]map[otelconfig.ComponentID]otelcomponent.Exporter {
71
return nil
72
}
73
74