diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 348914c92..fcb20efd6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -58,28 +58,27 @@ jobs: - name: run tox run: tox -f ${{ matrix.python-version }}-${{ matrix.package }} -- --benchmark-json=${{ env.RUN_MATRIX_COMBINATION }}-benchmark.json - name: Find and merge benchmarks - # TODO: Add at least one benchmark to every package type to remove this + # TODO: Add at least one benchmark to every package type to remove this (#249) if: matrix.package == 'sdkextension' run: >- jq -s '.[0].benchmarks = ([.[].benchmarks] | add) | if .[0].benchmarks == null then null else .[0] end' **/**/tests/*${{ matrix.package }}*-benchmark.json > output.json - name: Report on benchmark results - # TODO: Add at least one benchmark to every package type to remove this + # TODO: Add at least one benchmark to every package type to remove this (#249) if: matrix.package == 'sdkextension' uses: rhysd/github-action-benchmark@v1 with: - name: OpenTelemetry Python Benchmarks - Python ${{ env[matrix.python-version ]}} - ${{ matrix.package-group }} + name: OpenTelemetry Python Benchmarks - Python ${{ env[matrix.python-version ]}} - ${{ matrix.package }} tool: pytest output-file-path: output.json github-token: ${{ secrets.GITHUB_TOKEN }} # Alert with a commit comment on possible performance regression alert-threshold: 200% - comment-always: true fail-on-alert: true # Make a commit on `gh-pages` with benchmarks from previous step auto-push: ${{ github.ref == 'refs/heads/master' }} - gh-pages-branch: master + gh-pages-branch: gh-pages benchmark-data-dir-path: benchmarks misc: strategy: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 322631c57..ddb72dcaf 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -51,7 +51,7 @@ for more detail on available tox commands. ### Benchmarks -Performance progression of benchmarks for packages distributed by OpenTelemetry Python can be viewed as a [graph of throughput vs commit history](https://open-telemetry.github.io/opentelemetry-python-contrib/benchmarks/index.html). From this page, you can download a JSON file with the performance results. +Performance progression of benchmarks for packages distributed by OpenTelemetry Python can be viewed as a [graph of throughput vs commit history](https://opentelemetry-python-contrib.readthedocs.io/en/latest/performance/benchmarks.html). From the linked page, you can download a JSON file with the performance results. Running the `tox` tests also runs the performance tests if any are available. Benchmarking tests are done with `pytest-benchmark` and they output a table with results to the console. diff --git a/docs/performance/benchmarks.rst b/docs/performance/benchmarks.rst new file mode 100644 index 000000000..428d5acbb --- /dev/null +++ b/docs/performance/benchmarks.rst @@ -0,0 +1,4 @@ +Performance Tests - Benchmarks +============================== + +Click `here _` to view the latest performance benchmarks for packages in this repo.