第 4 章 使用 Cryostat 创建 JFR 记录
使用 Cryostat,您可以创建一个 JDK Flight Recorder (JFR)记录,该记录监控容器化应用程序中的 JVM 性能。另外,您可以为目标 JVM 应用程序生成活跃的 JFR 记录的快照,以捕获任何收集的数据(最多指向特定时间)。
4.1. 在 Cryostat web 控制台中创建 JFR 记录
您可以创建一个 JFR 记录,以监控容器化应用程序中的 JVM 性能。创建 JFR 记录后,您可以启动 JFR 来捕获 JVM 的实时数据,如堆和非堆内存使用量。
先决条件
- 使用 OperatorHub 选项在 Red Hat OpenShift 上安装 Cryostat 4.0。
- 在 Red Hat OpenShift 项目中创建一个 Cryostat 实例。
- 登录到您的 Cryostat web 控制台。 - 您可以使用 Red Hat OpenShift Web 控制台检索 Cryostat 应用程序的 URL。
 
流程
- 在 Cryostat web 控制台的 Dashboard 面板中,从 Target 列表中选择目标 JVM。 注意- 根据您配置目标应用程序的方式,您的目标 JVM 可能会使用 JMX 连接或代理 HTTP 连接。有关配置目标应用程序的更多信息,请参阅配置 Java 应用程序。 重要- 如果您的目标 JVM 使用您手动配置的代理 HTTP 连接,请确保将目标应用程序配置为加载 Cryostat 代理时将 - cryostat.agent.api.writes-enabled属性设置为- true。否则,Cryostat 代理无法接受启动和停止 JFR 记录的请求。或者,如果希望 Cryostat Operator 自动配置代理,请确保将- cryostat.io/name和- cryostat.io/namespace标签添加到应用程序部署中。有关 Cryostat 代理配置的更多信息,请参阅使用 Cryostat 代理。- 图 4.1. 为 Cryostat 实例选择 Target JVM 的示例 
- 可选: 在 Dashboard 面板中,您可以创建一个目标 JVM。从 Target 列表中,单击 Create Target。此时会打开 Create Custom Target 窗口。 - 在 Connection URL 字段中,输入 JVM 的 Java 管理扩展(JMX)端点的 URL。
- 可选: 要测试您指定的 连接 URL 是否有效,请点击 Click to test sample node image。如果 Connection URL 存在问题,则会显示一条错误消息,其中提供了问题的描述以及要排除故障的指导。
- 可选: 在 Alias 字段中,为您的 JMX Service URL 输入别名。
- 点 Create。 - 图 4.2. 创建自定义目标窗口 
 
- 在 Cryostat web 控制台的导航菜单中点 Recordings。
- 可选: 根据您如何配置目标 JVM,在 web 控制台中可能会打开 Authentication Required 对话框。在 Authentication Required 对话框中,输入您的 Username 和 Password。若要向目标 JVM 提供您的凭据,请单击 Save。 - 图 4.3. Cryostat 身份验证所需的窗口示例 注意- 如果所选目标 JMX 为 JMX 连接启用了安全套接字层(SSL)认证,则必须在提示时添加其证书。 - Cryostat 在 Red Hat OpenShift 上的持久性卷声明(PVC)上加密并存储目标 JVM 应用程序的凭证。请参阅 Storing 和管理凭证 (使用 Cryostat 管理 JFR 记录)。 
- 在 Active Recordings 选项卡中,点 Create。 - 图 4.4. 创建活跃记录的示例 
- 在 Custom Flight Recording 选项卡中: - 在 Name 字段中输入您要创建的记录的名称。如果您以无效格式输入名称,Web 控制台会显示错误消息。
- 如果您希望 Cryostat 自动重启现有记录,如果记录已存在,请选择 Restart。 注意- 如果您输入已存在名称,但没有选择 Restart (如果记录已存在), Cryostat 会在点 Create 按钮时拒绝创建自定义记录。 
- 在 Duration 字段中,选择是否希望此记录在指定的持续时间后停止,或者在没有停止的情况下持续运行。如果您希望 Cryostat 在记录停止后自动归档您的新 JFR 记录,请点击 Archive on Stop。
- 在 Template 字段中,选择要用于记录的模板。
 - 以下示例显示了持续 JVM 监控,您可以通过从 Duration 字段上方选择 continuous 来启用这些监控。此设置意味着记录将继续,直到您手动停止记录。示例还显示 Template 字段中的 Profiling 模板选择。这为 JFR 记录提供了额外的 JVM 信息,以进行故障排除。 - 图 4.5. 创建自定义动态记录示例 
- 要访问更多选项,请点以下可扩展超链接: - 显示高级选项,您可以在其中选择额外选项来自定义 JFR 记录。
- 显示元数据选项,您可以在其中在 JFR 记录中添加自定义标签和元数据。
 
- 要创建您的 JFR 记录,请点击 Create。Active Recordings 选项卡会打开并列出您的 JFR 记录。 - 您的活跃 JFR 记录开始收集容器化应用内目标 JVM 位置的数据。如果您为 JFR 记录指定了固定持续时间,则目标 JVM 会在达到固定持续时间设置时停止记录。否则,您必须手动停止记录。 
- 可选: 在 Active Recording 选项卡中,您还可以停止记录。 - 选中 JFR 记录名称旁边的复选框。在 Active Recordings 选项卡中的工具栏中,Cryostat web 控制台会激活 Stop 按钮。
- 点 Stop。JFR 采用 - STOPPED状态,因此它停止监控目标 JVM。JFR 仍然显示在 Active Recording 选项卡下。- 图 4.6. 停止活跃记录的示例 重要- 在以下情况下可能会丢失 JFR 记录数据: - 目标 JVM 失败
- 目标 JVM 重启
- 目标 JVM Red Hat OpenShift Deployment 已缩减
 - 归档您的 JFR 记录,以确保您不会丢失 JFR 记录的数据。 
 
 
     
     
     
     
    