使用 Cryostat 管理 JFR 记录
摘要
前言
Red Hat build of Cryostat 是 JDK Flight Recorder (JFR)的容器原生虚拟化,可用于安全监控在 OpenShift Container Platform 集群上运行的工作负载的 Java 虚拟机(JVM)性能。您可以使用 Cryostat 3.0 使用 Web 控制台或 HTTP API 启动、停止、检索、存档、导入和导出容器化应用中的 JVM 的 JFR 数据。
根据您的用例,您可以使用 Cryostat 提供的内置工具直接存储和分析 Red Hat OpenShift 集群上的记录,或者您可以将记录导出到外部监控应用程序,以对记录数据进行更深入分析。
Red Hat build of Cryostat 只是一个技术预览功能。技术预览功能不受红帽产品服务等级协议(SLA)支持,且功能可能并不完整。红帽不推荐在生产环境中使用它们。这些技术预览功能可以使用户提早试用新的功能,并有机会在开发阶段提供反馈意见。
有关红帽技术预览功能支持范围的更多信息,请参阅技术预览功能支持范围。
使开源包含更多
红帽致力于替换我们的代码、文档和 Web 属性中有问题的语言。我们从这四个术语开始:master、slave、黑名单和白名单。由于此项工作十分艰巨,这些更改将在即将推出的几个发行版本中逐步实施。详情请查看 CTO Chris Wright 的信息。
第 1 章 安全选项
您可以为 Cryostat 配置安全设置,以便更好地保护 Cryostat 实例。
Cryostat 可以加密和存储目标 JVM 应用程序的凭据,该数据库存储在 Red Hat OpenShift 上的持久性卷声明(PVC)中。Cryostat 支持 HTTP 请求上的 SSL/TLS,向数据库添加凭证,以及使用这些凭据来连接到目标应用程序的 JMX 连接。Cryostat 还使用由用户提供的密码短语加密数据库中的凭证,或者由 Red Hat build of Cryostat Operator 生成该密码短语。
您可以通过将这些证书添加到 secret,并将 Cryostat 配置为包含此 secret,来使用 Cryostat Operator 将 Cryostat 配置为信任特定应用程序的 SSL/TLS 证书。如需更多信息,请参阅使用 Red Hat build of Cryostat Operator 配置 Cryostat: 配置 TLS 证书。
您可以通过点 Cryostat web 控制台中的 Security 菜单来查看目标 JVM 导入的 SSL/TLS 证书列表。
图 1.1. 查看目标 JVM 导入的 SSL 证书列表
1.1. 存储和管理凭证
如果您为目标 JVM 应用程序启用 Java 管理扩展(JMX)身份验证或 HTTP 身份验证,则 Cryostat 会提示您输入您的凭证,然后 Cryostat 可以访问任何应用程序的 JFR 记录。
当您点 Cryostat web 控制台中的 Recordings 或 Events 菜单项时,会在控制台上打开一个 Authentication Required 窗口。您必须输入目标 JVM 应用的用户名和密码。然后,您可以查看记录或在应用程序上执行任何其他记录操作。
图 1.2. Cryostat 身份验证所需的窗口示例
Cryostat 存储用于连接到 Cryostat 代理或目标 JVM 的凭证。
如果您需要重启目标 JVM 应用程序,请确保完成以下任务之一以避免丢失应用程序的 JFR 记录数据:
- 点 Cryostat web 控制台中的 Recordings 菜单项并归档您的 JFR 记录。
- 创建一个自动规则来调度 Cryostat,将快照记录复制到 Cryostat 归档的存储位置。
当您要通过创建一个自动化规则来监控多个目标 JVM 时,您可以将 Cryostat 配置为存储,然后为每个目标 JVM 连接重复使用您的凭证。通过使用此配置,每当您希望在 Cryostat web 控制台中重新查看应用程序的 JFR 记录时,您不需要重新输入您的凭证。
先决条件
- 为您的目标 JVM 应用启用 JMX 或 HTTP 身份验证。
流程
- 点 Security 菜单项。
在 Store Credentials 窗口中点击 Add 按钮。这会打开 Store Credentials 窗口。
图 1.3. 存储凭证窗口示例
在 Match Expression 字段中,指定匹配表达式详细信息。
注意选择问号图标,以在 Match Expression Hint 片段中查看建议的语法。
点击 Save。在 Store Credentials 窗口中显示一个表条目,其中显示了您的目标 JVM 的 Match Expression。
图 1.4. Store Credentials 窗格中的表条目示例
重要为了安全起见,表条目不会显示您的用户名或密码。
- 可选: 如果要删除目标 JVM 存储的凭证,您可以选择此目标 JVM 表条目旁边的复选框,然后单击 删除。
第 2 章 归档 JFR 记录
您可以归档活跃的 JFR 记录,以避免 JFR 记录潜在的数据丢失。您可以下载或上传归档的 JFR 记录,以便您可以分析记录以满足您的需要。
您可以在三个标题之一的归档菜单中找到归档的 JFR 记录: All Targets、All Archives 和 Uploads。根据您在 JFR 记录上执行的操作,记录可能会在每个表中显示。
2.1. 归档 JDK Flight Recorder (JFR)记录
您可以归档活跃的 JFR 记录,以避免 JFR 记录潜在的数据丢失。当 Cryostat 将旧的 JFR 记录数据替换为新数据,或者当目标 JVM 完全停止或重启时,可能会出现数据丢失。
当您创建归档记录时,Cryostat 会复制活跃的 JFR 记录的数据,并将数据存储在 Cryostat 实例的持久性存储位置中。Red Hat build of Cryostat Operator 将这个持久性存储位置构建到 Red Hat OpenShift 集群中的关联持久性卷声明(PVC)。
您可以归档任何 JFR 记录,无论其配置是什么。另外,您还可以从 JFR 记录归档快照。
先决条件
- 为 Cryostat 实例输入您的身份验证详情。
- 创建目标 JVM 记录,并输入您验证的详细信息以访问 记录 菜单。请参阅 创建 JDK Flight Recorder (JFR)记录 (使用 Cryostat 创建 JFR 记录)。
流程
在 Active Recordings 选项卡中,选择 JFR 记录的复选框。Archive 按钮会在 Active Recordings 工具栏中激活。
图 2.1. JFR 记录的归档按钮
点 归档 按钮。Cryostat 创建 JFR 记录的存档记录。
您可以在 Archived Recordings 选项卡中查看归档记录,以及与所选目标 JVM 相关的任何其他记录。
或者,您可以在 All Targets 表下从 查看归档的记录。
图 2.2. All Targets 表下列出的目标 JVM 应用程序示例
提示要删除没有归档记录的目标 JVM 条目,请选择 Hide 目标 带有零记录 复选框。
在点 JVM 目标条目旁边的 twistie (v)后,您可以访问过滤器功能,您可以在其中编辑标签来增强过滤器,或者点 Delete 按钮删除过滤器。
- 在 All Targets 表中,选中您要查看的每个目标 JVM 应用旁边的复选框。表列出了每个归档的记录及其源位置。
转至 All Archives 表。这个表与 All Targets 表类似,但 All Archives 表从 Cryostat 中存档的文件中列出了目标 JVM 应用程序。
注意如果存档文件没有可识别的 JVM 应用,它仍然列在 All Archives 表中,但在标题下的嵌套表中打开。
可选: 要删除归档记录,请选择特定存档 JFR 记录项旁边的复选框,并在提示时点 Delete。
图 2.3. 删除归档的 JFR 记录
注意Cryostat 根据目标 JVM 应用程序的地址、活跃记录的名称以及创建的存档记录的时间戳,将名称分配给存档记录。
其他资源
2.2. 下载活跃的记录或归档记录
您可以使用 Cryostat 将活跃记录或归档记录下载到本地系统。
先决条件
- 为 Cryostat 实例输入您的身份验证详情。
- 创建 JFR 记录。请参阅 创建 JDK Flight Recorder (JFR)记录 (使用 Cryostat 创建 JFR 记录)。
- 可选: 上传 SSL 证书或将凭证提供给目标 JVM。
- 可选: 归档您的 JFR 记录。请参阅 Archiving JDK Flight Recorder (JFR)记录 (使用 Cryostat 管理 JFR 记录)。
流程
进入 Cryostat 实例上的 Recordings 菜单或 Archives 菜单。
注意剩余的步骤使用 Recordings 菜单作为示例,但您可以在 Archives 菜单中遵循类似的步骤。
- 点 Active Recordings 选项卡或 Archived Recordings 选项卡确定您想要的记录。
找到您列出的 JFR 记录,然后选择其溢出菜单。
图 2.4. 查看 JFR 记录的溢出菜单
选择以下选项之一:
- 在 overflow 菜单中点 Download Recording。根据您如何配置操作系统,会打开文件保存对话框。将 JFR 二进制文件和 JSON 文件保存到您首选的位置。
- 在 All Targets 表中,选择列出的 JFR 记录的溢出菜单。点 Download 将存档文件及其 JSON 文件(包含元数据和标签信息)保存到本地系统。
可选: 使用 Java Mission Control (JMC)桌面应用程序查看下载的文件。
注意如果您不想下载
.jfr
文件,但希望查看 Cryostat 应用程序上记录的数据,您可以点 Grafana 选项中的 View in Grafana 选项。
2.3. 将 JFR 记录上传到 Cryostat 归档位置
您可以将本地系统中的 JFR 记录上传到 Cryostat 的存档位置。
要保存 Cryostat 存储空间,您可能已缩减或删除 JFR 记录。如果您下载了 JFR 记录,您可以在扩展或重新部署实例时将其上传到 Cryostat 实例。
另外,您可以将一个文件从以前的 Cryostat 实例上传到一个新的 Cryostat 实例。Cryostat 分析工具适用于上传到新 Cryostat 实例的记录。
先决条件
- 为 Cryostat 实例输入您的身份验证详情。
- 创建 JFR 记录。请参阅 创建 JDK Flight Recorder (JFR)记录 (使用 Cryostat 创建 JFR 记录)。
- 请参阅 下载活动记录或存档记录 (使用 Cryostat 管理 JFR 记录)。
流程
进入 Cryostat 实例上的 Archives 菜单。
图 2.5. Cryostat Web 控制台中的存档菜单
可选: 在 Uploads 表中,您可以查看所有上传的 JFR 记录。Uploads 表还包含与其他表类似的过滤机制,如 All Targets 表和其他输出。您还可以使用 Archives 菜单上的过滤机制来查找可能没有可识别的目标 JVM 应用程序的存档文件。
图 2.6. 归档菜单中的 Uploads 表
点上传图标。在 Cryostat web 控制台中打开 Re-Upload Archived Recording 窗口:
图 2.7. 重新上传归档记录窗口
- 在 JFR File 字段中,单击 Upload。
找到 JFR 记录文件,这些文件带有
.jfr
扩展的文件,然后单击 Submit。注意或者,您可以将
.jfr
文件拖放到 JFR File 字段中。
您的 JFR 记录文件在 Uploads 表中打开。
图 2.8. Uploads 表中的 JFR 记录示例
第 3 章 事件模板
Cryostat 包含默认事件模板,可用于快速创建用于监控目标 JVM 性能的 JFR 记录。
3.1. 使用自定义事件模板
在创建 JDK Flight Recorder (JFR)记录时,您可以选择以下默认事件模板之一:
- 持续模板,用于收集固定持续时间的基本目标 Java 虚拟机(JVM)数据,或直到被显式停止为止。
- 分析模板,用于收集固定持续时间或被显式停止的深入目标 JVM 数据。
通过使用其中任何一个默认事件模板,您可以快速创建 JFR 记录来监控您的目标 JVM 性能。您可以在后续阶段编辑任何一个事件模板,以满足您的需要。例如,默认事件模板不包含特定于应用程序的自定义事件,因此您必须将这些自定义事件添加到自定义模板中。
Cryostat 还支持 ALL
meta-template,它允许 JFR 监控目标 JVM 的所有事件类型。每个事件类型都存在默认值。ALL
meta-template 不包含 XML 定义,因此您无法为 ALL
meta-template 下载 XML 文件。
先决条件
- 使用 Installed Operators 选项在 Red Hat OpenShift 上安装 Cryostat 3.0。
- 在 Red Hat OpenShift 项目中创建一个 Cryostat 实例。
流程
- 在 Cryostat 实例的 Dashboard 面板中,从下拉列表中选择 Target JVM。
可选: 在 Topology 面板中,您可以通过选择 Add to view 图标来定义目标 JVM。选择图标后,将打开一个窗口来定义自定义目标连接 URL。
- 在 Connection URL 字段中,输入 JVM 的 Java 管理扩展(JMX)端点的 URL。
- 可选: 在 Alias 字段中,为您的 JMX Service URL 输入别名。
点 Create。
图 3.1. Create Target 对话框
在 Cryostat Web 控制台上的导航菜单中,单击 Events。Web 控制台中可能会打开 身份验证所需的 对话框。如有提示,在 Authentication Required 对话框中输入您的 Username 和 Password,然后单击 Save 以向目标 JVM 提供您的凭证。
注意如果所选目标 JMX 已为 JMX 连接启用了 SSL 认证,则必须在提示时添加其证书。
Cryostat 可以加密和存储目标 JVM 应用程序的凭据,该数据库存储在 Red Hat OpenShift 上的持久性卷声明(PVC)中。
- 在 Event Templates 选项卡下,找到列出的事件模板,然后选择其更多选项菜单。
在更多选项菜单中点击 Download。根据您如何配置操作系统,会打开文件保存对话框。将文件保存到您首选的位置。
图 3.2. 事件模板的更多选项菜单示例
使用您的默认文件编辑器打开该文件,并编辑该文件以满足您的需要。您必须保存文件才能保留配置更改。
注意您可以在
description
和provider
属性中添加值,它们可帮助您在后续阶段识别文件。在 Events 菜单中,进入 Event Templates 选项卡,然后点 Upload 图标。在 Cryostat web 控制台中打开 Create Custom Event Template 窗口。
图 3.3. 创建自定义事件模板窗口
- 点 Upload,并使用您的默认文件编辑器将一个或多个配置的事件模板文件上传到 Cryostat web 控制台。您还可以将文件拖放到 Template XML 窗口中。
- 单击 Submit 按钮。Event Templates 选项卡在 Cryostat web 控制台中打开,您可以在其中查看自定义事件模板。
可选: 创建事件模板后,您可以使用模板选择以下选项之一来创建 JFR 记录:
- 从 Automated Rules 菜单,单击 Create,然后从 Template 列表中选择一个事件模板。
- 在 Events 菜单中,找到列出的事件模板,然后从更多选项菜单中选择 Create Recording。
- 在 Recordings 菜单的 Active Recordings 选项卡中,点 Create。
其他资源
- 请参阅 创建 JDK Flight Recorder (JFR)记录 (使用 Cryostat 创建 JFR 记录)
- 请参阅 上传 SSL 证书 (使用 Cryostat 管理 JFR 记录)
- 请参阅 Archiving JDK Flight Recorder (JFR)记录 (使用 Cryostat 管理 JFR 记录)
- 请参阅 启用或禁用自动化规则(在 Cryostat 中使用自动化规则)
第 4 章 集成的应用程序
Cryostat 与特定的应用程序集成,增强您如何分析 JFR 记录中的数据。
4.1. 在 Grafana 上查看 JFR 记录
Cryostat 3.0 与 Grafana 应用程序集成,因此您可以在 Grafana 中绘制 JFR 记录数据。您可以在时间间隔部分中查看图表数据,以精确分析目标 JVM 应用的性能。
先决条件
- 为 Cryostat 实例输入您的身份验证详情。
- 创建 JFR 记录。请参阅在 Cryostat web 控制台中创建 JFR 记录。
流程
- 进入 Cryostat 实例上的 Recordings 菜单或 Archives 菜单。
- 根据您的需要,点 Active Recordings 选项卡或 Archived Recordings 选项卡。
找到 JFR 记录,然后选择 overflow 菜单。
图 4.1. 可用于 JFR 记录示例的溢出菜单项
- 在 overflow 菜单中点 Grafana 选项中的 View。Grafana 应用程序在新的 Web 浏览器窗口中打开。
- 如果出现提示,在 Grafana Web 控制台登录页面中输入您的 Red Hat OpenShift 凭证。此时会打开仪表板窗口,并在各种时间序列图表中显示 JFR 记录的数据。
可选: 通过选择图表中的时间序列段来与任何图表进行交互。Grafana 扩展屏幕数据,以仅显示该时间间隔的数据。
图 4.2. 带有图表图的 Grafana 仪表板示例
更新于 2024-07-02