alloy icon indicating copy to clipboard operation
alloy copied to clipboard

Pyroscope: Bump async-profiler binaries for pyroscope.java

Open github-hamza-bouqal opened this issue 6 months ago • 1 comments

PR Description

Update the async-profiler binaries used in pyroscope.java to a newer nightly build to a newer nightly build that includes compatibility with Java 24.

Which issue(s) this PR fixes

Notes to the Reviewer

PR Checklist

  • [x] CHANGELOG.md updated
  • [ ] Documentation added
  • [ ] Tests updated
  • [ ] Config converters updated

github-hamza-bouqal avatar May 16 '25 12:05 github-hamza-bouqal

CLA assistant check
All committers have signed the CLA.

CLAassistant avatar May 16 '25 12:05 CLAassistant

cc @korniltsev

This looks good at a first glance. The tricky part is making sure the upgrade doesn't break anything. Unfortunately there are no integration tests for this right now, but have you tested it successfully @github-hamza-bouqal ?

aleks-p avatar May 27 '25 18:05 aleks-p

Just wanted to verify the source of the binaries

async-profiler-linux-arm64-7c3aa59.zip async-profiler-linux-x64-7c3aa59.zip async-profiler-macos-7c3aa59.zip

I've downloaded artifacts from here https://github.com/async-profiler/async-profiler/actions/runs/14999321181

Screenshot_20250528_113028

sha256sum async-profiler-*
5b56a0aa5cb632309bfc6ef8963954170c54c4e0145dc2d37eb7df5144e5ca57  async-profiler-linux-arm64-7c3aa59.zip
be3f3f64227de073f4f5e85127178916d06736a3ab756c232839028346b1d42a  async-profiler-linux-x64-7c3aa59.zip
67ee543e9676798f2685861597210e2c7930525af8a5c4e20e454809951782b7  async-profiler-macos-7c3aa59.zip

These archive contains this artifacts

sha256sum async-profiler-*
92e3d18dd55308f63f2cd467062c5ef7c960254e2351ad57955b21d3844f6722  async-profiler-4.0-7c3aa59-linux-arm64.tar.gz
6e0a351fa21ff937392f857176861f584ca8aa29404f92e7e07d87b8660ec64d  async-profiler-4.0-7c3aa59-linux-x64.tar.gz
17feca921903228bb73b81521248ad10c22d21b973da496af08c05d2d4f410f7  async-profiler-4.0-7c3aa59-macos.zip

which match the blobs in the PR :heavy_check_mark: .

korniltsev avatar May 28 '25 04:05 korniltsev

Hello @korniltsev , i changed the binaries to latest version which is 87b7b42, because while working with the Nightly build, I ran into an issue where a header file named asprof was being treated as a binary due to the asprof wrapper, This happened because of the use of strings.Contains(name, "asprof"), which started matching unintended binaries.

A cleaner solution is changing the check to name == "asprof" i'm planning to do it in a separate PR.

github-hamza-bouqal avatar Jun 06 '25 08:06 github-hamza-bouqal

Hi @aleks-p @korniltsev @dehaansa

I’ve completed testing the upgrade to async-profiler v4. I used the following setup:

Environment:

async-profiler version: 4.0 (Latest version which is `87b7b42`)

Instance type: c7g.8xlarge (Graviton3, 64 vCPUs, 64 GiB RAM)

OS: Ubuntu 22.04 (arm64)

JDK: Zulu OpenJDK 24.0.1

At Teads, we use Grafana Alloy to capture various signals—such as logs, traces, and metrics—and forward them to the appropriate backend. Each Alloy instance is deployed alongside the application container on every EC2 instance of a service.

I tested it on a service that handles more than 2,000 requests per second.

What I did:

  • Built the Alloy Docker image locally and pushed it to our ECR.

  • Deployed our service instance in the cloud using this custom image.

  • Enabled the profiler and restarted the Grafana backend to use the updated image.

Results:

  • Profiling works as expected.

  • Metrics are still being collected correctly.

  • Flamegraphs are generated without issues.

  • No errors or warnings were observed in the logs.

Everything appears stable after the upgrade. Let me know if there’s anything specific you'd like me to stress-test or validate further.

github-hamza-bouqal avatar Jun 06 '25 08:06 github-hamza-bouqal

Hello, we are facing unsafe access to zombie method error (same as https://github.com/async-profiler/async-profiler/issues/1168) while running pyroscope.java in alloy v1.9.1. It seems like async-profiler4.0 has fixed the problem. May I ask when this change will be released?

kun98-liu avatar Jun 27 '25 01:06 kun98-liu