微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

通过配置 Yaml

如何解决通过配置 Yaml

这是当前的 Jmx 导出器模式:

pattern: 'metrics<name=resilience4jCircuitbreakerState.name.(.*).state.(.*),type=gauges><>Value'
name: 'x.y.z.resilience4j.circuitbreaker.state'
labels: {name: "$1",kind: "$2" }
type: GAUGE

电流输出

x_y_z_resilience4j_circuitbreaker_state{kind="open",name="a",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="closed",name="b",} 1.0
x_y_z__resilience4j_circuitbreaker_state{kind="half_open",name="c",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="half_open",name="d",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="forced_open",name="e",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="disabled",name="f",name="g",name="h",name="i",} 1.0
x_y_z__resilience4j_circuitbreaker_state{kind="closed",name="j",} 1.0

这实际上工作正常。但是为了提高基数,我们决定不公开修改 Yml 的 0.0 值(如果有的话)。

上述样本的预期输出是,

x_y_z__resilience4j_circuitbreaker_state{kind="closed",} 1.0

请随时在下面发表评论

解决方法

看起来每个 x_y_z__resilience4j_circuitbreaker_state 有 5 个 name 指标,每个指标都有不同的 kind 标签,一个值为 1.0,其他的值为0.0 的值。

在这种情况下,如果您不公开 0.0 并且断路器在所有状态下发生变化,则所有指标都将报告 1.0

要减少基数,您应该删除 kind 标签并将值设置为一个状态。

取而代之的是:

x_y_z__resilience4j_circuitbreaker_state{kind="disabled",name="a",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="closed",} 1.0
x_y_z__resilience4j_circuitbreaker_state{kind="open",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="half_open",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="forced_open",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="disabled",name="b",} 0.0
x_y_z__resilience4j_circuitbreaker_state{kind="open",} 1.0
x_y_z__resilience4j_circuitbreaker_state{kind="half_open",name="c",} 1.0
x_y_z__resilience4j_circuitbreaker_state{kind="forced_open",} 0.0

您应该报告如下内容:

x_y_z__resilience4j_circuitbreaker_state{name="a"} 1.0 # 1 represents "closed"
x_y_z__resilience4j_circuitbreaker_state{name="b"} 2.0 # 2 represents "open"
x_y_z__resilience4j_circuitbreaker_state{name="c"} 3.0 # 3 represents "half_open"
,

最后正则表达式对我有用,

^(?!0(\.0)?$)

这是我的结果的验证,

Click here to verify the result

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。