搜索

2.3. 自定义触发器的一般语法规则

download PDF

请考虑以下语法准则来定义自定义触发器:

  • 自定义触发器定义必须包含定义总体触发器条件和用于 JFR 记录的事件模板名称的表达式。
  • 整个触发器表达式必须用方括号括起(例如,[ProcessCpuLoad > 0.2 ;TargetDuration < duration ("30s")])。
  • 为便于阅读,您可以在触发器表达式中使用空格,如上例中所示,但这不是必需的。
  • 事件模板的名称必须在触发器表达式后定义,并以波形符(~)字符(如 ~profile)前面定义。
  • 触发器表达式可由一个或多个约束和目标持续时间组成。约束和目标持续时间集合必须以分号(;)字符分隔。
  • 每个约束都必须包括: MBean 计数器的名称;一个关系运算符,如 & gt; (greater than), = (等于)、< (不少于)等),以及指定的值。可以指定关系运算符和值的类型和值取决于关联的 MBean 计数器类型(如 ProcessCpuLoad > 0.2)。
  • 可以使用一个逻辑运算符(如 & amp;& (AND)、|| (OR))或 !(注意)逻辑。为了提高操作顺序和运算符优先级的可读性和清晰性,分组的限制可能会用圆括号括起来,但这并不是要求。例如:

    [(MetricA > value1 && MetricB < value2) || MetricC == 'stringvalue' ; TargetDuration > duration("30s")]
  • 作为自定义触发器的一部分指定的每个 MBean 计数器的名称必须在拼写和大写方面遵循精确的语法规则。有关您可以指定的 MBean 指标的完整列表,请参阅 MBean 计数器类型
  • 对于自定义触发器,只能定义一个目标持续时间。目标持续时间应用到包含在方括号中的整个触发器表达式。
  • 目标持续时间可以用秒、分钟或小时表示。例如,30s 表示 30 秒,5m 表示五分钟,2h 表示两个小时,以此类推。
  • 目标持续时间是可选的。如果没有指定目标持续时间,则触发器会在满足触发器条件后立即发生。
  • 可以一起指定多个自定义触发器定义,每个定义都与单独的 JFR 记录相关。不同的自定义触发器定义必须用逗号分开()字符。例如:

    [ProcessCpuLoad>0.2]~profile,[ThreadCount>30]~Continuous
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.