diff options
Diffstat (limited to 'main.go')
-rw-r--r-- | main.go | 80 |
1 files changed, 80 insertions, 0 deletions
diff --git a/main.go b/main.go new file mode 100644 index 0000000..a3c82d2 --- /dev/null +++ b/main.go @@ -0,0 +1,80 @@ +package main + +import ( + "github.com/open-telemetry/opentelemetry-collector-contrib/exporter/prometheusremotewriteexporter" + "github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension" + "github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/chronyreceiver" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver" + "github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver" + "go.opentelemetry.io/collector/component" + "go.opentelemetry.io/collector/exporter" + "go.opentelemetry.io/collector/exporter/otlpexporter" + "go.opentelemetry.io/collector/extension" + "go.opentelemetry.io/collector/extension/zpagesextension" + "go.opentelemetry.io/collector/otelcol" + "go.opentelemetry.io/collector/processor" + "go.opentelemetry.io/collector/processor/batchprocessor" + "go.opentelemetry.io/collector/processor/memorylimiterprocessor" + "go.opentelemetry.io/collector/receiver" + "go.opentelemetry.io/collector/receiver/otlpreceiver" +) + +var version = "latest" + +func main() { + var err error + factories := otelcol.Factories{} + receivers := []receiver.Factory{ + chronyreceiver.NewFactory(), + hostmetricsreceiver.NewFactory(), + otlpreceiver.NewFactory(), + prometheusreceiver.NewFactory(), + } + factories.Receivers, err = receiver.MakeFactoryMap(receivers...) + if err != nil { + panic(err) + } + + exporters := []exporter.Factory{ + otlpexporter.NewFactory(), + prometheusremotewriteexporter.NewFactory(), + } + factories.Exporters, err = exporter.MakeFactoryMap(exporters...) + if err != nil { + panic(err) + } + + processors := []processor.Factory{ + batchprocessor.NewFactory(), + memorylimiterprocessor.NewFactory(), + resourcedetectionprocessor.NewFactory(), + } + factories.Processors, err = processor.MakeFactoryMap(processors...) + if err != nil { + panic(err) + } + + extensions := []extension.Factory{ + healthcheckextension.NewFactory(), + zpagesextension.NewFactory(), + } + factories.Extensions, err = extension.MakeFactoryMap(extensions...) + if err != nil { + panic(err) + } + + info := component.BuildInfo{ + Command: "otelcol-ts", + Description: "OpenTelemetry Collector (ts)", + Version: version, + } + + cmd := otelcol.NewCommand(otelcol.CollectorSettings{ + BuildInfo: info, + Factories: factories, + }) + if err := cmd.Execute(); err != nil { + panic(err) + } +} |