Skip to content

[HDX-4029] Add commonly-used core and contrib components to OTel Collector builder-config#2121

Merged
kodiakhq[bot] merged 2 commits intomainfrom
warren/HDX-4029-add-core-otel-extensions
Apr 15, 2026
Merged

[HDX-4029] Add commonly-used core and contrib components to OTel Collector builder-config#2121
kodiakhq[bot] merged 2 commits intomainfrom
warren/HDX-4029-add-core-otel-extensions

Conversation

@wrn14897
Copy link
Copy Markdown
Member

@wrn14897 wrn14897 commented Apr 15, 2026

Summary

Update packages/otel-collector/builder-config.yaml to include commonly-used components from the upstream opentelemetry-collector core and opentelemetry-collector-contrib distributions. This gives users more flexibility in their custom OTel configs without pulling in the entire contrib distribution (which causes very long compile times).

Also adds Go module and build cache mounts to the OCB Docker build stage for faster rebuilds, and bumps CI timeouts for integration and smoke test jobs to account for the larger binary.

Core extensions added (2)

  • memorylimiterextension — memory-based limiting at the extension level
  • zpagesextension — zPages debugging endpoints

Contrib receivers added (4)

  • dockerstatsreceiver — container metrics from Docker
  • filelogreceiver — tail log files
  • k8sclusterreceiver — Kubernetes cluster-level metrics
  • kubeletstatsreceiver — node/pod/container metrics from kubelet

Contrib processors added (12)

  • attributesprocessor — insert/update/delete/hash attributes
  • cumulativetodeltaprocessor — convert cumulative metrics to delta
  • filterprocessor — drop unwanted telemetry
  • groupbyattrsprocessor — reassign resource attributes
  • k8sattributesprocessor — enrich telemetry with k8s metadata
  • logdedupprocessor — deduplicate repeated log entries
  • metricstransformprocessor — rename/aggregate/transform metrics
  • probabilisticsamplerprocessor — percentage-based sampling
  • redactionprocessor — mask/remove sensitive data
  • resourceprocessor — modify resource attributes
  • spanprocessor — rename spans, extract attributes
  • tailsamplingprocessor — sample traces based on policies

Contrib extensions added (1)

  • filestorage — persistent file-based storage (used by clickhouse exporter sending queue in EE OpAMP controller)

Other changes

  • Docker cache mounts: Added --mount=type=cache for Go module and build caches in the OCB builder stage of both docker/otel-collector/Dockerfile and docker/hyperdx/Dockerfile
  • CI timeouts: Bumped integration and otel-smoke-test jobs from 8 to 16 minutes in .github/workflows/main.yml

All existing HyperDX-specific components are preserved unchanged.

How to test locally or on Vercel

  1. Build the OTel Collector Docker image — verify OCB resolves all listed modules
  2. Provide a custom OTel config that uses one of the newly-added components and verify it loads
  3. Verify existing HyperDX OTel pipeline still functions

References

@wrn14897 wrn14897 added the ai-generated AI-generated content; review carefully before merging. label Apr 15, 2026
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 15, 2026

🦋 Changeset detected

Latest commit: 1bb1b65

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 3 packages
Name Type
@hyperdx/otel-collector Minor
@hyperdx/api Minor
@hyperdx/app Minor

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@vercel
Copy link
Copy Markdown

vercel bot commented Apr 15, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
hyperdx-oss Ready Ready Preview, Comment Apr 15, 2026 3:52pm

Request Review

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 15, 2026

E2E Test Results

All tests passed • 132 passed • 3 skipped • 1029s

Status Count
✅ Passed 132
❌ Failed 0
⚠️ Flaky 4
⏭️ Skipped 3

Tests ran across 4 shards in parallel.

View full report →

@wrn14897 wrn14897 force-pushed the warren/HDX-4029-add-core-otel-extensions branch from dc92b1e to d82848b Compare April 15, 2026 05:16
@wrn14897 wrn14897 force-pushed the warren/HDX-4029-add-core-otel-extensions branch from d82848b to 878884e Compare April 15, 2026 05:26
@wrn14897 wrn14897 changed the title [HDX-4029] Add missing core OTel Collector extensions to builder-config.yaml [HDX-4029] Add commonly-used core and contrib components to OTel Collector builder-config Apr 15, 2026
@wrn14897 wrn14897 marked this pull request as ready for review April 15, 2026 05:29
@github-actions github-actions bot added the review/tier-4 Critical — deep review + domain expert sign-off label Apr 15, 2026
@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 15, 2026

🔴 Tier 4 — Critical

Touches auth, data models, config, tasks, OTel pipeline, ClickHouse, or CI/CD.

Why this tier:

  • Critical-path files (4):
    • .github/workflows/main.yml
    • docker/otel-collector/Dockerfile
    • packages/otel-collector/README.md
    • packages/otel-collector/builder-config.yaml

Review process: Deep review from a domain expert. Synchronous walkthrough may be required.
SLA: Schedule synchronous review within 2 business days.

Stats
  • Files changed: 6
  • Lines changed: 136
  • Branch: warren/HDX-4029-add-core-otel-extensions
  • Author: wrn14897

To override this classification, remove the review/tier-4 label and apply a different review/tier-* label. Manual overrides are preserved on subsequent pushes.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 15, 2026

PR Review

✅ No critical issues found.

