使用 Cryostat 创建 JFR 记录
摘要
前言 复制链接链接已复制到粘贴板!
Red Hat build of Cryostat 是 JDK Flight Recorder (JFR)的一个容器原生实现,可用于安全地监控在 OpenShift Container Platform 集群上运行的工作负载中的 Java 虚拟机(JVM)性能。您可以使用 Cryostat 2.4 使用 web 控制台或 HTTP API 启动、停止、检索、存档、导入和导出容器化应用程序中 JVM 的 JFR 数据。
根据您的用例,您可以使用 Cryostat 提供的内置工具直接在 Red Hat OpenShift 集群上存储和分析记录,或者您可以将记录导出到外部监控应用程序,以对记录的数据进行更深入的分析。
红帽构建的 Cryostat 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
使开源包含更多 复制链接链接已复制到粘贴板!
红帽承诺替换我们的代码、文档和网页属性中存在问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 Cryostat 的 JFR 创建选项 复制链接链接已复制到粘贴板!
使用 Cryostat,您可以创建一个在容器化应用程序中监控 JVM 性能的 JDK Flight Recorder (JFR)记录。此外,您还可为目标 JVM 应用生成活动 JFR 记录的快照,以捕获任何收集的数据(最多是特定时间点)。
Cryostat 支持以下所有不同的方法来创建 JFR 记录:
- 您可以使用 Cryostat web 控制台为使用 JMX 或代理 HTTP 连接的目标 JVM 手动创建 JFR 记录。
- Cryostat 服务器可以通过 JMX 或代理 HTTP 连接发送按需请求,以便根据自动规则动态启动 JFR 记录。
- Cryostat 代理可以根据给定事件模板在代理启动时自动启动 JFR 记录,作为代理 harvester 功能的一部分。
- 从 Red Hat build of Cryostat 2.4 开始,Cryostat 代理可以根据 MBean 自定义触发器和给定事件模板动态启动 JFR 记录。
本文档的其余部分论述了如何在 Cryostat web 控制台中手动创建 JFR 记录。
第 2 章 在 Cryostat web 控制台中创建 JFR 记录 复制链接链接已复制到粘贴板!
您可以创建一个 JFR 记录,以监控容器化应用程序中 JVM 的性能。创建 JFR 记录后,您可以启动 JFR,以捕获 JVM 的实时数据,如堆和非堆内存用量。
前提条件
- 使用 OperatorHub 选项在 Red Hat OpenShift 上安装 Cryostat 2.4。
- 在 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 记录的请求。图 2.1. 为您的 Cryostat 实例选择 Target JVM 示例
可选: 在 仪表板 面板中,您可以创建一个目标 JVM。在 Target 列表中,单击 Create Target。此时会打开 Create Custom Target 窗口。
- 在 Connection URL 字段中输入 JVM 的 Java 管理扩展(JMX)端点的 URL。
- 可选: 要测试您指定的 连接 URL 是否有效,请点击 点击来测试 示例节点镜像。如果 Connection URL 存在问题,则会显示一条错误消息,其中提供了问题的描述以及要排除故障的指导。
- 可选: 在 Alias 字段中输入 JMX 服务 URL 的别名。
点 Create。
图 2.2. 创建自定义目标窗口
- 在 Cryostat web 控制台的导航菜单中点 Recordings。
可选: 根据您配置目标 JVM,在 web 控制台中可能会打开身份验证所需的对话框。在 Authentication Required 对话框中,输入您的 Username 和 Password。要为目标 JVM 提供您的凭据,请单击 Save。
图 2.3. Cryostat 身份验证必需窗口示例
注意如果所选的目标 JMX 启用了安全套接字层(SSL)认证,您必须在提示时添加其证书。
Cryostat 在 Red Hat OpenShift 上的持久性卷声明(PVC)上加密并存储目标 JVM 应用程序的凭证。请参阅 清理和管理凭证 (使用 Cryostat 管理 JFR 记录)。
在 Active Recordings 选项卡中,点 Create。
图 2.4. 创建活跃记录示例
在 Custom Flight Recording 选项卡中:
- 在 Name 字段中输入您要创建的记录的名称。如果您以无效的格式输入名称,Web 控制台会显示错误消息。
如果您希望 Cryostat 自动重启现有的记录,请选择 Restart if record already exists 复选框。
注意如果您输入了一个已存在的名称,但没有选择 Restart (如果记录已存在), 则 Cryostat 会在点 Create 按钮时拒绝创建自定义记录。
- 在 Duration 字段中,选择是否要在指定持续时间后停止此记录,或者在不停止的情况下持续运行。如果您希望 Cryostat 在记录停止后自动归档新的 JFR 记录,请点击 Stop 的 Archive。
- 在 Template 字段中,选择您要用于记录的模板。
以下示例显示了连续 JVM 监控,您可以通过从 Duration 字段的上方选择 持续 来启用。此设置表示记录将继续,直到您手动停止记录。该示例还显示从 Template 字段选择 Profiling 模板。这为 JFR 记录提供了额外的 JVM 信息,用于故障排除。
图 2.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 选项卡下。图 2.6. 停止活跃记录示例
重要在以下情况下可能会丢失 JFR 记录数据:
- 目标 JVM 失败
- 目标 JVM 重启
- 目标 JVM Red Hat OpenShift 部署已缩减
归档您的 JFR 记录,以确保您不会丢失您的 JFR 记录数据。
第 3 章 从活跃记录创建快照 复制链接链接已复制到粘贴板!
您可以为目标 JVM 应用程序生成活动 JFR 记录的快照,以捕获任何收集的数据(最多为特定时间点)。快照类似于一个检查点标记,它有一个起始点,以及运行中 JFR 记录中给定时间片段的端点。
快照会存储在目标 JVM 应用的内存中。这与 Cryostat 在云存储磁盘上存储归档的归档不同,这是用于存储 JFR 记录数据的更永久解决方案。
如果要试验活跃 JFR 记录中不同配置更改,可以进行记录快照。
当您为 JFR 记录创建快照时,C Cryostat 会创建一个名为 snapshot - <snapshot_number > 的新目标 JVM,其中 < snapshot_number > 是 Cryostat 自动分配给快照的数字。
目标 JVM 将快照识别为活动记录。Cryostat 在 STOPPED 状态中设置任何 JFR 快照,这意味着 JFR 快照不将新数据记录到目标 JVM。根据 JFR 配置,无论拍摄的快照数量如何,主动 JFR 记录可以继续监控目标 JVM。
对于用于持续监控目标 JVM 应用程序的 JFR 记录,请确保创建归档记录以避免丢失 JFR 记录数据。
如果您选择使用常规快照来存储您的 JFR 记录数据,目标 JVM 应用程序可能会释放一些数据存储空间,方法是使用较新的记录数据替换旧的记录数据。
前提条件
- 输入您的 Cryostat 实例的身份验证详情。
- 创建目标 JVM 记录并输入您验证的详情来访问记录菜单。请参阅创建 JDK Flight Recorder (JFR)记录 (使用 Cryostat 创建 JFR 记录)。
流程
在 Active Recordings 选项卡中,点 Create 按钮。在 web 控制台中打开一个新窗口。
图 3.1. 创建活跃记录示例
点 Snapshot Recording 选项卡。
图 3.2. 创建快照记录示例
点 Create。Active Recordings 表会打开,它会列出您的 JFR 快照记录。以下示例显示了名为
snapshot-3的 JFR 快照记录。图 3.3. 已完成的快照记录示例
注意您可以从活跃记录列表中通过 快照 前缀来识别快照。
后续步骤
- 要归档您的 JFR 快照记录,请参阅 存档 JDK Flight Recorder (JFR)记录。
第 4 章 JFR 记录的标签 复制链接链接已复制到粘贴板!
当您在 Cryostat 2.4 上创建 JDK Flight Recorder (JFR)记录时,您可以通过指定一系列键值对将元数据添加到记录中。
另外,您可以将自定义标签附加到目标 JVM 内的 JFR 记录中,以便您可以轻松识别和更好地管理您的 JFR 记录。
以下列表详细介绍了一些常见记录标签用例:
- 将元数据附加到您的 JFR 记录。
- 在包含相同标签的记录上执行批处理操作。
- 在记录中运行查询时,请使用标签。
您可以使用 Cryostat 创建 JFR 记录,以监控容器化应用程序中 JVM 的性能。此外,您还可为目标 JVM 应用生成活动 JFR 记录的快照,以捕获任何收集的数据(最多是特定时间点)。
4.1. 为 JFR 记录添加标签 复制链接链接已复制到粘贴板!
当您在 Cryostat 2.4 上创建 JFR 记录时,您可以使用标签为记录添加包含键值对的元数据。
Cryostat 将默认记录标签应用到创建的 JFR 记录中。这些默认标签捕获了 Cryostat 用于创建 JFR 记录的事件模板的信息。
您可以在 JFR 记录中添加自定义标签,以便运行满足您需求的特定查询,例如识别特定 JFR 记录或使用同一应用标签在记录上执行批处理操作。
前提条件
- 登录到您的 Cryostat web 控制台。
- 为您的 Cryostat 实例创建或选择目标 JVM。
流程
- 在 Cryostat web 控制台中点 Recordings。
- 在 Active Recordings 标签页中,点 Create。
在 Custom Flight Recording 标签页中,展开 Show metadata 选项。
注意在 Custom Flight Recording 标签页中,您必须完成使用星号标记的所有必填字段。
点 Add label。
图 4.1. 在 Custom Flight Recording 标签页中显示的 Add Label 按钮
- 在提供的 Key 和 Value 字段中输入值。例如,如果要对记录出现问题,可以在 Key 字段中输入原因,然后在 Value 字段中输入问题类型。
点击 Create 创建您的 JFR 记录。然后,您的记录会显示在 Active Recordings 标签页中,以及任何指定的记录标签和自定义标签。
提示您可以从存档菜单访问存档的 JFR 记录。请参阅 上传 JFR 记录到 Cryostat 归档位置 (使用 Cryostat 管理 JFR 记录)。
Example
以下示例显示了两个默认记录标签: template.name: Profiling 和 template.type: TARGET,以及一个自定义标签,原因:service-outage。
图 4.2. 带有定义的记录标签和自定义标签的活跃记录示例
4.2. 为您的 JFR 记录编辑标签 复制链接链接已复制到粘贴板!
在 Cryostat web 控制台中,您可以导航到 Recordings 菜单,然后编辑 JFR 记录的标签及其元数据。您还可以编辑上传到存档的 JFR 记录的标签和元数据。
前提条件
- 登录到您的 Cryostat web 控制台。
- 创建 JFR 记录并将标签附加到此记录。
流程
- 在 Cryostat web 控制台中点 Recording 菜单。
- 在 Active Recordings 选项卡中找到您的 JFR 记录,然后选中它旁边的复选框。
点击 Edit Labels。在 Cryostat web 控制台中打开 Edit Recording Label 窗格,您可以使用它为您的 JFR 记录添加、编辑或删除标签。
提示您可以通过选中每个记录旁的复选框来选择多个 JFR 记录。如果要批量编辑包含相同标签的记录,或向多个记录添加新的相同标签,请点击 Edit Labels 按钮。
可选 :您可以从 Edit Recording Labels 窗格中执行以下操作:
- 点 Add 创建标签。
-
点标签旁边的
X来删除标签。 - 通过修改字段中的所有内容来编辑标签。编辑内容后,字段中会显示绿色勾号表示编辑。
- 点击 Save。
可选 : 您可以通过完成以下步骤,将 JFR 记录与标签一起归档:
- 选择记录名称旁边的复选框。
单击 归档 按钮。您可以在归档记录标签页中找到 您的 记录。
使用标签归档记录,您可以在稍后的阶段定位记录时增强您的搜索功能。您还可以在上传到 Cryostat 归档的任何记录中添加额外标签。
注意Cryostat 在归档记录生命周期内保留任何带有记录的标签。
验证
- 在 Active Recordings 选项卡中,检查是否在您的记录的 Labels 部分中显示您的更改。
更新于 2024-01-02