vectordotdev / vectordotdev/vector-test-harness

Soak Tests but for Configs We Can't Share

Open
#76 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
HCL
Stars
33
Forks
10
PR merge metrics
No merged PRs in 30d

Description

Today in Vector we have a notion of a 'soak test'. The soak test is an all-up, integrated benchmark for vector. It runs Vector with known configurations, against stable load generation in a repeatable environment and measures the throughput from the load generation side, comparing two SHAs in the process in a statistically significant way. We use this to control regressions and detect if optimizations actually have an impact when Vector is fully assembled and the most susceptible to Amdahl's law. The underlying mechanism is simplistic: minikube, some quiet EC2 machines, a bit of terraform, custom load generation, analysis scripts and a Github Action workflow.

At a high level we have a need for both performance and reliability tests in the Vector project. They are:

a. short duration performance soak tests
b. long duration performance soak tests
c. long duration memory reliability soak tests
d. short/long private customer configuration replication soak tests
e. statistically viable comparisons with competitor setups in a soak testing environment

The soak tests today cover point 'a' well. Covering 'b' is a matter of extending the runtime of the existing soaks. Covering 'c' is a matter of capture memory data from the vector pod in-kube. Point 'd' is not approachable with our current soak notion, in that we require configurations to be public and checked into the vector repository. Theoretically point 'e' is approachable with our current setup, though no work has been done to achieve this.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

The current entry points are soaks/, soaks/bin/analyze_experiment, and .github/workflows/soak.yml; the infrastructure also uses minikube and Terraform. Start by tracing how configurations are supplied to the existing soak workflow and how experiments are analyzed. Done should be a repeatable soak path for private customer configurations while preserving the existing comparison and measurement behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, terraform
Domain
infrastructure, performance, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.