Updated on 2025-06-27 GMT+08:00

Overview

Constraints

  • Profiler performance analysis is available only to whitelisted users.
  • Alpine Linux does not support Profiler. Alpine Linux is a lightweight Linux distribution and does not have the dependencies for running Profiler. To use Profiler, you are advised to use the standard Linux OS.
  • To ensure stable application running, you are advised to upgrade the JDK version as required. If you use Profiler on the JDK of an earlier version, the application may break down.
    Table 1 JDK version description

    JDK Type

    Version

    OpenJDK

    • OpenJDK 8u352+
    • OpenJDK 17.0.5+

    Oracle JDK

    • Oracle JDK 17.0.9+
    Table 2 JavaAgent updates

    Agent Version

    Description

    2.4.17-profiler

    2.4.17-profiler-jdk17

    Updates of Agent 2.4.17-profiler/2.4.17-profiler-jdk17 and later versions:

    1. Supported trace generation based on the OpenTelemetry protocol.
    2. Fixed the issue that the gateway service returns multiple trace IDs.
    3. Fixed the issue that HttpClient collection is incomplete.
    4. Fixed the issue that the regular expression for external calls is invalid.

    2.4.16-profiler

    2.4.16-profiler-jdk17

    Updates of Agent 2.4.16-profiler/2.4.16-profiler-jdk17 and later versions:

    1. (SQL collector) Supported the setting and collection of slow SQL queries and database names.
    2. (URL collector) Supported exception counting by URL and exception type.
    Table 3 Constraints

    No.

    Constraint

    1

    Profiler is available only to whitelisted users. A maximum of 500 Profilers can be enabled in each environment.

    2

    The Profiler guide page is displayed only when you enable Profiler for the first time.

    3

    Profiler supports only Java.

    4

    If the value of -XX:MaxJavaStackTraceDepth is 0 or smaller, no Java stack will be collected.

    5

    • CPU Profiler depends on the perf_event_open system call. However, due to the Syscall security policy (seccomp) control of the Linux kernel, processes may be prohibited from calling specific Syscalls.
    • Docker environment: Run the following command to run the container. For details about refined system call control, see https://docs.docker.com/engine/security/seccomp/.
     docker run --security-opt seccomp=unconfined  XXX  
    • Kubernetes environment: Set privileged to true for a privileged container. The privileged container is always in the Unconfined state.

    For more refined system call control, see https://kubernetes.io/docs/tutorials/security/seccomp/.

    6

    Profiler allocates 8 KB perf_event buffer to each thread of the target process. However, the Linux kernel limits the perf_event related MMap memory. For a non-privileged user, run the following command to ensure that the value of /proc/sys/kernel/perf_event_mlock_kb is large enough: echo 8*threads+ 4 > /proc/sys/kernel/perf_event_mlock_kb

Impact on Performance

According to performance tests, when all diagnosis functions are enabled for Spring Web applications, the CPU overhead increases by about 5%, off-heap memory overhead increases by about 50 MB, and GC and request latency do not increase significantly.