opentelemetry-collector icon indicating copy to clipboard operation
opentelemetry-collector copied to clipboard

Collector with custom plugins compilation broken

Open lgtti opened this issue 4 months ago • 3 comments

Hi,

we are using our collector with contrib plugins using ocb.

The config file is the following:

dist:
  name: edge
  description: open telemetry collector with additional filelog receiver
  output_path: .
  otelcol_version: 0.99.0

receivers:
  - gomod:
      github.com/open-telemetry/opentelemetry-collector-contrib/receiver/filelogreceiver v0.99.0
  - gomod:
      github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver v0.99.0
  - gomod:
      go.opentelemetry.io/collector/receiver/otlpreceiver v0.99.0
processors:
  - gomod:
      go.opentelemetry.io/collector/processor/batchprocessor v0.99.0
  - gomod:
      github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourceprocessor v0.99.0
  - gomod:
      go.opentelemetry.io/collector/processor/memorylimiterprocessor v0.99.0
exporters:
  - gomod:
      go.opentelemetry.io/collector/exporter/debugexporter v0.99.0
  - gomod:
      go.opentelemetry.io/collector/exporter/otlphttpexporter v0.99.0
  - gomod:
      github.com/open-telemetry/opentelemetry-collector-contrib/exporter/lokiexporter v0.99.0


These are the steps:

curl --proto '=https' --tlsv1.2 -fL -o src/ocb \
    https://github.com/open-telemetry/opentelemetry-collector/releases/download/cmd%2Fbuilder%2Fv0.99.0/ocb_0.99.0_linux_amd64

chmod +x src/ocb

GOFLAGS=-buildvcs=false ./ocb --config builder_config.yaml

We have successfully compiled it at 2024-07-30 in the morning and we have tried a new compilation yesterday (2024-10-17) with this error:

+ GOFLAGS=-buildvcs=false ./ocb --config builder_config.yaml

2024-10-17T14:46:22.551Z	INFO	internal/command.go:125	OpenTelemetry Collector Builder	{"version": "0.99.0", "date": "2024-04-22T20:31:41Z"}

2024-10-17T14:46:22.552Z	INFO	internal/command.go:161	Using config file	{"path": "builder_config.yaml"}

2024-10-17T14:46:22.552Z	INFO	builder/config.go:118	Using go	{"go-executable": "/usr/local/go/bin/go"}

2024-10-17T14:46:22.553Z	INFO	builder/main.go:101	Sources created	{"path": "."}

2024-10-17T14:46:39.085Z	INFO	builder/main.go:197	Getting go modules

2024-10-17T14:46:42.544Z	INFO	builder/main.go:112	Compiling

Error: failed to compile the OpenTelemetry Collector distribution: go subcommand failed with args '[build -trimpath -o edge -ldflags=-s -w]': exit status 1, error message: # go.opentelemetry.io/otel/sdk/metric

/go/pkg/mod/go.opentelemetry.io/otel/sdk/[email protected]/meter.go:65:22: cannot use (*meter)(nil) (value of type *meter) as "go.opentelemetry.io/otel/metric".Meter value in variable declaration: *meter does not implement "go.opentelemetry.io/otel/metric".Meter (missing method Float64Gauge)

/go/pkg/mod/go.opentelemetry.io/otel/sdk/[email protected]/provider.go:90:9: cannot use mp.meters.Lookup(s, func() *meter {…}) (value of type *meter) as "go.opentelemetry.io/otel/metric".Meter value in return statement: *meter does not implement "go.opentelemetry.io/otel/metric".Meter (missing method Float64Gauge)

How is possible? The plugins, the ocb and base otel collector versions are the same but the compilation fails. This is a huge stability problems if the build version is not reproducible.

Is there a workaround or a bufix for this problem?

lgtti avatar Oct 18 '24 10:10 lgtti