summary refs log tree commit diff
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go80
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)
+	}
+}