fix: improve aws and azure benchmark cases#11
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds CRIBL and Filebeat Azure-blob configs and vmetric tuning; expands subject capabilities and case subject lists; introduces MinIO support (config types, cases, receiver minio-init, bucket creation), and hardens Docker Compose generation and startup behavior. ChangesBenchmark & runtime updates
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@cases/tcp_to_cloudwatch_performance/configs/fluent-bit.conf`:
- Around line 17-23: Fluent-bit 5.0's aws_client enforces TLS verification and
blocks LocalStack in the fluent-bit.conf used by the
tcp_to_cloudwatch_performance and tcp_to_kinesis_performance cases; update the
test/benchmark configuration to exclude or skip fluent-bit 5.0 for these cases
(e.g., add a conditional skip in the benchmark matrix or CI job that selects
clients), add an inline comment in fluent-bit.conf referencing the upstream
issue/PR URL and a short explanation, and/or remove the failing fluent-bit.conf
from the active test matrix until upstream provides an insecure-TLS option so
the cases no longer fail the CI.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: 6d936d89-5782-4861-8a47-3a1b726418fd
📒 Files selected for processing (32)
cases/azure_blob_to_tcp_performance/case.yamlcases/azure_blob_to_tcp_performance/configs/cribl-stream/cribl.initedcases/azure_blob_to_tcp_performance/configs/cribl-stream/cribl.ymlcases/azure_blob_to_tcp_performance/configs/cribl-stream/inputs.ymlcases/azure_blob_to_tcp_performance/configs/cribl-stream/messages.ymlcases/azure_blob_to_tcp_performance/configs/cribl-stream/outputs.ymlcases/azure_blob_to_tcp_performance/configs/cribl-stream/pipelines/route.ymlcases/azure_blob_to_tcp_performance/configs/filebeat.ymlcases/azure_blob_to_tcp_performance/configs/vmetric.ymlcases/s3_to_tcp_performance/configs/vmetric.ymlcases/tcp_to_azure_blob_correctness/case.yamlcases/tcp_to_azure_blob_correctness/configs/cribl-stream/cribl.initedcases/tcp_to_azure_blob_correctness/configs/cribl-stream/cribl.ymlcases/tcp_to_azure_blob_correctness/configs/cribl-stream/inputs.ymlcases/tcp_to_azure_blob_correctness/configs/cribl-stream/messages.ymlcases/tcp_to_azure_blob_correctness/configs/cribl-stream/outputs.ymlcases/tcp_to_azure_blob_correctness/configs/cribl-stream/pipelines/route.ymlcases/tcp_to_azure_blob_correctness/configs/fluent-bit.confcases/tcp_to_azure_blob_performance/case.yamlcases/tcp_to_azure_blob_performance/configs/cribl-stream/cribl.initedcases/tcp_to_azure_blob_performance/configs/cribl-stream/cribl.ymlcases/tcp_to_azure_blob_performance/configs/cribl-stream/inputs.ymlcases/tcp_to_azure_blob_performance/configs/cribl-stream/messages.ymlcases/tcp_to_azure_blob_performance/configs/cribl-stream/outputs.ymlcases/tcp_to_azure_blob_performance/configs/cribl-stream/pipelines/route.ymlcases/tcp_to_azure_blob_performance/configs/fluent-bit.confcases/tcp_to_azure_blob_performance/configs/vmetric.ymlcases/tcp_to_cloudwatch_performance/configs/fluent-bit.confcases/tcp_to_kinesis_performance/configs/fluent-bit.confcases/tcp_to_s3_performance/configs/vmetric.ymlinternal/config/subject.gointernal/orchestrator/docker.go
Deploying pipebench with
|
| Latest commit: |
9d95c0a
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://53eda6dd.pipebench.pages.dev |
| Branch Preview URL: | https://fix-improve-aws-azure-bench.pipebench.pages.dev |
|
@coderabbitai review |
✅ Action performedReview finished.
|
|
@coderabbitai full review |
✅ Action performedFull review finished. |
There was a problem hiding this comment.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
internal/orchestrator/docker.go (1)
679-690:⚠️ Potential issue | 🟠 Major | ⚡ Quick winDo not force-remove running
bench-*containers during stale cleanup.Line [680] collects all matching containers, and Line [690] force-removes them. That includes running containers, which can abruptly kill active runs/debug sessions.
Suggested patch
- out, err := exec.Command("docker", "ps", "-aq", "--filter", "name=^bench-").Output() + out, err := exec.Command( + "docker", "ps", "-aq", + "--filter", "name=^bench-", + "--filter", "status=created", + "--filter", "status=exited", + "--filter", "status=dead", + ).Output()🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@internal/orchestrator/docker.go` around lines 679 - 690, The cleanup currently force-removes all containers named bench-* in removeStaleBenchContainers (using docker ps -aq and docker rm -f), which can kill running containers; change the docker ps invocation to only list non-running containers (e.g., add --filter "status=exited" and optionally --filter "status=created" and --filter "status=dead") and remove the force flag so removal uses docker rm (replace args := append([]string{"rm", "-f"}, ids...) with args := append([]string{"rm"}, ids...)); keep the existing early returns and error handling but ensure you only target stopped/exited/created/dead bench-* containers to avoid killing active runs.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@cases/tcp_to_minio_correctness/configs/vector.toml`:
- Around line 1-2: The top-of-file header comment currently reads
"tcp_to_minio_performance" but this file is for the tcp_to_minio_correctness
case; update the comment string in the first comment block to
"tcp_to_minio_correctness" so the file header accurately reflects the case name
(edit the header comment in configs/vector.toml accordingly).
In `@containers/receiver/minio.go`:
- Around line 25-27: The current check uses strings.TrimSpace(bucketsEnv) which
allows inputs like "," or " , " to pass but results in zero usable bucket names
later; change the validation to split bucketsEnv by ',' then build a filtered
slice (e.g., iterate over strings.Split(bucketsEnv, ",") and for each entry run
strings.TrimSpace and append only non-empty names to validBuckets), then if
len(validBuckets) == 0 log an error (same message "minio-init:
MINIO_INIT_BUCKETS is required" or similar) and os.Exit(1); update the later
code that iterates over buckets to use this filtered validBuckets slice so the
code never continues successfully when there are no usable bucket names.
- Around line 42-57: The retry budget and request timeouts are wrong: move the
per-bucket deadline inside the loop that iterates buckets so each bucket gets
its own 2-minute retry window (i.e., compute deadline :=
time.Now().Add(2*time.Minute) for each name in the strings.SplitSeq(bucketsEnv,
",") loop), and add a per-request context timeout when calling
client.CreateBucket by creating a child context (e.g., reqCtx, cancel :=
context.WithTimeout(ctx, <shortDuration>) and defer cancel() for each attempt)
and pass reqCtx to client.CreateBucket; keep using bucketExists to decide
success and retain the same retry/sleep logic but compare time.Now() to the
per-bucket deadline.
In `@internal/config/case.go`:
- Around line 331-336: The reserved endpoint-name set in the reserved variable
(in internal/config/case.go) must include Kafka service names to prevent
endpoint/composer collisions; update the reserved map initializer to add
"redpanda" and "redpanda-init" (and optionally other Kafka synonyms like
"kafka"/"kafka-init" if you want broader protection) so endpoint validation will
reject those names the same way it rejects "minio"/"minio-init" and cloud
emulator names.
---
Outside diff comments:
In `@internal/orchestrator/docker.go`:
- Around line 679-690: The cleanup currently force-removes all containers named
bench-* in removeStaleBenchContainers (using docker ps -aq and docker rm -f),
which can kill running containers; change the docker ps invocation to only list
non-running containers (e.g., add --filter "status=exited" and optionally
--filter "status=created" and --filter "status=dead") and remove the force flag
so removal uses docker rm (replace args := append([]string{"rm", "-f"}, ids...)
with args := append([]string{"rm"}, ids...)); keep the existing early returns
and error handling but ensure you only target stopped/exited/created/dead
bench-* containers to avoid killing active runs.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: e7504c5d-84cb-43ef-8072-746e84a00882
📒 Files selected for processing (22)
cases/tcp_to_minio_correctness/case.yamlcases/tcp_to_minio_correctness/configs/fluent-bit.confcases/tcp_to_minio_correctness/configs/logstash.confcases/tcp_to_minio_correctness/configs/vector.tomlcases/tcp_to_minio_correctness/configs/vmetric.ymlcases/tcp_to_minio_performance/case.yamlcases/tcp_to_minio_performance/configs/fluent-bit.confcases/tcp_to_minio_performance/configs/logstash.confcases/tcp_to_minio_performance/configs/vector.tomlcases/tcp_to_minio_performance/configs/vmetric.ymlcases/tcp_to_minio_performance_paced/case.yamlcases/tcp_to_minio_performance_paced/configs/fluent-bit.confcases/tcp_to_minio_performance_paced/configs/logstash.confcases/tcp_to_minio_performance_paced/configs/vector.tomlcases/tcp_to_minio_performance_paced/configs/vmetric.ymlcontainers/receiver/main.gocontainers/receiver/minio.gointernal/config/case.gointernal/config/cloud.gointernal/config/cloud_test.gointernal/orchestrator/awsinit.gointernal/orchestrator/docker.go
✅ Files skipped from review due to trivial changes (9)
- cases/tcp_to_minio_performance/configs/vector.toml
- cases/tcp_to_minio_performance_paced/configs/vector.toml
- cases/tcp_to_minio_performance/configs/logstash.conf
- cases/tcp_to_minio_performance_paced/configs/fluent-bit.conf
- cases/tcp_to_minio_correctness/case.yaml
- cases/tcp_to_minio_performance/case.yaml
- cases/tcp_to_minio_performance_paced/case.yaml
- cases/tcp_to_minio_performance_paced/configs/vmetric.yml
- cases/tcp_to_minio_correctness/configs/logstash.conf
Summary by CodeRabbit
New Features
Tests
Chores