-
Notifications
You must be signed in to change notification settings - Fork 414
Closed
Description
Hey everyone.
we have the need to build an otel-collector with the following build-config.yaml
# All components:
# https://github.com/open-telemetry/opentelemetry-collector-releases/blob/main/distributions/otelcol-contrib/manifest.yaml
dist:
name: otel-collector
description: OTel Collector
extensions:
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/extension/basicauthextension v0.131.0
receivers:
- gomod: go.opentelemetry.io/collector/receiver/otlpreceiver v0.131.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver v0.131.0
processors:
- gomod: go.opentelemetry.io/collector/processor/batchprocessor v0.131.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor v0.131.0
exporters:
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/fileexporter v0.131.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/syslogexporter v0.131.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter v0.131.0
- gomod: github.com/open-telemetry/opentelemetry-collector-contrib/exporter/rabbitmqexporter v0.131.0This is our BUILD file
load("@rules_go//go:def.bzl", "go_binary", "go_library")
genrule(
name = "get_go_modules",
srcs = [
"@otel_collector_custom_builder//file",
":builder-config.yaml",
],
outs = [
"components.go",
"go.mod",
"main.go",
"main_others.go",
# "go.sum", # would be created with the ocbbuilder when omitting --skip-get-modules but this does not work within the sandbox
# "main_windows.go", # most likely only needed for Windows
],
cmd = """
$(location @otel_collector_custom_builder//file) \
--skip-get-modules \
--skip-compilation \
--output-path $(RULEDIR) \
--config $(location builder-config.yaml)
""",
visibility = ["//visibility:public"],
)
go_binary(
name = "otelcol",
embed = [":otel-collector_lib"],
visibility = ["//visibility:public"],
)
go_library(
name = "otel-collector_lib",
srcs = [
"components.go",
"main.go",
"main_others.go",
],
importpath = "go.opentelemetry.io/collector/cmd/builder/non-free/packages/otel-collector",
visibility = ["//visibility:private"],
deps = [
"@com_github_open_telemetry_opentelemetry_collector_contrib_exporter_clickhouseexporter//:clickhouseexporter",
"@com_github_open_telemetry_opentelemetry_collector_contrib_exporter_fileexporter//:fileexporter",
"@com_github_open_telemetry_opentelemetry_collector_contrib_exporter_syslogexporter//:syslogexporter",
"@com_github_open_telemetry_opentelemetry_collector_contrib_extension_basicauthextension//:basicauthextension",
"@com_github_open_telemetry_opentelemetry_collector_contrib_processor_transformprocessor//:transformprocessor",
"@com_github_open_telemetry_opentelemetry_collector_contrib_receiver_prometheusreceiver//:prometheusreceiver",
"@io_opentelemetry_go_collector_component//:component",
"@io_opentelemetry_go_collector_confmap//:confmap",
"@io_opentelemetry_go_collector_confmap_provider_envprovider//:envprovider",
"@io_opentelemetry_go_collector_confmap_provider_fileprovider//:fileprovider",
"@io_opentelemetry_go_collector_confmap_provider_httpprovider//:httpprovider",
"@io_opentelemetry_go_collector_confmap_provider_httpsprovider//:httpsprovider",
"@io_opentelemetry_go_collector_confmap_provider_yamlprovider//:yamlprovider",
"@io_opentelemetry_go_collector_connector//:connector",
"@io_opentelemetry_go_collector_exporter//:exporter",
"@io_opentelemetry_go_collector_extension//:extension",
"@io_opentelemetry_go_collector_otelcol//:otelcol",
"@io_opentelemetry_go_collector_processor//:processor",
"@io_opentelemetry_go_collector_processor_batchprocessor//:batchprocessor",
"@io_opentelemetry_go_collector_receiver//:receiver",
"@io_opentelemetry_go_collector_receiver_otlpreceiver//:otlpreceiver",
],
)
The rest of the setup is pretty much public on https://github.com/Checkmk/checkmk/tree/master
Like: https://github.com/Checkmk/checkmk/blob/master/bazel/module/gazelle/go.MODULE.bazel
Trying to get this to work is like playing whack a mole. Adding another exporter or other dependency is nearly impossible without having absolute knowledge of go, bazel and gazelle, which I don't.
I would absolutely appreciate if someone could try helping me get this to work or provide some pointers.
Metadata
Metadata
Assignees
Labels
No labels