1.4. 自定义自动化规则
您可以在一个 Cryostat 实例的自定义资源(CR)中配置 automatedRules 属性,使其包含多个自定义自动化规则。自动化规则定义可以包含许多选项,供 Cryostat 用来将规则应用到与 matchExpression 字符串表达式中定义的正则表达式匹配的任何目标 JVM。您可以使用自动化规则使 JFR 持续监控正在运行的目标应用程序,而无需重启或重新部署应用程序。
默认情况下,Cryostat 提供预先配置的 continuous_analysis、hibernate 和 quarkus 自动化规则。这些预配置的规则可能不满足您的需要,因此您可以创建自定义规则并在 ConfigMap 中存储这些规则以更轻松地检索。
在 ConfigMap 中存储自定义自动化规则后,您可以使用 Cryostat Operator 将 Cryostat 实例配置为在指定的 ConfigMap 中使用此自动化规则。然后,您可以使用带有 JFR 的自定义自动化规则来持续监控 Java 应用程序以满足您的需求。
先决条件
- 使用 Red Hat OpenShift Web 控制台登录到 OpenShift Container Platform。
- 登录到您的 Cryostat web 控制台。
流程
要下载默认的自动化规则,请导航到 Cryostat web 控制台,然后选择 Flight Recorder > Capture > Automated Rules。然后单击您要下载的规则旁边的溢出图标,然后单击 Download。
注意自动化规则采用 JSON 格式,文件名称扩展名为
.json。要创建自定义自动化规则,请使用文本编辑器编辑下载的自动化规则文件,以配置规则定义以满足您的需求。
例如,默认的
continuous_analysis.json自动化规则文件包括以下详情:{"name":"continuous_analysis","description":"","matchExpression":"true","eventSpecifier":"template=Continuous,type=TARGET","archivalPeriodSeconds":300,"initialDelaySeconds":0,"preservedArchives":1,"maxAgeSeconds":600,"maxSizeBytes":0,"metadata":{"labels":[{"key":"origin","value":"automated-analysis"},{"key":"autoanalyze","value":"true"}]},"enabled":false}-
通过在 CLI 中输入
oc login命令登录到您的 Red Hat OpenShift Web 控制台。 通过在 CLI 中输入以下命令,从自动化规则创建
ConfigMap资源。您必须在要部署 Cryostat 应用程序的路径中发出该命令。您可以使用此资源存储运行 Cryostat 实例的集群中的自动规则文件。使用 CLI 为自动化规则创建 ConfigMap 资源示例
$ oc create configmap <automated_rule_name> --from-file=<path_to_custom_automated_rule>如果要开始创建 Cryostat 实例,请执行以下步骤:
- 在 Red Hat OpenShift web 控制台中,点 Operators > Installed Operators。
- 从可用 Operator 列表中,选择 Red Hat build of Cryostat。
- 在 Operator 详情页中,点 Details 选项卡。
- 在 Provided APIs 部分中,选择 Cryostat,然后单击 Create instance。
在 Create Cryostat 面板中,要将 JSON 格式的自动规则上传到资源中,请选择以下选项之一:
如果要使用 Form 视图:
- 点 Form view 单选按钮。
- 导航到 Cryostat 实例的 Automated Rules 部分。
- 从 Automated Rules 菜单,单击 Add Automated Rules。在 Red Hat OpenShift 控制台中打开 Automated Rules 部分。
从 Config Map Name 下拉列表中,选择包含自动化规则的 ConfigMap 资源。
图 1.5. Cryostat 实例的自动规则选项
-
在 Filename 字段中,输入 ConfigMap 中包含的
.json文件的名称。
如果要使用 YAML 视图:
- 点 YAML 视图 单选按钮。
为
automatedRules属性指定任何自定义自动化规则。此属性将 Cryostat Operator 指向 ConfigMap,以便 Operator 能够读取自动化规则。为
automatedRules属性指定自定义自动化规则的示例-- apiVersion: operator.cryostat.io/v1beta2 kind: Cryostat metadata: name: cryostat-sample spec: ... automatedRules: - configMapName: custom-rule1 filename: my-rule1.json - configMapName: custom-rule2 filename: my-rule2.json --重要您必须从
configMapName下拉列表中选择与 Cryostat 或 Cluster Cryostat 实例关联的 ConfigMap 名称。另外,您必须在filename字段中指定与 ConfigMap 关联的密钥。
- 如果要为这个 Cryostat 实例配置自定义资源(CR)中的其他属性,请参阅本文档的其它部分来了解有关这些属性的更多信息。
- 如果要完成创建此 Cryostat 实例,请点击 Create。
当您点 Create 时,Operator 详情页中的 Cryostat 选项卡下提供了此 Cryostat 实例。然后,您可以通过点 Operator 详情页面上的实例名称来编辑 Cryostat 实例的 CR 属性,然后从 Actions 下拉菜单中选择 Edit Cryostat。
Cryostat Operator 现在可将自定义自动规则作为 JSON 文件提供给 Cryostat 应用程序。您的自定义自动化规则会在 Cryostat web 控制台中打开默认自动化规则。
验证
- 在 Cryostat web 控制台中,从导航菜单中选择 Flight Recorder > Capture > Automated Rules。
- 在 Automated Rules 面板中,检查您的自定义自动化规则是否显示在可用的自动化规则列表中。