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

JVM support #1

Closed
brancz opened this issue Jul 9, 2021 · 12 comments
Closed

JVM support #1

brancz opened this issue Jul 9, 2021 · 12 comments
Labels
enhancement New feature or request feature/language-support This feature describes support for a new language/runtime.

Comments

@brancz
Copy link
Member

brancz commented Jul 9, 2021

This could be a built-in and pprof-integrated version of perf-map-agent and/or async-profiler.

Plan

  1. In Phase one, use async-profiler to profile JVM processes. Embed "async-profiler" to profile JVM processes #1115
  2. In Phase two, use the eBPF profiler to collect the profiles.
@brancz brancz added enhancement New feature or request feature/language-support This feature describes support for a new language/runtime. labels Jul 9, 2021
@cskinfill
Copy link

any progress with JVM support?

@brancz
Copy link
Member Author

brancz commented Nov 15, 2021

If the JVM is started with the above-linked perf-map-agent then soon there will be support. The important one is #101, but we still lack support for translating container PID to kernel-wide PID, I'm hoping to get to that this week. That said we want users not to have to do anything, so even when that does work, we will keep this open as we want parca-agent to do it all eventually.

@brancz
Copy link
Member Author

brancz commented Dec 9, 2021

Starting with the v0.3.0 release if the perf-map agent is used, then JVM can be profiled with parca-agent today!

@brancz
Copy link
Member Author

brancz commented Dec 15, 2021

Looks like there is also some precedence of profilers at the intersection of eBPF and java, that some inspiration could come from: https://github.com/weixingsun/jBProF

@kakkoyun kakkoyun self-assigned this Oct 10, 2022
@petr-postulka
Copy link

Hi, is there any update for this ticket? Any ETA when JVM profiling is supported by parca-agent by default?

@kakkoyun
Copy link
Member

kakkoyun commented Nov 2, 2022

We just started working on this. We plan to land an initial support before this year ends.

@Hixon10
Copy link

Hixon10 commented Nov 12, 2022

FYI: Maybe https://github.com/grafana/JPProf helps somehow with implementation for given task.

@kakkoyun
Copy link
Member

FYI: Maybe https://github.com/grafana/JPProf helps somehow with implementation for given task.

Thanks for the suggestion. JPProf is a library you need to add to your application, so it's instrumentation. We are planning to provide an experience where you don't need to change anything in your application :)

@fzyzcjy
Copy link

fzyzcjy commented Jul 8, 2023

Hi, is there any updates (after two years)? This project looks quite interesting, and I hope to use it in my environment!

@brancz
Copy link
Member Author

brancz commented Jul 8, 2023

We’re making progress and a first integrated version should be only a few weeks away.

Just to be clear though, you have always been able to profile Java workloads by enabling these flags: https://github.com/parca-dev/parca-demo/blob/882b4e77496507ec4b0b839df5dd15c6beff8dd2/java/Dockerfile#L19

@v-thakkar v-thakkar removed their assignment Aug 29, 2023
@kakkoyun kakkoyun self-assigned this Sep 28, 2023
kakkoyun added a commit that referenced this issue Mar 4, 2024
- **[WIP] Java integration test**
- **Add Java integration tests**

We still expect these tests to fail.

cc @gnurizen 

ref: #1
@gnurizen gnurizen mentioned this issue Mar 25, 2024
@xpbob
Copy link

xpbob commented May 28, 2024

Hi, I am very interested in this JVM support. Is there any new progress?

@kakkoyun kakkoyun removed their assignment May 30, 2024
@gnurizen
Copy link
Contributor

New agent supports JVM w/o any instrumentation necessary.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request feature/language-support This feature describes support for a new language/runtime.
Projects
None yet
Development

No branches or pull requests

9 participants