pyroscope.ebpf: Retry after eBPF errors and buffer config updates.#3381
pyroscope.ebpf: Retry after eBPF errors and buffer config updates.#3381simonswine merged 5 commits intomainfrom
Conversation
312558c to
9e1854d
Compare
|
@JohanLindvall wonder if this fixes your problem and/or gives you a better error message? |
@simonswine With these changes our Alloy Pyroscope scrapers have been running for a few hours without any issues. I have not seen any of the new error messages logged. |
|
This PR has not had any activity in the past 30 days, so the |
If the eBPF component encounter an error, it stops the main processing loops, which then caused issues because any config reload for alloy would block the whole agent. Fixes #3332 Also for long running scrapes we were blocking the component evaluation as we are waiting for the config to be updated. I switched this to be a buffered channel, so the config updated are unblocked. In case of multiple updated buffered it will skip the in between updates and go straight to the latest version. Fixes #1371
9e1854d to
19591e0
Compare
|
I have built an image with the changes from this PR: In case someone wants to try: |
19591e0 to
8d79504
Compare
aleks-p
left a comment
There was a problem hiding this comment.
Looks good to me. I noticed the added error logging which is great. I would consider adding Info and Debug logs in a few select places to better understand what happens during important state transitions.
|
The backport to To backport manually, run these commands in your terminal: # Fetch latest updates from GitHub
git fetch
# Create a new branch
git switch --create backport-3381-to-release/v1.8 origin/release/v1.8
# Cherry-pick the merged commit of this pull request and resolve the conflicts
git cherry-pick -x 9c21229be370614d21f9cc4251aae85b4e689cba
# Push it to GitHub
git push --set-upstream origin backport-3381-to-release/v1.8
git switch main
# Remove the local backport branch
git branch -D backport-3381-to-release/v1.8Then, create a pull request where the |
…rafana#3381) * fix: Keep ebpf component loop running If the eBPF component encounter an error, it stops the main processing loops, which then caused issues because any config reload for alloy would block the whole agent. Fixes grafana#3332 Also for long running scrapes we were blocking the component evaluation as we are waiting for the config to be updated. I switched this to be a buffered channel, so the config updated are unblocked. In case of multiple updated buffered it will skip the in between updates and go straight to the latest version. Fixes grafana#1371 * Fix data racec in test * Limit tries to start an ebpf session * Add info logs at session start/end * Pass context around to shutdown properly (cherry picked from commit 9c21229)
…rafana#3381) * fix: Keep ebpf component loop running If the eBPF component encounter an error, it stops the main processing loops, which then caused issues because any config reload for alloy would block the whole agent. Fixes grafana#3332 Also for long running scrapes we were blocking the component evaluation as we are waiting for the config to be updated. I switched this to be a buffered channel, so the config updated are unblocked. In case of multiple updated buffered it will skip the in between updates and go straight to the latest version. Fixes grafana#1371 * Fix data racec in test * Limit tries to start an ebpf session * Add info logs at session start/end * Pass context around to shutdown properly (cherry picked from commit 9c21229)
…3381) * fix: Keep ebpf component loop running If the eBPF component encounter an error, it stops the main processing loops, which then caused issues because any config reload for alloy would block the whole agent. Fixes #3332 Also for long running scrapes we were blocking the component evaluation as we are waiting for the config to be updated. I switched this to be a buffered channel, so the config updated are unblocked. In case of multiple updated buffered it will skip the in between updates and go straight to the latest version. Fixes #1371 * Fix data racec in test * Limit tries to start an ebpf session * Add info logs at session start/end * Pass context around to shutdown properly
* pyroscope.ebpf: Retry after eBPF errors and buffer config updates. (#3381) * fix: Keep ebpf component loop running If the eBPF component encounter an error, it stops the main processing loops, which then caused issues because any config reload for alloy would block the whole agent. Fixes #3332 Also for long running scrapes we were blocking the component evaluation as we are waiting for the config to be updated. I switched this to be a buffered channel, so the config updated are unblocked. In case of multiple updated buffered it will skip the in between updates and go straight to the latest version. Fixes #1371 * Fix data racec in test * Limit tries to start an ebpf session * Add info logs at session start/end * Pass context around to shutdown properly * fix(pyroscope.scrape): godeltaprof scraping (#3542) * fix(pyroscope.scrape): godeltaprof scraping * cl * update changelog --------- Co-authored-by: Christian Simon <simon@swine.de> Co-authored-by: Tolya Korniltsev <korniltsev.anatoly@gmail.com>
If the eBPF component encounters an error, it stops the main processing loops, which then caused issues because any config reload for alloy would block the whole agent.
Fixes #3332
Also for long running scrapes we were blocking the component evaluation as we are waiting for the config to be updated. I switched this to be a buffered channel, so the config updated are unblocked. In case of multiple updated buffered it will skip the in between updates and go straight to the latest version.
Fixes #1371