Skip to content

Tweaks.

Tweaks. #68

name: Pipeline Performance Tests - Continuous

Check failure on line 1 in .github/workflows/pipeline-perf-test-continuous.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/pipeline-perf-test-continuous.yml

Invalid workflow file

(Line: 24, Col: 15): Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.temp, (Line: 25, Col: 12): Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.temp, (Line: 26, Col: 13): Unrecognized named-value: 'runner'. Located at position 1 within expression: runner.temp
permissions:
contents: read
on:
push:
branches: [main]
paths:
- 'rust/**'
- 'tools/pipeline_perf_test/**'
- 'tools/comparison_dashboard/**'
- '.github/workflows/scripts/**'
- '.github/workflows/pipeline-perf-test-continuous.yml'
workflow_dispatch:
jobs:
pipeline-perf-test:
runs-on: oracle-bare-metal-64cpu-1024gb-x86-64-ubuntu-24
# Route tool-created temp files to RUNNER_TEMP, which GitHub Actions empties
# at the start and end of every job. Required when running directly on the
# shared bare-metal host (no job-level container) per
# https://github.com/open-telemetry/community/blob/main/docs/how-to-use-bare-metal-runner.md
env:
TMPDIR: ${{ runner.temp }}
TMP: ${{ runner.temp }}
TEMP: ${{ runner.temp }}
steps:
- name: Harden the runner (Audit all outbound calls)
uses: step-security/harden-runner@9af89fc71515a100421586dfdb3dc9c984fbf411 # v2.19.4
with:
egress-policy: audit
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: System topology (NUMA, CPU, memory)
run: |
echo "### System Topology" >> $GITHUB_STEP_SUMMARY
echo '```' >> $GITHUB_STEP_SUMMARY
lscpu | grep -E "Model name|Socket|Core|Thread|NUMA|CPU\(s\)" | tee -a $GITHUB_STEP_SUMMARY
echo "" | tee -a $GITHUB_STEP_SUMMARY
numactl --hardware 2>/dev/null | tee -a $GITHUB_STEP_SUMMARY || echo "numactl not available"
echo '```' >> $GITHUB_STEP_SUMMARY
- name: Set up Python
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.14"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
- name: Set up Python (non-OL8)
if: ${{ steps.detect_os.outputs.id != 'ol' }}
uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: "3.14"
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@d7f5e7f509e45cec5c76c4d5afdd7de93d0b3df5 # v4.1.0
- name: Build dataflow_engine
run: |
git submodule init
git submodule update
cd rust/otap-dataflow
docker buildx build --load --build-context otel-arrow=../../ -f Dockerfile -t df_engine .
cd ../..
- name: Install dependencies
run: |
python -m pip install --user --require-hashes -r tools/pipeline_perf_test/orchestrator/requirements.lock.txt
python -m pip install --user --require-hashes -r tools/pipeline_perf_test/load_generator/requirements.lock.txt
- name: Run pipeline performance test log suite
run: |
cd tools/pipeline_perf_test
python orchestrator/run_orchestrator.py --config test_suites/integration/continuous/100klrps-docker.yaml
- name: Upload benchmark results for processing
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: benchmark-results-pipeline
path: tools/pipeline_perf_test/results/integration/gh-actions-benchmark/*.json
- name: Add benchmark link to job summary
run: |
echo "### Benchmark Results" >> $GITHUB_STEP_SUMMARY
echo "[View the benchmark results here](https://open-telemetry.github.io/otel-arrow/benchmarks/continuous/)" >> $GITHUB_STEP_SUMMARY
# Bare-metal host cleanup: remove only the Docker artifacts created by
# this job. Avoid broad commands (e.g. rm -rf /tmp/*) per the shared
# runner guidelines.
- name: Clean up Docker artifacts created by this job
if: always()
run: |
docker rmi -f df_engine 2>/dev/null || true
# Prune dangling (unused) build cache and images only.
docker builder prune -f 2>/dev/null || true
docker image prune -f 2>/dev/null || true
update-benchmarks:
runs-on: ubuntu-24.04
needs: [pipeline-perf-test]
permissions:
# contents permission to update benchmark contents in gh-pages branch
contents: write
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
- name: Download benchmark artifacts
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: benchmark-results-pipeline*
merge-multiple: true
path: results-pipeline
- name: Consolidate pipeline benchmark data
run: |
bash ./.github/workflows/scripts/consolidate-benchmarks.sh results-pipeline output-pipeline.json
- name: Update pipeline benchmark data and deploy to GitHub Pages
uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1
with:
tool: "customSmallerIsBetter"
output-file-path: output-pipeline.json
gh-pages-branch: benchmarks
max-items-in-chart: 100
github-token: ${{ secrets.GITHUB_TOKEN }}
benchmark-data-dir-path: "docs/benchmarks/continuous"
auto-push: true
save-data-file: true
- name: Add benchmark link to job summary
run: |
echo "### Benchmark Results" >> $GITHUB_STEP_SUMMARY
echo "[View the pipeline benchmark results here](https://open-telemetry.github.io/otel-arrow/benchmarks/continuous/)" >> $GITHUB_STEP_SUMMARY