diff --git a/.github/workflows/benchmark.yml b/.github/workflows/benchmark.yml index 88aa112db4..6d73787d00 100644 --- a/.github/workflows/benchmark.yml +++ b/.github/workflows/benchmark.yml @@ -59,85 +59,42 @@ jobs: docker compose up -d sleep 10 - name: Install Oha - run: > - echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] - http://packages.azlux.fr/debian/ stable main" | sudo tee - /etc/apt/sources.list.d/azlux.list - - sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg - https://azlux.fr/repo.gpg - + run: | + echo "deb [signed-by=/usr/share/keyrings/azlux-archive-keyring.gpg] http://packages.azlux.fr/debian/ stable main" | sudo tee /etc/apt/sources.list.d/azlux.list + sudo wget -O /usr/share/keyrings/azlux-archive-keyring.gpg https://azlux.fr/repo.gpg sudo apt update - sudo apt install oha - name: Benchmark PR run: 'oha -z 180s http://localhost/v1/health/version -j > benchmark.json' - name: Cleaning run: docker compose down -v - name: Installing latest version - run: > + run: | rm docker-compose.yml - rm .env - curl https://appwrite.io/install/compose -o docker-compose.yml - curl https://appwrite.io/install/env -o .env - - sed -i 's/_APP_OPTIONS_ABUSE=enabled/_APP_OPTIONS_ABUSE=disabled/g' - .env - + sed -i 's/_APP_OPTIONS_ABUSE=enabled/_APP_OPTIONS_ABUSE=disabled/g' .env docker compose up -d - sleep 10 - name: Benchmark Latest - run: >- - oha -z 180s http://localhost/v1/health/version -j > - benchmark-latest.json + run: oha -z 180s http://localhost/v1/health/version -j > benchmark-latest.json - name: Prepare comment - run: > + run: | echo '## :sparkles: Benchmark results' > benchmark.txt - echo ' ' >> benchmark.txt - - echo "- Requests per second: $(jq -r - '.summary.requestsPerSec|tonumber?|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' - benchmark.json)" >> benchmark.txt - - echo "- Requests with 200 status code: $(jq -r - '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' - benchmark.json)" >> benchmark.txt - - echo "- P99 latency: $(jq -r '.latencyPercentiles.p99' benchmark.json - )" >> benchmark.txt - + echo "- Requests per second: $(jq -r '.summary.requestsPerSec|tonumber?|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json)" >> benchmark.txt + echo "- Requests with 200 status code: $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json)" >> benchmark.txt + echo "- P99 latency: $(jq -r '.latencyPercentiles.p99' benchmark.json )" >> benchmark.txt echo " " >> benchmark.txt - echo " " >> benchmark.txt - echo "## :zap: Benchmark Comparison" >> benchmark.txt - echo " " >> benchmark.txt - echo "| Metric | This PR | Latest version | " >> benchmark.txt - echo "| --- | --- | --- | " >> benchmark.txt - - echo "| RPS | $(jq -r - '.summary.requestsPerSec|tonumber?|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' - benchmark.json) | $(jq -r - '.summary.requestsPerSec|tonumber|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' - benchmark-latest.json) | " >> benchmark.txt - - echo "| 200 | $(jq -r - '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' - benchmark.json) | $(jq -r - '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' - benchmark-latest.json) | " >> benchmark.txt - - echo "| P99 | $(jq -r '.latencyPercentiles.p99' benchmark.json ) | - $(jq -r '.latencyPercentiles.p99' benchmark-latest.json ) | " >> - benchmark.txt + echo "| RPS | $(jq -r '.summary.requestsPerSec|tonumber?|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json) | $(jq -r '.summary.requestsPerSec|tonumber|floor|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark-latest.json) | " >> benchmark.txt + echo "| 200 | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark.json) | $(jq -r '.statusCodeDistribution."200"|tostring|[while(length>0;.[:-3])|.[-3:]]|reverse|join(",")' benchmark-latest.json) | " >> benchmark.txt + echo "| P99 | $(jq -r '.latencyPercentiles.p99' benchmark.json ) | $(jq -r '.latencyPercentiles.p99' benchmark-latest.json ) | " >> benchmark.txt - name: Save results uses: actions/upload-artifact@v4 if: '${{ !cancelled() }}'