Skip to content

feat: adapt statsd integration test to not exclude histograms anymore… #370

feat: adapt statsd integration test to not exclude histograms anymore…

feat: adapt statsd integration test to not exclude histograms anymore… #370

Workflow file for this run

name: load-tests
on:
push:
branches: [main]
tags:
- "v[0-9]+.[0-9]+.[0-9]+*"
paths-ignore:
- "**/README.md"
workflow_dispatch:
env:
# renovate: datasource=golang-version depName=go
GO_VERSION: "1.23.3"
jobs:
setup-environment:
timeout-minutes: 30
runs-on: ubuntu-24.04
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
check-latest: true
cache: false
- name: Cache tools
id: cache-tools
uses: actions/cache@v4
with:
path: .tools
key: load-test-tools-${{ runner.os }}-${{ hashFiles('internal/tools/go.sum') }}
- name: Install tools
if: steps.cache-tools.outputs.cache-hit != 'true'
run: |
mkdir -p .tools
touch .tools/*
make install-tools
- name: Cache Go modules
id: go-cache
timeout-minutes: 5
uses: actions/cache@v4
with:
path: |
~/go/bin
~/go/pkg/mod
~/.cache/go-build
key: loadtest-mods-${{ runner.os }}-${{ hashFiles('internal/oteltestbedcol/go.sum') }}
- run: make oteltestbedcol
- name: Upload Testbed Binaries
uses: actions/upload-artifact@v4
with:
name: testbed-binaries
path: ./bin/*
loadtest:
runs-on: "Linux-x64-16-64GB-Runner" # Ubuntu 24.04
needs: [setup-environment]
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
check-latest: true
cache: false
- name: Cache tools
id: cache-tools
uses: actions/cache@v4
with:
path: .tools
key: load-test-tools-${{ runner.os }}-${{ hashFiles('internal/tools/go.sum') }}
- name: Install tools
if: steps.cache-tools.outputs.cache-hit != 'true'
run: |
mkdir -p .tools
touch .tools/*
make install-tools
- name: Create results folder
run: mkdir -p results && touch results/TESTRESULTS.md
- name: Download Testbed Binaries
uses: actions/download-artifact@v4
with:
name: testbed-binaries
path: bin/
- name: Make Testbed Binaries executable
run: chmod +x bin/*
- name: Loadtest
run: make run-load-tests
- name: Create Test Result Archive
if: ${{ failure() || success() }}
continue-on-error: true
run: tar -cvf test_results_load-tests.tar internal/testbed/load/tests/results
- name: Upload Test Results
if: ${{ failure() || success() }}
continue-on-error: true
uses: actions/upload-artifact@v4
with:
name: test-result-archive-load-tests
path: ./*.tar
- name: Copy Benchmarks
run: cp internal/testbed/load/tests/results/benchmarks.json internal/testbed/load/tests/results/load-tests.json
- name: Upload benchmarks.json
uses: actions/upload-artifact@v4
with:
name: benchmark-results-load-tests
path: internal/testbed/load/tests/results/load-tests.json
notify-slack:
runs-on: ubuntu-24.04
needs: [loadtest]
if: failure() && github.event_name == 'push'
steps:
- name: Slack Notification
uses: rtCamp/[email protected]
env:
SLACK_WEBHOOK: ${{ secrets.SLACK_WEBHOOK }}
SLACK_TITLE: "DT OTel Collector Distro - Loadtest Failure"
SLACK_COLOR: "failure"
SLACK_USERNAME: "GitHub Actions Notifier"
SLACK_ICON: "https://cdn.jsdelivr.net/gh/walkxcode/dashboard-icons/png/github.png"
update-benchmarks:
runs-on: ubuntu-24.04
needs: [loadtest]
if: github.event_name == 'push'
steps:
- name: Check out code
uses: actions/checkout@v4
- name: Download Benchmark results
uses: actions/download-artifact@v4
with:
pattern: benchmark-results-*
merge-multiple: true
path: results
- name: Normalize results
run: jq -s 'map(.[])' results/*.json > output.json
- name: Benchmark
uses: benchmark-action/github-action-benchmark@v1
with:
tool: "customSmallerIsBetter"
output-file-path: output.json
gh-pages-branch: benchmarks
max-items-in-chart: 100
github-token: ${{ secrets.GITHUB_TOKEN }}
benchmark-data-dir-path: "docs/benchmarks/loadtests"
auto-push: true