跳到主要内容

Profiling 采集配置

Profiling 采集用于对服务实例进行性能剖析,支持通过自定义规则精准控制采集范围,默认不采集任何服务实例数据,需通过自定义规则显式指定采集范围。平台仅适配指定版本 Java、Python 探针,使用前需满足 JDK 版本要求并完成探针启用,避免 JVM 崩溃风险。

核心能力

  • 精准范围控制:通过自定义规则按服务、服务实例、进程组、标签等维度灵活指定 Java 实例的采集范围,避免全量采集带来的资源消耗与崩溃风险。
  • 优先级规则引擎:支持创建多条采集规则并设置优先级,序号越小优先级越高,命中第一条匹配规则后即执行对应采集策略。
  • 多层风险管控:在开关启用、规则创建/编辑、规则启用等关键操作节点均设有风险提示与确认弹窗,降低 JVM 崩溃风险。
  • 完整操作审计:创建、编辑、删除、启用/禁用规则及优先级调整均记录至操作日志,便于追溯变更。

使用场景

场景一 新服务上线性能摸底:对某个新部署的 Java 服务开启 Profiling 采集,快速识别启动阶段的热点方法,缩短性能调优周期。

场景二 线上偶发慢请求排查:针对存在慢请求的特定服务实例配置采集规则,在不影响其他实例的前提下采集剖析数据,定位根因后及时关闭采集,控制资源开销。

场景三 分级管控多团队服务:通过服务标签区分不同团队的服务,为核心团队配置"采集"规则、为边缘服务配置"不采集"规则,实现精细化的 Profiling 资源分配。

开始使用

前置准备

在使用 Profiling 采集配置前,需完成以下准备:

  1. 部署 Profiling 探针:进入部署配置 → 安装部署 → SmartAgent,勾选启用 Profiling 探针。

    1776592874654

  2. 确认 JDK 版本(Java 实例必须满足):

    JDK 发行版最低版本要求
    OpenJDK8u352+、11.0.17+、17.0.5+
    Oracle JDK8u352+、11.0.17+、17.0.5+
    OpenJ9 JDK8u372+、11.0.18+、17.0.6+
  3. 推荐组合:新探针(Java ≥ 9.10.0 / Python ≥ 8.3.0)配合 3.9.0.0+ 平台,可使用自定义规则精确控制采集范围,风险最低。

注意

老探针与新平台组合下,探针无法识别新平台的自定义规则,将对所有实例执行全量采集,JVM 崩溃风险极高,请谨慎升级。

启用 Profiling 采集

进入部署配置 → 规则配置 → 数据采集 → Profiling,开启 Profiling 采集总开关。

  • 首次开启时,平台将弹窗提示 JDK 版本要求与 JVM 崩溃风险,确认后方可开启。

  • 总开关关闭时,所有自定义规则均不生效,平台按默认规则执行(即不采集任何数据)。

    1776590752396

创建自定义规则

  1. 在 Profiling 页面点击创建按钮。

  2. 配置生效范围:从以下 5 种条件中选择一种或多种,条件关系可设为"与"或"或":

    • 服务 / 服务实例 / 进程组:精确多选,下拉列表仅展示 Java 类型数据。
    • 服务标签 / 进程组标签:支持"包含全部"或"包含任意"匹配方式。
  3. 设置采集规则:选择对匹配实例执行采集不采集

  4. 填写描述(自定义输入)。

  5. 点击保存,若采集规则为"采集",将弹窗提示 JVM 崩溃风险,确认后规则生效。

    1776590811332

    1776591139124

管理规则

以列表形式平铺展示全部自定义采集规则,支持以下操作:

操作说明
调整优先级通过上移/下移按钮调整规则顺序,序号越小优先级越高
启用/禁用启用规则时(无论采集/不采集)均弹窗提示风险确认
编辑修改生效范围、采集规则或描述,"采集"类规则保存前弹窗确认
删除二次确认后删除,操作不可恢复,删除结果以通知形式告知

1776591165634

1776591205653

特殊说明

提示

服务生效范围: 当前仅支持 Java(探针 ≥ 9.10.0)Python(探针 ≥ 8.3.0) 类型实例的Profiling数据采集。

自定义采集规则生效范围: 自定义采集规则仅对 Java 实例生效;Python 实例的采集范围完全由 SmartAgent 开关控制。

平台版本:要求3.9.0.0 及以上版本。

默认规则不可修改:默认规则为"不采集任何实例",无启用/禁用开关,当实例不命中任何自定义规则时,按默认规则执行。