搜索

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

download PDF

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

  • 自定义触发器定义必须包含用于定义总体触发器条件和用于 JFR 记录的事件模板名称的表达式。
  • 整个触发器表达式必须放在方括号中(例如 [ProcessCpuLoad > 0.2 ; TargetDuration < duration ("30s")])。
  • 为了便于阅读,您可以使用触发表达式中的空格,如上例中所示,但这并不是一个要求。
  • 事件模板的名称必须在触发器表达式后定义,并在前面加上波形符(~)字符(如 ~profile)。
  • 触发器表达式可由一个或多个限制和目标持续时间组成。约束和目标持续时间的集合必须以分号(;)字符分开。
  • 每个约束都必须包括:MBean 计数器的名称; 一个关系运算符,如 > (比)、= (等于)、< (等于)、< (无)等,以及指定的值。 可以指定的关联 Operator 和值类型取决于关联的 MBean 计数器类型(例如,ProcessCpuLoad > 0.2)。
  • 可以使用逻辑卷运算符(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.