Skip to content

Weekly medic benchmark #25

Weekly medic benchmark

Weekly medic benchmark #25

name: Weekly medic benchmark
on:
workflow_dispatch: { }
schedule:
# Runs at 1am every monday https://crontab.guru/#0_1_*_*_1
- cron: 0 1 * * 1
jobs:
delete-old-benchmarks:
runs-on: ubuntu-latest
permissions:
contents: 'read'
id-token: 'write'
steps:
- uses: google-github-actions/auth@v1
with:
workload_identity_provider: 'projects/628707732411/locations/global/workloadIdentityPools/zeebe-gh-actions/providers/gha-provider'
service_account: '[email protected]'
- uses: google-github-actions/[email protected]
with:
cluster_name: zeebe-cluster
location: europe-west1-b
- name: Collect benchmark data
id: data
run: |
# Get all namespaces, filter for medic benchmarks and select the oldest one
echo "normal=$(kubectl get ns -o name | grep -E namespace/medic-y-[0-9]+-cw-[0-9]+-[a-z0-9]+-benchmark$ | sort -V | head -n1)" >> $GITHUB_OUTPUT
- name: Delete benchmarks
run: |
kubectl delete ${{ steps.data.outputs.normal }}
kubectl delete ${{ steps.data.outputs.normal }}-mixed
kubectl delete ${{ steps.data.outputs.normal }}-latency
benchmark-data:
name: Collect benchmark data
runs-on: ubuntu-latest
outputs:
full-ref: ${{ steps.data.outputs.full-ref }}
benchmark: ${{ steps.data.outputs.benchmark }}
steps:
- uses: actions/checkout@v3
- name: Collect benchmark data
id: data
run: |
echo "full-ref"=$(git rev-parse HEAD) >> $GITHUB_OUTPUT
echo "benchmark=medic-y-$(date +%Y)-cw-$(date +%V)-$(git rev-parse --short HEAD)-benchmark" >> $GITHUB_OUTPUT
setup-normal-benchmark:
name: Normal Benchmark
needs:
- benchmark-data
- delete-old-benchmarks
uses: ./.github/workflows/benchmark.yml
secrets: inherit
with:
name: ${{ needs.benchmark-data.outputs.benchmark }}
cluster: zeebe-cluster
cluster-region: europe-west1-b
ref: ${{ needs.benchmark-data.outputs.full-ref }}
publish: "slack"
setup-mixed-benchmark:
name: Mixed Benchmark
uses: ./.github/workflows/benchmark.yml
secrets: inherit
needs:
- benchmark-data
- delete-old-benchmarks
with:
name: ${{ needs.benchmark-data.outputs.benchmark }}-mixed
cluster: zeebe-cluster
cluster-region: europe-west1-b
ref: ${{ needs.benchmark-data.outputs.full-ref }}
measure: false
benchmark-load: >
--set starter.rate=25
--set timer.replicas=1
--set timer.rate=25
--set publisher.replicas=1
--set publisher.rate=25
setup-latency-benchmark:
name: Latency Benchmark
uses: ./.github/workflows/benchmark.yml
secrets: inherit
needs:
- benchmark-data
- delete-old-benchmarks
with:
name: ${{ needs.benchmark-data.outputs.benchmark }}-latency
cluster: zeebe-cluster
cluster-region: europe-west1-b
ref: ${{ needs.benchmark-data.outputs.full-ref }}
measure: false
benchmark-load: >
--set starter.rate=1
--set worker.replicas=1