Skip to content

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

Merged
sharang merged 1 commit intomainfrom
Persist_java_syms_main
Jul 23, 2024
Merged

feat: agent - eBPF Persist Java symbol table (#7325)#7522
sharang merged 1 commit intomainfrom
Persist_java_syms_main

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
@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