diff --git a/.changeset/bump-otel-collector-to-0149.md b/.changeset/bump-otel-collector-to-0149.md new file mode 100644 index 00000000..b78297e3 --- /dev/null +++ b/.changeset/bump-otel-collector-to-0149.md @@ -0,0 +1,8 @@ +--- +'@hyperdx/otel-collector': minor +--- + +feat: Bump OTel Collector from 0.147.0 to 0.149.0 + +Upgrade the OpenTelemetry Collector and all its components from v0.147.0 to +v0.149.0 (core providers from v1.53.0 to v1.55.0). diff --git a/.changeset/migrate-otel-collector-to-ocb.md b/.changeset/migrate-otel-collector-to-ocb.md new file mode 100644 index 00000000..b9f7c0b2 --- /dev/null +++ b/.changeset/migrate-otel-collector-to-ocb.md @@ -0,0 +1,12 @@ +--- +'@hyperdx/otel-collector': minor +--- + +feat: Migrate OTel Collector build to use OCB (OpenTelemetry Collector Builder) + +Replace the pre-built otel/opentelemetry-collector-contrib image with a custom +binary built via OCB. This enables adding custom receiver/processor components +in the future while including only the components HyperDX needs. The collector +version is now centralized in `.env` via `OTEL_COLLECTOR_VERSION` and +`OTEL_COLLECTOR_CORE_VERSION`, with `builder-config.yaml` using templatized +placeholders substituted at Docker build time. diff --git a/.env b/.env index 5fc82668..b52fe0f0 100644 --- a/.env +++ b/.env @@ -38,5 +38,11 @@ HDX_DEV_OTEL_HTTP_PORT=4318 HDX_DEV_OTEL_METRICS_PORT=8888 HDX_DEV_OTEL_JSON_HTTP_PORT=14318 +# Otel Collector version (used as Docker build arg for image tags and component versions) +# When bumping, look up the core version from the upstream manifest: +# https://github.com/open-telemetry/opentelemetry-collector-releases/blob/main/distributions/otelcol-contrib/manifest.yaml +OTEL_COLLECTOR_VERSION=0.149.0 +OTEL_COLLECTOR_CORE_VERSION=1.55.0 + # Otel/Clickhouse config HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE=default diff --git a/docker-compose.ci.yml b/docker-compose.ci.yml index 42a35111..525209c8 100644 --- a/docker-compose.ci.yml +++ b/docker-compose.ci.yml @@ -5,6 +5,9 @@ services: context: . dockerfile: docker/otel-collector/Dockerfile target: dev + args: + OTEL_COLLECTOR_VERSION: ${OTEL_COLLECTOR_VERSION} + OTEL_COLLECTOR_CORE_VERSION: ${OTEL_COLLECTOR_CORE_VERSION} environment: CLICKHOUSE_ENDPOINT: 'tcp://ch-server:9000?dial_timeout=10s' HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE: ${HYPERDX_OTEL_EXPORTER_CLICKHOUSE_DATABASE} diff --git a/docker-compose.dev.yml b/docker-compose.dev.yml index 35e640a0..6dfc36b4 100644 --- a/docker-compose.dev.yml +++ b/docker-compose.dev.yml @@ -26,6 +26,9 @@ services: context: . dockerfile: docker/otel-collector/Dockerfile target: dev + args: + OTEL_COLLECTOR_VERSION: ${OTEL_COLLECTOR_VERSION} + OTEL_COLLECTOR_CORE_VERSION: ${OTEL_COLLECTOR_CORE_VERSION} environment: CLICKHOUSE_ENDPOINT: 'tcp://ch-server:9000?dial_timeout=10s' CLICKHOUSE_PROMETHEUS_METRICS_ENDPOINT: 'ch-server:9363' @@ -63,6 +66,9 @@ services: context: . dockerfile: docker/otel-collector/Dockerfile target: dev + args: + OTEL_COLLECTOR_VERSION: ${OTEL_COLLECTOR_VERSION} + OTEL_COLLECTOR_CORE_VERSION: ${OTEL_COLLECTOR_CORE_VERSION} environment: CLICKHOUSE_ENDPOINT: 'tcp://ch-server:9000?dial_timeout=10s' CLICKHOUSE_PROMETHEUS_METRICS_ENDPOINT: 'ch-server:9363' diff --git a/docker/hyperdx/Dockerfile b/docker/hyperdx/Dockerfile index 0447dda7..7e8a53d8 100644 --- a/docker/hyperdx/Dockerfile +++ b/docker/hyperdx/Dockerfile @@ -9,15 +9,29 @@ ARG NODE_VERSION=22.22 ARG CLICKHOUSE_VERSION=26.1 -ARG OTEL_COLLECTOR_VERSION=0.147.0 -ARG OTEL_COLLECTOR_OPAMPSUPERVISOR_VERSION=0.147.0 +ARG OTEL_COLLECTOR_VERSION=0.149.0 +ARG OTEL_COLLECTOR_CORE_VERSION=1.55.0 # base ############################################################################################# # == Otel Collector Image == -FROM otel/opentelemetry-collector-contrib:${OTEL_COLLECTOR_VERSION} AS otel_collector_base -FROM otel/opentelemetry-collector-opampsupervisor:${OTEL_COLLECTOR_OPAMPSUPERVISOR_VERSION} AS otel_collector_opampsupervisor_base +FROM otel/opentelemetry-collector-opampsupervisor:${OTEL_COLLECTOR_VERSION} AS otel_collector_opampsupervisor_base FROM kukymbr/goose-docker@sha256:0cd025636df126e7f66472861ca4db3683bc649be46cd1f6ef1a316209058e23 AS goose +# Build the custom HyperDX collector binary using OCB (OpenTelemetry Collector Builder). +# This replaces the pre-built otel/opentelemetry-collector-contrib image so we can +# include custom receiver/processor components alongside the standard contrib ones. +# Note: The official OCB image may ship an older Go than the contrib modules require, +# so we copy the ocb binary into a golang base with a newer toolchain. +FROM otel/opentelemetry-collector-builder:${OTEL_COLLECTOR_VERSION} AS ocb-bin +FROM golang:1.26-alpine AS ocb-builder +ARG OTEL_COLLECTOR_VERSION +ARG OTEL_COLLECTOR_CORE_VERSION +COPY --from=ocb-bin /usr/local/bin/ocb /usr/local/bin/ocb +WORKDIR /build +COPY packages/otel-collector/builder-config.yaml . +RUN sed -i "s/__OTEL_COLLECTOR_VERSION__/${OTEL_COLLECTOR_VERSION}/g; s/__OTEL_COLLECTOR_CORE_VERSION__/${OTEL_COLLECTOR_CORE_VERSION}/g" builder-config.yaml && \ + CGO_ENABLED=0 ocb --config=builder-config.yaml + # Build the Go migration tool with full TLS support for ClickHouse FROM golang:1.26-alpine AS migrate-builder WORKDIR /build @@ -132,7 +146,7 @@ ARG USER_GID=10001 ENV CODE_VERSION=$CODE_VERSION ENV OTEL_RESOURCE_ATTRIBUTES="service.version=$CODE_VERSION" # Copy from otel collector bases -COPY --from=otel_collector_base --chmod=755 /otelcol-contrib /otelcontribcol +COPY --from=ocb-builder --chmod=755 /build/output/otelcol-hyperdx /otelcontribcol COPY --from=otel_collector_opampsupervisor_base --chmod=755 /usr/local/bin/opampsupervisor /usr/local/bin/opampsupervisor # Copy Node.js runtime from node base diff --git a/docker/otel-collector/Dockerfile b/docker/otel-collector/Dockerfile index b5ab2906..15bfc95d 100644 --- a/docker/otel-collector/Dockerfile +++ b/docker/otel-collector/Dockerfile @@ -1,12 +1,29 @@ ## base ############################################################################################# -FROM otel/opentelemetry-collector-contrib:0.147.0 AS col -FROM otel/opentelemetry-collector-opampsupervisor:0.147.0 AS supervisor +ARG OTEL_COLLECTOR_VERSION=0.149.0 +ARG OTEL_COLLECTOR_CORE_VERSION=1.55.0 + +FROM otel/opentelemetry-collector-opampsupervisor:${OTEL_COLLECTOR_VERSION} AS supervisor FROM hairyhenderson/gomplate:v4.3.3-alpine AS gomplate FROM kukymbr/goose-docker@sha256:0cd025636df126e7f66472861ca4db3683bc649be46cd1f6ef1a316209058e23 AS goose -# Build the Go migration tool with full TLS support for ClickHouse +# Build the custom HyperDX collector binary using OCB (OpenTelemetry Collector Builder). +# This replaces the pre-built otel/opentelemetry-collector-contrib image so we can +# include custom receiver/processor components alongside the standard contrib ones. # Note: Build context must be repo root (use: docker build -f docker/otel-collector/Dockerfile .) -FROM golang:1.25-alpine AS migrate-builder +# Note: The official OCB image may ship an older Go than the contrib modules require, +# so we copy the ocb binary into a golang base with a newer toolchain. +FROM otel/opentelemetry-collector-builder:${OTEL_COLLECTOR_VERSION} AS ocb-bin +FROM golang:1.26-alpine AS ocb-builder +ARG OTEL_COLLECTOR_VERSION +ARG OTEL_COLLECTOR_CORE_VERSION +COPY --from=ocb-bin /usr/local/bin/ocb /usr/local/bin/ocb +WORKDIR /build +COPY packages/otel-collector/builder-config.yaml . +RUN sed -i "s/__OTEL_COLLECTOR_VERSION__/${OTEL_COLLECTOR_VERSION}/g; s/__OTEL_COLLECTOR_CORE_VERSION__/${OTEL_COLLECTOR_CORE_VERSION}/g" builder-config.yaml && \ + CGO_ENABLED=0 ocb --config=builder-config.yaml + +# Build the Go migration tool with full TLS support for ClickHouse +FROM golang:1.26-alpine AS migrate-builder WORKDIR /build COPY packages/otel-collector/go.mod packages/otel-collector/go.sum ./ RUN go mod download @@ -38,7 +55,7 @@ COPY --from=migrate-builder /migrate /usr/local/bin/migrate USER ${USER_UID}:${USER_GID} COPY --from=supervisor --chmod=755 /usr/local/bin/opampsupervisor /opampsupervisor -COPY --from=col --chmod=755 /otelcol-contrib /otelcontribcol +COPY --from=ocb-builder --chmod=755 /build/output/otelcol-hyperdx /otelcontribcol # Copy entrypoint and log tail wrapper scripts COPY --chmod=755 docker/otel-collector/entrypoint.sh /entrypoint.sh diff --git a/packages/otel-collector/README.md b/packages/otel-collector/README.md new file mode 100644 index 00000000..e788d7fd --- /dev/null +++ b/packages/otel-collector/README.md @@ -0,0 +1,255 @@ +# HyperDX OTel Collector + +Custom-built OpenTelemetry Collector for HyperDX, compiled via +[OCB (OpenTelemetry Collector Builder)](https://github.com/open-telemetry/opentelemetry-collector/tree/main/cmd/builder). +This replaces the pre-built `otel/opentelemetry-collector-contrib` image with a +binary that includes only the components HyperDX needs, plus any custom +receivers/processors added in this package. + +## Architecture + +### Build process + +The collector binary is built during `docker build` via a multi-stage +Dockerfile: + +1. The `ocb` binary is copied from the official + `otel/opentelemetry-collector-builder:` image +2. It's placed into a `golang:-alpine` base (the official OCB image may + ship an older Go than the contrib modules require) +3. Version placeholders in `builder-config.yaml` are substituted via `sed` +4. `ocb` compiles the custom binary from the resolved manifest + +### Key files + +| File | Purpose | +| --------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| `builder-config.yaml` | OCB manifest — declares which components to include. Uses `__OTEL_COLLECTOR_VERSION__` and `__OTEL_COLLECTOR_CORE_VERSION__` placeholders substituted at build time. | +| `cmd/migrate/main.go` | Go-based ClickHouse migration tool (goose) with full TLS support | +| `go.mod` / `go.sum` | Go module for the migration tool | + +### Dockerfiles that build this collector + +| Dockerfile | Description | +| ---------------------------------- | -------------------------------------------------------------------- | +| `docker/otel-collector/Dockerfile` | Standalone collector image (dev + prod targets) | +| `docker/hyperdx/Dockerfile` | All-in-one image (includes collector, ClickHouse, MongoDB, API, App) | + +### Version configuration + +The collector version is controlled by two variables: + +- **`OTEL_COLLECTOR_VERSION`** — The contrib/core component version (e.g. + `0.149.0`) +- **`OTEL_COLLECTOR_CORE_VERSION`** — The core confmap provider version (e.g. + `1.55.0`) + +These are defined in the root `.env` file and passed as Docker build args. Both +Dockerfiles also have matching `ARG` defaults as fallbacks for standalone +builds. + +## Included components + +All components referenced in config files and the OpAMP controller: + +### Receivers + +| Component | Module | Used in | +| --------------- | ------- | ------------------------------------------------- | +| `nop` | core | OpAMP controller | +| `otlp` | core | standalone configs, OpAMP controller, smoke tests | +| `fluentforward` | contrib | standalone configs, OpAMP controller, smoke tests | +| `hostmetrics` | contrib | custom.config.yaml | +| `prometheus` | contrib | OpAMP controller, smoke tests | + +### Processors + +| Component | Module | Used in | +| ------------------- | ------- | ------------------------------------------------- | +| `batch` | core | config.yaml, standalone configs, OpAMP controller | +| `memory_limiter` | core | config.yaml, standalone configs, OpAMP controller | +| `resourcedetection` | contrib | config.yaml | +| `transform` | contrib | config.yaml, standalone configs, OpAMP controller | + +### Exporters + +| Component | Module | Used in | +| ------------ | ------- | ------------------------------------ | +| `clickhouse` | contrib | standalone configs, OpAMP controller | +| `debug` | core | OpAMP controller | +| `nop` | core | OpAMP controller | +| `otlp` | core | included for utility | +| `otlphttp` | core | custom.config.yaml | + +### Connectors + +| Component | Module | Used in | +| --------- | ------- | ------------------------------------ | +| `forward` | core | included for utility | +| `routing` | contrib | standalone configs, OpAMP controller | + +### Extensions + +| Component | Module | Used in | +| ----------------- | ------- | ---------------------------------------- | +| `bearertokenauth` | contrib | standalone-auth config, OpAMP controller | +| `health_check` | contrib | config.yaml, standalone-auth config | +| `opamp` | contrib | used by OpAMP supervisor | +| `pprof` | contrib | included for debugging/profiling | + +### Confmap Providers + +| Provider | Module | +| -------- | ------ | +| `env` | core | +| `file` | core | +| `http` | core | +| `https` | core | +| `yaml` | core | + +## Upgrading the OTel Collector version + +### Step 1: Look up the core version + +Check the upstream contrib manifest to find the core provider version that +corresponds to the new contrib version: + +https://github.com/open-telemetry/opentelemetry-collector-releases/blob/main/distributions/otelcol-contrib/manifest.yaml + +Look at the `providers:` section — the core version follows a different scheme +(e.g. contrib `0.149.0` corresponds to core `1.55.0`). + +### Step 2: Update these files + +**`.env`** (root) — primary source of truth: + +``` +OTEL_COLLECTOR_VERSION= +OTEL_COLLECTOR_CORE_VERSION= +``` + +**`docker/otel-collector/Dockerfile`** — ARG defaults: + +```dockerfile +ARG OTEL_COLLECTOR_VERSION= +ARG OTEL_COLLECTOR_CORE_VERSION= +``` + +**`docker/hyperdx/Dockerfile`** — ARG defaults: + +```dockerfile +ARG OTEL_COLLECTOR_VERSION= +ARG OTEL_COLLECTOR_CORE_VERSION= +``` + +**`smoke-tests/otel-collector/docker-compose.yaml`** — fallback defaults: + +```yaml +args: + OTEL_COLLECTOR_VERSION: ${OTEL_COLLECTOR_VERSION:-} + OTEL_COLLECTOR_CORE_VERSION: ${OTEL_COLLECTOR_CORE_VERSION:-} +``` + +### Files you do NOT need to change + +- `packages/otel-collector/builder-config.yaml` — uses placeholders, substituted + at build time +- `docker-compose.dev.yml` — reads from `.env` automatically +- `docker-compose.ci.yml` — reads from `.env` automatically + +### Step 3: Verify + +Build the image and check the version: + +```bash +docker build -f docker/otel-collector/Dockerfile --target dev -t hdx-otel-test . +docker run --rm --entrypoint /otelcontribcol hdx-otel-test --version +docker rmi hdx-otel-test +``` + +## Adding a custom component + +There are two approaches for including custom components, depending on whether +the component source lives in this monorepo or is published as a standalone Go +module. + +### Approach A: Local source (monorepo development) + +Best for active development — iterate on the component alongside the rest of the +codebase without needing to publish a Go module tag on every change. + +1. Create the Go module under this package (e.g. + `packages/otel-collector/receiver/myreceiver/`) with its own `go.mod`. + +2. Add an entry to `builder-config.yaml` under the appropriate section with a + `path:` directive pointing to the local module: + + ```yaml + receivers: + - gomod: + github.com/hyperdxio/hyperdx/packages/otel-collector/receiver/myreceiver + v0.0.0 + path: ./receiver/myreceiver + ``` + +3. **Update the Dockerfiles** to copy the component source into the OCB build + stage. Currently, only `builder-config.yaml` is copied. In both + `docker/otel-collector/Dockerfile` and `docker/hyperdx/Dockerfile`, expand + the `COPY` line in the `ocb-builder` stage: + + ```dockerfile + # Before (only copies the manifest): + COPY packages/otel-collector/builder-config.yaml . + + # After (also copies custom component source): + COPY packages/otel-collector/builder-config.yaml . + COPY packages/otel-collector/receiver/ ./receiver/ + ``` + + Or, to copy everything at once (simpler, but any change to files in + `packages/otel-collector/` will invalidate the Docker layer cache for the OCB + build stage): + + ```dockerfile + COPY packages/otel-collector/ . + ``` + +4. Add the component to the relevant OTel config files and/or the OpAMP + controller (`packages/api/src/opamp/controllers/opampController.ts`). + +### Approach B: Published Go module (remote reference) + +Best for stable, versioned components — especially useful for components shared +across repos or distributed to external users. No Dockerfile `COPY` changes +needed. + +1. Publish the component as a Go module with a tagged version (e.g. + `github.com/hyperdxio/my-otel-receiver v0.1.0`). For modules in a monorepo + subdirectory, the Git tag must include the module path prefix (e.g. + `packages/otel-collector/receiver/myreceiver/v0.1.0`). + +2. Add an entry to `builder-config.yaml` **without** a `path:` directive — OCB + will fetch it via the Go module proxy, just like contrib components: + + ```yaml + receivers: + - gomod: github.com/hyperdxio/my-otel-receiver v0.1.0 + ``` + + No Dockerfile changes needed — OCB downloads it during `go mod download`. + +3. Add the component to the relevant OTel config files and/or the OpAMP + controller. + +### Which approach to use? + +| | Local (`path:`) | Remote (`gomod:`) | +| --------------------------- | -------------------- | --------------------------------- | +| Dockerfile COPY needed | Yes | No | +| Works with unpublished code | Yes | No — must be tagged and published | +| Dev iteration speed | Fast — rebuild image | Must push, tag, wait for proxy | +| Monorepo friendly | Yes | Requires proper Go module tagging | +| Best for | Active development | Stable/shared components | + +For most HyperDX development, **Approach A (local source)** is recommended. Use +Approach B when the component is mature and independently versioned. diff --git a/packages/otel-collector/builder-config.yaml b/packages/otel-collector/builder-config.yaml new file mode 100644 index 00000000..1b2acdbf --- /dev/null +++ b/packages/otel-collector/builder-config.yaml @@ -0,0 +1,115 @@ +# OpenTelemetry Collector Builder (OCB) manifest for HyperDX. +# This replaces the pre-built otel/opentelemetry-collector-contrib image with a +# custom-built binary that includes only the components HyperDX needs, plus any +# custom receivers/processors we add in the future. +# +# Version placeholders are replaced at Docker build time via sed: +# __OTEL_COLLECTOR_VERSION__ -> contrib/core component version (e.g. 0.149.0) +# __OTEL_COLLECTOR_CORE_VERSION__ -> core confmap provider version (e.g. 1.55.0) +# Both values are defined in the root .env file. +# +# The upstream contrib manifest for reference: +# https://github.com/open-telemetry/opentelemetry-collector-releases/blob/main/distributions/otelcol-contrib/manifest.yaml + +dist: + name: otelcol-hyperdx + description: HyperDX OpenTelemetry Collector + version: __OTEL_COLLECTOR_VERSION__ + output_path: /build/output + build_tags: 'grpcnotrace' + +receivers: + # Core + - gomod: + go.opentelemetry.io/collector/receiver/nopreceiver + v__OTEL_COLLECTOR_VERSION__ + - gomod: + go.opentelemetry.io/collector/receiver/otlpreceiver + v__OTEL_COLLECTOR_VERSION__ + # Contrib + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/fluentforwardreceiver + v__OTEL_COLLECTOR_VERSION__ + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/hostmetricsreceiver + v__OTEL_COLLECTOR_VERSION__ + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/receiver/prometheusreceiver + v__OTEL_COLLECTOR_VERSION__ + +processors: + # Core + - gomod: + go.opentelemetry.io/collector/processor/batchprocessor + v__OTEL_COLLECTOR_VERSION__ + - gomod: + go.opentelemetry.io/collector/processor/memorylimiterprocessor + v__OTEL_COLLECTOR_VERSION__ + # Contrib + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/processor/resourcedetectionprocessor + v__OTEL_COLLECTOR_VERSION__ + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/processor/transformprocessor + v__OTEL_COLLECTOR_VERSION__ + +exporters: + # Core + - gomod: + go.opentelemetry.io/collector/exporter/debugexporter + v__OTEL_COLLECTOR_VERSION__ + - gomod: + go.opentelemetry.io/collector/exporter/nopexporter + v__OTEL_COLLECTOR_VERSION__ + - gomod: + go.opentelemetry.io/collector/exporter/otlpexporter + v__OTEL_COLLECTOR_VERSION__ + - gomod: + go.opentelemetry.io/collector/exporter/otlphttpexporter + v__OTEL_COLLECTOR_VERSION__ + # Contrib + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/exporter/clickhouseexporter + v__OTEL_COLLECTOR_VERSION__ + +connectors: + # Core + - gomod: + go.opentelemetry.io/collector/connector/forwardconnector + v__OTEL_COLLECTOR_VERSION__ + # Contrib + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/connector/routingconnector + v__OTEL_COLLECTOR_VERSION__ + +extensions: + # Contrib + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/extension/bearertokenauthextension + v__OTEL_COLLECTOR_VERSION__ + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/extension/healthcheckextension + v__OTEL_COLLECTOR_VERSION__ + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/extension/opampextension + v__OTEL_COLLECTOR_VERSION__ + - gomod: + github.com/open-telemetry/opentelemetry-collector-contrib/extension/pprofextension + v__OTEL_COLLECTOR_VERSION__ + +providers: + - gomod: + go.opentelemetry.io/collector/confmap/provider/envprovider + v__OTEL_COLLECTOR_CORE_VERSION__ + - gomod: + go.opentelemetry.io/collector/confmap/provider/fileprovider + v__OTEL_COLLECTOR_CORE_VERSION__ + - gomod: + go.opentelemetry.io/collector/confmap/provider/httpprovider + v__OTEL_COLLECTOR_CORE_VERSION__ + - gomod: + go.opentelemetry.io/collector/confmap/provider/httpsprovider + v__OTEL_COLLECTOR_CORE_VERSION__ + - gomod: + go.opentelemetry.io/collector/confmap/provider/yamlprovider + v__OTEL_COLLECTOR_CORE_VERSION__ diff --git a/smoke-tests/otel-collector/docker-compose.yaml b/smoke-tests/otel-collector/docker-compose.yaml index bbdf7533..070bdb25 100644 --- a/smoke-tests/otel-collector/docker-compose.yaml +++ b/smoke-tests/otel-collector/docker-compose.yaml @@ -23,6 +23,9 @@ services: context: ../.. dockerfile: docker/otel-collector/Dockerfile target: dev + args: + OTEL_COLLECTOR_VERSION: ${OTEL_COLLECTOR_VERSION:-0.149.0} + OTEL_COLLECTOR_CORE_VERSION: ${OTEL_COLLECTOR_CORE_VERSION:-1.55.0} environment: - CLICKHOUSE_ENDPOINT=tcp://ch-server:9000?dial_timeout=10s - CLICKHOUSE_PROMETHEUS_METRICS_ENDPOINT=ch-server:9363