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) } }