A few observations worth noting:

  • ⚠️ zpagesextension exposes internal debugging HTTP endpoints — not a blocker since it's opt-in (must be explicitly referenced in user config), but worth documenting that users should avoid exposing it publicly.
  • ⚠️ Docker cache mount IDs (ocb-gomod, ocb-gobuild) are identical in both docker/otel-collector/Dockerfile and docker/hyperdx/Dockerfile. If both images build in parallel on the same BuildKit host, they share the same cache. Go module caches are content-addressable and safe to share; Go build caches under concurrent writes are handled by BuildKit locking — this is fine in practice but worth being aware of.
  • ℹ️ CI timeout doubled (8→16 min) is reasonable given 17+ new modules added to the binary. If build times continue to grow, consider splitting the smoke test job.

All new components use the consistent v__OTEL_COLLECTOR_VERSION__ substitution pattern. Documentation tables in README.md are properly updated. Changeset file is present and correctly marked as minor.

@wrn14897 wrn14897 force-pushed the warren/HDX-4029-add-core-otel-extensions branch 2 times, most recently from 1dd43aa to b71ee66 Compare April 15, 2026 05:34
@wrn14897 wrn14897 force-pushed the warren/HDX-4029-add-core-otel-extensions branch 2 times, most recently from 8992ebb to 5f620a3 Compare April 15, 2026 05:39
…vers

Add the two missing core extensions (memorylimiterextension, zpagesextension),
12 commonly-used contrib processors, and 4 commonly-used contrib receivers
to builder-config.yaml.

New processors: attributesprocessor, cumulativetodeltaprocessor,
filterprocessor, groupbyattrsprocessor, k8sattributesprocessor,
logdedupprocessor, metricstransformprocessor, probabilisticsamplerprocessor,
redactionprocessor, resourceprocessor, spanprocessor, tailsamplingprocessor

New receivers: dockerstatsreceiver, filelogreceiver, k8sclusterreceiver,
kubeletstatsreceiver

Refs: HDX-4029
@kodiakhq kodiakhq bot merged commit 0a4fb15 into main Apr 15, 2026
17 checks passed
@kodiakhq kodiakhq bot deleted the warren/HDX-4029-add-core-otel-extensions branch April 15, 2026 15:57
knudtty pushed a commit that referenced this pull request Apr 16, 2026
…ector builder-config (#2121)

## Summary

Update `packages/otel-collector/builder-config.yaml` to include commonly-used components from the upstream [opentelemetry-collector](https://github.com/open-telemetry/opentelemetry-collector) core and [opentelemetry-collector-contrib](https://github.com/open-telemetry/opentelemetry-collector-contrib) distributions. This gives users more flexibility in their custom OTel configs without pulling in the entire contrib distribution (which causes very long compile times).

Also adds Go module and build cache mounts to the OCB Docker build stage for faster rebuilds, and bumps CI timeouts for integration and smoke test jobs to account for the larger binary.

### Core extensions added (2)

- `memorylimiterextension` — memory-based limiting at the extension level
- `zpagesextension` — zPages debugging endpoints

### Contrib receivers added (4)

- `dockerstatsreceiver` — container metrics from Docker
- `filelogreceiver` — tail log files
- `k8sclusterreceiver` — Kubernetes cluster-level metrics
- `kubeletstatsreceiver` — node/pod/container metrics from kubelet

### Contrib processors added (12)

- `attributesprocessor` — insert/update/delete/hash attributes
- `cumulativetodeltaprocessor` — convert cumulative metrics to delta
- `filterprocessor` — drop unwanted telemetry
- `groupbyattrsprocessor` — reassign resource attributes
- `k8sattributesprocessor` — enrich telemetry with k8s metadata
- `logdedupprocessor` — deduplicate repeated log entries
- `metricstransformprocessor` — rename/aggregate/transform metrics
- `probabilisticsamplerprocessor` — percentage-based sampling
- `redactionprocessor` — mask/remove sensitive data
- `resourceprocessor` — modify resource attributes
- `spanprocessor` — rename spans, extract attributes
- `tailsamplingprocessor` — sample traces based on policies

### Contrib extensions added (1)

- `filestorage` — persistent file-based storage (used by clickhouse exporter sending queue in EE OpAMP controller)

### Other changes

- **Docker cache mounts**: Added `--mount=type=cache` for Go module and build caches in the OCB builder stage of both `docker/otel-collector/Dockerfile` and `docker/hyperdx/Dockerfile`
- **CI timeouts**: Bumped `integration` and `otel-smoke-test` jobs from 8 to 16 minutes in `.github/workflows/main.yml`

All existing HyperDX-specific components are preserved unchanged.

### How to test locally or on Vercel

1. Build the OTel Collector Docker image — verify OCB resolves all listed modules
2. Provide a custom OTel config that uses one of the newly-added components and verify it loads
3. Verify existing HyperDX OTel pipeline still functions

### References

- Linear Issue: https://linear.app/clickhouse/issue/HDX-4029
- Upstream core builder-config: https://github.com/open-telemetry/opentelemetry-collector/blob/main/cmd/otelcorecol/builder-config.yaml
- Upstream contrib builder-config: https://github.com/open-telemetry/opentelemetry-collector-contrib/blob/main/cmd/otelcontribcol/builder-config.yaml
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

ai-generated AI-generated content; review carefully before merging. automerge review/tier-4 Critical — deep review + domain expert sign-off

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants