Skip to content

[POC] Run Go parametric tests on Buildbarn without Docker - #7498

Draft
pawelchcki wants to merge 2 commits into
mainfrom
poc/buildbarn-go-parametric
Draft

[POC] Run Go parametric tests on Buildbarn without Docker#7498
pawelchcki wants to merge 2 commits into
mainfrom
poc/buildbarn-go-parametric

Conversation

@pawelchcki

@pawelchcki pawelchcki commented Aug 12, 2026

Copy link
Copy Markdown
Collaborator

Motivation

Prototype running the Go parametric suite on shared Buildbarn workers without Docker, a Docker socket, worker internet access, or preinstalled repository tooling.

Changes

  • Add a hermetic Bazel workspace with pinned Go, Python, PRoot, test-agent, and rules_itest dependencies.
  • Add a process-backed parametric runtime that preserves the existing Docker fixture API where practical.
  • Run the Go 2.4 parametric suite across 32 pytest-split shards using least-duration grouping.
  • Run the test agent as a rules_itest service and pass its assigned APM/OTLP ports to the process runtime.
  • Build AppSec support into the Go artifact so ASM_ACTIVATION capability checks reflect the production tracer.
  • Add a PRoot smoke test and process-runtime unit coverage.
  • Document the Buildbarn workflow while leaving the existing Docker workflow as the default.

Validation

  • bazelisk test //... --config=buildbarn --jobs=1999 — passed (invocation 1a0e4160-412f-4f41-a4fd-7873c6090f4d).
  • 32-shard Go run — passed in 181.2s wall time; shard execution ranged from 28.6s to 49.5s (invocation dc5cf635-45e3-414e-ac2e-221bbe2b2941). Shared-pool queueing made total wall time slower than the 16-shard baseline despite the shorter shard tail.
  • 16-shard baseline — passed in 147.3s wall time; shard execution ranged from 55.3s to 79.1s (invocation aa324b02-b143-4b86-afdb-686a963bcfa8).
  • PRoot smoke test — passed (invocation a8f8d847-4ccf-4b17-8285-1a9e33cc34fd).
  • Ruff, Buildifier, and focused process-runtime tests passed locally.

Notes

This is intentionally a draft POC. The main review questions are whether Buildbarn is the desired execution environment, whether the process-backed fixture abstraction is acceptable, and how dependency/version ownership should work before productionizing it.

Reviewer checklist

  • Framework changes have approval from the R&P team.
  • Test/runtime behavior is acceptable to the Go tracer owners.
  • Buildbarn ownership and support expectations are agreed.

@github-actions

Copy link
Copy Markdown
Contributor

CODEOWNERS have been resolved as:

.bazelrc                                                                @DataDog/system-tests-core
.bazelversion                                                           @DataDog/system-tests-core
BUILD.bazel                                                             @DataDog/system-tests-core
MODULE.bazel                                                            @DataDog/system-tests-core
MODULE.bazel.lock                                                       @DataDog/system-tests-core
bazel/__init__.py                                                       @DataDog/system-tests-core
bazel/parametric/BUILD.bazel                                            @DataDog/system-tests-core
bazel/parametric/__init__.py                                            @DataDog/system-tests-core
bazel/parametric/proot_smoke.go                                         @DataDog/system-tests-core
bazel/parametric/proot_smoke.py                                         @DataDog/system-tests-core
bazel/parametric/runner.py                                              @DataDog/system-tests-core
bazel/parametric/sharding.py                                            @DataDog/system-tests-core
bazel/parametric/test_agent.py                                          @DataDog/system-tests-core
bazel/platforms/BUILD.bazel                                             @DataDog/system-tests-core
bazel/requirements/BUILD.bazel                                          @DataDog/system-tests-core
bazel/requirements/runner-overrides.txt                                 @DataDog/system-tests-core
bazel/requirements/runner.txt                                           @DataDog/system-tests-core
bazel/requirements/test_agent.txt                                       @DataDog/system-tests-core
tests/test_the_test/test_parametric_process.py                          @DataDog/system-tests-core
utils/build/docker/golang/parametric/BUILD.bazel                        @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/main_v2_4.go                       @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/parametric/__init__.py                                            @DataDog/system-tests-core
utils/parametric/process.py                                             @DataDog/system-tests-core
.gitignore                                                              @DataDog/system-tests-core
conftest.py                                                             @DataDog/system-tests-core
docs/understand/scenarios/parametric.md                                 @DataDog/system-tests-core
manifests/golang.yml                                                    @DataDog/dd-trace-go-guild
tests/parametric/conftest.py                                            @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_config_consistency.py                             @DataDog/apm-sdk-capabilities
tests/parametric/test_crashtracking.py                                  @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_llm_observability/test_llm_observability_dne.py   @DataDog/ml-observability @DataDog/system-tests-core
tests/parametric/test_otel_logs.py                                      @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_otel_metrics.py                                   @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_otlp_trace_metrics.py                             @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_process_discovery.py                              @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_startup_logs.py                                   @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
tests/parametric/test_telemetry.py                                      @DataDog/system-tests-core @DataDog/apm-sdk-capabilities
utils/_context/_scenarios/parametric.py                                 @DataDog/system-tests-core
utils/build/docker/golang/parametric/go.mod                             @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/go.sum                             @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/main.go                            @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/build/docker/golang/parametric/otel_metrics.go                    @DataDog/dd-trace-go-guild @DataDog/system-tests-core
utils/docker_fixtures/_test_agent.py                                    @DataDog/system-tests-core
utils/docker_fixtures/_test_clients/_test_client_parametric.py          @DataDog/system-tests-core

@datadog-datadog-us1-prod

datadog-datadog-us1-prod Bot commented Aug 12, 2026

Copy link
Copy Markdown

Pipelines  Tests

⚠️ Warnings

🚦 5 Pipeline jobs failed

Testing the test | lint / lint   View in Datadog   GitHub Actions

🔧 Fix in code. This looks caused by changes in this PR. Linting error due to formatting issues in 1 file.

DataDog/system-tests | K8S_LIB_INJECTION_OPERATOR: [dd-lib-java-init-test-app, ${PRIVATE_DOCKER_REGISTRY}/system-tests/dd-lib-java-init-test-app, 2.24.0, 235494822917.dkr.ecr.us-east-1.amazonaws.com/ssi/cluster-agent:7.81.1, 235494822917.dkr.ecr.us-east-1.amazonaws.com/ssi/apm-inject:latest, 235494822917.dkr.ecr.us-east-1.amazonaws.com/ssi/dd-lib-java-init:latest]   View in Datadog   GitLab

DataDog/system-tests | K8S_LIB_INJECTION_PROFILING_DISABLED: [dd-lib-java-init-test-app, ${PRIVATE_DOCKER_REGISTRY}/system-tests/dd-lib-java-init-test-app, 235494822917.dkr.ecr.us-east-1.amazonaws.com/ssi/cluster-agent:7.81.1, 235494822917.dkr.ecr.us-east-1.amazonaws.com/ssi/apm-inject:latest_snapshot, 3.231.5, 235494822917.dkr.ecr.us-east-1.amazonaws.com/ssi/dd-lib-java-init:latest]   View in Datadog   GitLab

View all 5 failed jobs.

📋 Copy prompt for your agent
CI on my pull request is failing. Help me find and fix the root cause of each failing job below — they were flagged as caused by changes in this PR, so focus on the diff. For each job, explain the failure and propose a fix.

Branch: poc/buildbarn-go-parametric

Testing the test | lint / lint
Commit: 5fbaf5a3e1e32fcf22f84c948a2a7117087b114c
Error (code / quality):
Linting error due to formatting issues in 1 file.
CI job: https://github.com/DataDog/system-tests/actions/runs/31640918622/job/94262880930

ℹ️ Info

No other issues found (see more)

🧪 All tests passed
❄️ No new flaky tests detected

🔄 Datadog auto-retried 2 jobs - 2 passed on retry View in Datadog

Useful? React with 👍 / 👎

This comment will be updated automatically if new data arrives.
🔗 Commit SHA: 5fbaf5a | Docs | Datadog PR Page | Give us feedback!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant