This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Pipeline Performance Tests - Nightly | ||
|
Check failure on line 1 in .github/workflows/pipeline-perf-test-nightly.yml
|
||
| permissions: | ||
| contents: read | ||
| on: | ||
| schedule: | ||
| - cron: "0 16 * * *" # runs every day at 8 AM PT (4 PM UTC) | ||
| - cron: "0 0 * * *" # runs every day at 4 PM PT (midnight UTC) | ||
| 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: 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: Build otelarrowcol image | ||
| # Builds the thin Dockerfile, which pulls the upstream OpenTelemetry | ||
| # Collector Contrib distribution (includes the otelarrow components). | ||
| run: | | ||
| docker build . -t otelarrowcol | ||
| - 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 syslog performance test log suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/syslog-docker.yaml | ||
| - name: Run syslog TCP performance test log suite | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/syslog-tcp-docker.yaml | ||
| - name: Run standard load batch size test suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/100klrps-batch-sizes-docker.yaml | ||
| - name: Run backpressure performance test log suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/backpressure-docker.yaml | ||
| - name: Run filter performance test log suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/filter-docker.yaml | ||
| - name: Run filter performance test otelcol log suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/otelcol-docker.yaml | ||
| - name: Run syslog TCP performance test otelcol log suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/syslog-tcp-otelcol-docker.yaml | ||
| - name: Run batch processor performance test log suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/nightly/batch-processor-docker.yaml | ||
| - name: Run idle state performance tests | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| ./scripts/run-idle-state-tests.sh --output-json results/idle-memory-scaling.json \ | ||
| | tee idle-memory-scaling-report.txt | ||
| # Add memory scaling report to job summary | ||
| echo "### Idle State Memory Scaling Analysis" >> $GITHUB_STEP_SUMMARY | ||
| echo '```' >> $GITHUB_STEP_SUMMARY | ||
| # Extract just the analysis section from the report | ||
| sed -n '/^=.*MEMORY SCALING/,/^=\{10,\}$/p' idle-memory-scaling-report.txt >> $GITHUB_STEP_SUMMARY | ||
| echo '```' >> $GITHUB_STEP_SUMMARY | ||
| - name: Run saturation/scaling performance test suite | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| ./scripts/run-saturation-tests.sh --output-json results/scaling-efficiency.json \ | ||
| | tee saturation-scaling-report.txt | ||
| # Add scaling report to job summary | ||
| echo "### Saturation/Scaling Test Analysis" >> $GITHUB_STEP_SUMMARY | ||
| echo '```' >> $GITHUB_STEP_SUMMARY | ||
| # Extract just the analysis section from the report | ||
| sed -n '/^=.*SCALING ANALYSIS/,/^=\{10,\}$/p' saturation-scaling-report.txt >> $GITHUB_STEP_SUMMARY | ||
| echo '```' >> $GITHUB_STEP_SUMMARY | ||
| - name: Run single-core saturation max throughput test (OTLP) | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/continuous/saturation-max-throughput.yaml | ||
| - name: Run single-core saturation max throughput test (OTAP) | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/continuous/saturation-max-throughput-otap.yaml | ||
| - name: Run passthrough performance test (OTLP) | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/continuous/passthrough.yaml | ||
| - name: Run passthrough performance test (OTAP) | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| cd tools/pipeline_perf_test | ||
| python orchestrator/run_orchestrator.py --config test_suites/integration/continuous/passthrough-otap.yaml | ||
| - name: Upload syslog results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: syslog-nightly-results | ||
| path: tools/pipeline_perf_test/results/nightly_syslog/gh-actions-benchmark/*.json | ||
| - name: Upload syslog TCP results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: syslog-tcp-nightly-results | ||
| path: tools/pipeline_perf_test/results/nightly_syslog_tcp/gh-actions-benchmark/*.json | ||
| - name: Upload standard load batch size results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: standardload-batch-size-nightly-results | ||
| path: tools/pipeline_perf_test/results/nightly_100klrps_batch_sizes/gh-actions-benchmark/*.json | ||
| - name: Upload backpressure results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: backpressure-nightly-results | ||
| path: tools/pipeline_perf_test/results/nightly_backpressure/gh-actions-benchmark/*.json | ||
| - name: Upload filter results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: filter-nightly-results | ||
| path: tools/pipeline_perf_test/results/nightly_filter/gh-actions-benchmark/*.json | ||
| - name: Upload batch processor results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: batch-processor-nightly-results | ||
| path: tools/pipeline_perf_test/results/nightly_batch_processor/gh-actions-benchmark/*.json | ||
| - name: Upload otelcol filter results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: filter-otelcol-results | ||
| path: tools/pipeline_perf_test/results/otelcol_filter/gh-actions-benchmark/*.json | ||
| - name: Upload otelcol syslog TCP results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: syslog-tcp-otelcol-results | ||
| path: tools/pipeline_perf_test/results/nightly_syslog_tcp_otelcol/gh-actions-benchmark/*.json | ||
| - name: Upload saturation results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: saturation-nightly-results | ||
| path: tools/pipeline_perf_test/results/continuous_saturation*/gh-actions-benchmark/*.json | ||
| - name: Upload idle state results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: idle-state-nightly-results | ||
| path: tools/pipeline_perf_test/results/idle_state*/gh-actions-benchmark/*.json | ||
| - name: Upload idle state memory scaling metrics | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: idle-memory-scaling-nightly-results | ||
| path: tools/pipeline_perf_test/results/idle-memory-scaling.json | ||
| - name: Upload scaling efficiency metrics | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: scaling-efficiency-nightly-results | ||
| path: tools/pipeline_perf_test/results/scaling-efficiency.json | ||
| - name: Upload passthrough results for processing | ||
| if: ${{ !cancelled() }} | ||
| uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1 | ||
| with: | ||
| name: passthrough-nightly-results | ||
| path: tools/pipeline_perf_test/results/continuous_passthrough/gh-actions-benchmark/*.json | ||
| - name: Add benchmark link to job summary | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| echo "### Benchmark Results" >> $GITHUB_STEP_SUMMARY | ||
| echo "[View the benchmark results here](https://open-telemetry.github.io/otel-arrow/benchmarks/nightly/)" >> $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 otelarrowcol 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] | ||
| if: ${{ !cancelled() }} | ||
| permissions: | ||
| # contents permission to update benchmark contents in gh-pages branch | ||
| contents: write | ||
| steps: | ||
| - uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0 | ||
| - name: Download syslog artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: syslog-nightly-results* | ||
| merge-multiple: true | ||
| path: syslog_results | ||
| - name: Download syslog TCP artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: syslog-tcp-nightly-results* | ||
| merge-multiple: true | ||
| path: syslog_tcp_results | ||
| - name: Download standard load batch size artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: standardload-batch-size-nightly-results* | ||
| merge-multiple: true | ||
| path: standardload_batch_size_results | ||
| - name: Download backpressure artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: backpressure-nightly-results* | ||
| merge-multiple: true | ||
| path: backpressure_results | ||
| - name: Download filter artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: filter-nightly-results* | ||
| merge-multiple: true | ||
| path: filter_results | ||
| - name: Download batch processor artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: batch-processor-nightly-results* | ||
| merge-multiple: true | ||
| path: batch_processor_results | ||
| - name: Download otelcol filter artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: filter-otelcol-results* | ||
| merge-multiple: true | ||
| path: filter_otelcol_results | ||
| - name: Download otelcol syslog TCP artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: syslog-tcp-otelcol-results* | ||
| merge-multiple: true | ||
| path: syslog_tcp_otelcol_results | ||
| - name: Download saturation artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: saturation-nightly-results* | ||
| merge-multiple: true | ||
| path: saturation_results | ||
| - name: Download idle state artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: idle-state-nightly-results* | ||
| merge-multiple: true | ||
| path: idle_state_results | ||
| - name: Download idle memory scaling artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: idle-memory-scaling-nightly-results* | ||
| merge-multiple: true | ||
| path: idle_memory_scaling_results | ||
| - name: Download scaling efficiency metrics | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: scaling-efficiency-nightly-results* | ||
| merge-multiple: true | ||
| path: scaling_efficiency_results | ||
| - name: Download passthrough artifacts | ||
| uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1 | ||
| with: | ||
| pattern: passthrough-nightly-results* | ||
| merge-multiple: true | ||
| path: passthrough_results | ||
| - name: Consolidate syslog benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh syslog_results syslog_output.json | ||
| - name: Consolidate syslog TCP benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh syslog_tcp_results syslog_tcp_output.json | ||
| - name: Consolidate standard load batch size benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh standardload_batch_size_results standardload_batch_size_output.json | ||
| - name: Consolidate backpressure benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh backpressure_results backpressure_output.json | ||
| - name: Consolidate filter benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh filter_results filter_output.json | ||
| - name: Consolidate batch processor benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh batch_processor_results batch_processor_output.json | ||
| - name: Consolidate otelcol filter benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh filter_otelcol_results filter_otelcol_output.json | ||
| - name: Consolidate otelcol syslog TCP benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh syslog_tcp_otelcol_results syslog_tcp_otelcol_output.json | ||
| - name: Consolidate saturation benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh saturation_results saturation_output.json | ||
| - name: Consolidate idle state benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh idle_state_results idle_state_output.json | ||
| - name: Consolidate passthrough benchmark data | ||
| if: ${{ !cancelled() }} | ||
| run: | | ||
| bash ./.github/workflows/scripts/consolidate-benchmarks.sh passthrough_results passthrough_output.json | ||
| - name: Update benchmark data | ||
| if: ${{ !cancelled() && hashFiles('syslog_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: syslog_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/syslog" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update syslog TCP benchmark data | ||
| if: ${{ !cancelled() && hashFiles('syslog_tcp_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: syslog_tcp_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/syslog-tcp" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update standard load batch size benchmark data | ||
| if: ${{ !cancelled() && hashFiles('standardload_batch_size_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: standardload_batch_size_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/standardload-batch-size" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update benchmark data and deploy to GitHub Pages | ||
| if: ${{ !cancelled() && hashFiles('backpressure_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: backpressure_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/backpressure" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update filter benchmark data | ||
| if: ${{ !cancelled() && hashFiles('filter_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: filter_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/filter" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update batch processor benchmark data | ||
| if: ${{ !cancelled() && hashFiles('batch_processor_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: batch_processor_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/batch-processor" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update filter otelcol benchmark data | ||
| if: ${{ !cancelled() && hashFiles('filter_otelcol_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: filter_otelcol_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/filter" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update syslog TCP otelcol benchmark data | ||
| if: ${{ !cancelled() && hashFiles('syslog_tcp_otelcol_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: syslog_tcp_otelcol_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/syslog-tcp-otelcol" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update saturation benchmark data | ||
| if: ${{ !cancelled() && hashFiles('saturation_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: saturation_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/saturation" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update idle state benchmark data | ||
| if: ${{ !cancelled() && hashFiles('idle_state_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: idle_state_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/idle-state" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update idle state memory scaling data | ||
| if: ${{ !cancelled() && hashFiles('idle_memory_scaling_results/idle-memory-scaling.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: idle_memory_scaling_results/idle-memory-scaling.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/idle-memory-scaling" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update scaling efficiency data | ||
| if: ${{ !cancelled() && hashFiles('scaling_efficiency_results/scaling-efficiency.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customBiggerIsBetter" | ||
| output-file-path: scaling_efficiency_results/scaling-efficiency.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/nightly/scaling-efficiency" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - name: Update passthrough benchmark data | ||
| if: ${{ !cancelled() && hashFiles('passthrough_output.json') != '' }} | ||
| uses: benchmark-action/github-action-benchmark@52576c92bccf6ac60c8223ec7eb2565637cae9ba # v1.22.1 | ||
| with: | ||
| tool: "customSmallerIsBetter" | ||
| output-file-path: passthrough_output.json | ||
| gh-pages-branch: benchmarks | ||
| max-items-in-chart: 100 | ||
| github-token: ${{ secrets.GITHUB_TOKEN }} | ||
| benchmark-data-dir-path: "docs/benchmarks/continuous-passthrough" | ||
| auto-push: true | ||
| save-data-file: true | ||
| - 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/nightly/)" >> $GITHUB_STEP_SUMMARY | ||