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

feat: agent - eBPF Persist Java symbol table (#7325) #7522

Merged
merged 1 commit into from
Jul 23, 2024

Conversation

yinjiping
Copy link
Contributor

  • feat: agent - eBPF Persist Java symbol table

  • JAVA symbol persist adapt to repeated agent restarts

  • Add non-blocking mode for java agent.so

Add exception handling for JAVA agent transmission and ensure timely delivery of information to the file

  • Socket send adjustments, adding meta send

  • Add check for HotSpot/OpenJ9 JVM dependency file

  • Because it's persistent, multiple agents cannot run simultaneously

To determine if the profiler is already running, at any given time, only one profiler can be active due to the persistence required for Java symbol generation, which is incompatible with multiple agents.

  • To detect the disconnection of the target Java program and output logs

  • Add handling for the 'JVMTI_EVENT_COMPILED_METHOD_UNLOAD' event

  • Fix the issue where attach is not possible

  • Unified Log Output

  • Implementing thread pool management mechanism

  • After attaching, clean up the residual files in the target JAVA namespace

  • Adjustments to Profile JAVA-related configuration items

  • Modify Java-symbol file generation call interface and adjust the compilation

  • Modify log output for deepflow-agent check & Modify comment

  • JVM agent error handling

  • Adjust the Java symbol collection program

  • Perform the attach operation using the command line

  • Rename files related to Java symbol collection

  • Prevent excessive log output

  • Add error handling to increase code robustness.

  • Modify the method for checking if the deepflow-agent process is running

  • Modify comment

  • Adjust thread identification Conflicts:
    agent/src/ebpf/user/config.h
    agent/src/ebpf/user/profile/perf_profiler.h
    agent/src/ebpf/user/profile/profile_common.c

This PR is for:

  • Agent

Affected branches

  • main
  • v6.5

* feat: agent - eBPF Persist Java symbol table

* JAVA symbol persist adapt to repeated agent restarts

* Add non-blocking mode for java agent.so

Add exception handling for JAVA agent transmission and ensure timely delivery of information to the file

* Socket send adjustments, adding meta send

* Add check for HotSpot/OpenJ9 JVM dependency file

* Because it's persistent, multiple agents cannot run simultaneously

To determine if the profiler is already running, at any given time, only
one profiler can be active due to the persistence required for Java symbol
generation, which is incompatible with multiple agents.

* To detect the disconnection of the target Java program and output logs

* Add handling for the 'JVMTI_EVENT_COMPILED_METHOD_UNLOAD' event

* Fix the issue where attach is not possible

* Unified Log Output

* Implementing thread pool management mechanism

* After attaching, clean up the residual files in the target JAVA namespace

* Adjustments to Profile JAVA-related configuration items

* Modify Java-symbol file generation call interface and adjust the compilation

* Modify log output for deepflow-agent check & Modify comment

* JVM agent error handling

* Adjust the Java symbol collection program

* Perform the attach operation using the command line

* Rename files related to Java symbol collection

* Prevent excessive log output

* Add error handling to increase code robustness.

* Modify the method for checking if the deepflow-agent process is running

* Modify comment

* Adjust thread identification
Conflicts:
	agent/src/ebpf/user/config.h
	agent/src/ebpf/user/profile/perf_profiler.h
	agent/src/ebpf/user/profile/profile_common.c
@sharang sharang enabled auto-merge (rebase) July 23, 2024 12:01
@yinjiping yinjiping requested a review from sharang July 23, 2024 12:02
@sharang sharang merged commit 07b93ac into main Jul 23, 2024
10 checks passed
@sharang sharang deleted the Persist_java_syms_main branch July 23, 2024 12:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants