Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Benchmark and document tail-based sampling performance #11346

Open
Tracked by #14931
axw opened this issue Aug 7, 2023 · 1 comment
Open
Tracked by #14931

Benchmark and document tail-based sampling performance #11346

axw opened this issue Aug 7, 2023 · 1 comment

Comments

@axw
Copy link
Member

axw commented Aug 7, 2023

We have a good benchmarking setup for general apm-server ingest performance, but tail-based sampling is a bit of a blind spot. We have done this manually in the past, but we don't have a framework for repeatable testing of TBS.

Once we have a baseline performance established, we should then add to the public documentation. This should include details about disks used, and what kinds of disks are recommended; and expectations about disk and memory usage in relation to ingest rate and sampling rate, and specifically some guidance on setting tail sampling storage limit. Documentation on TBS performance should probably follow on from #7842.

We will need #7845. Assuming we use apmbench, we will need to enable -rewrite-ids to ensure trace.id and per-trace events are not repeated, which would affect TBS.

Note to whoever works on this:

  • We should look at how both disk reads and writes grow with both event ingest rate and sampling rate. Rate of writes is generally proportional to ingest rate, but rate of reads is expected to be proportional to the ingest * sampling rate.
  • We should compare Badger v2 (in use at the time of writing this) vs. v4 performance (proposed)
@carsonip
Copy link
Member

carsonip commented Jul 1, 2024

Adding links for posterity.

We should look at how both disk reads and writes grow with both event ingest rate and sampling rate. Rate of writes is generally proportional to ingest rate, but rate of reads is expected to be proportional to the ingest * sampling rate.

To be more exact, in a multi-apm-server setup, the expectation is that "Rate of writes is generally proportional to local ingest rate", ingest rate local to the apm-server under observation.

On the read side, the expectation is that "rate of reads is proportional to local ingest * sampling rate". However, before fix #13464, apm-server suffers from rate of reads proportional to global ingest * sampling rate, which means unscalable disk IO and memory usage.

We should compare Badger v2 (in use at the time of writing this) vs. v4 performance (proposed)

Related to #11546

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants