如何填充过去的值以包含偏移量的单元测试 Prometheus 警报?

问题描述 投票:0回答:1

我正在尝试测试 Prometheus 警报的记录规则。

这按预期工作:

# test_file.yaml
rule_files:
  - "../records.yaml"

evaluation_interval: 1m

group_eval_order:
  - records

tests:
  - name: "Some test"
    interval: 1m
    input_series:
      - series: 'some_metric{somelabel="somevalue"}'
        values: '1+0x144000'

    promql_expr_test:
      - expr: recording_rule:under_test
        exp_samples:
          - labels: recording_rule:under_test{somelabel="somevalue"}
            value: 1


这是

records.yaml
:

  - expr: avg_over_time(some_metric{}[24h:]) > 0
    record: recording_rule:under_test

正如预期的那样,记录规则包括

some_metric
,这使得测试通过。

当我尝试向记录规则添加偏移量时,问题就开始了。

  - expr: avg_over_time(some_metric{}[24h:] offset 1w) > 0
    record: recording_rule:under_test

然后测试失败。我最初认为这是因为

input_series
只填充未来的数据,而记录规则是搜索过去的数据。我尝试将测试抵消到未来:

    promql_expr_test:
      - expr: recording_rule:under_test offset -1w
        exp_samples:
          - labels: recording_rule:under_test{somelabel="somevalue"}
            value: 1

但是,这没有用。我还尝试为

input_series
添加偏移量,但这在语法上是不可能的。

prometheus monitoring promql
1个回答
0
投票

将测试的

eval_time
向前移动偏移量。

© www.soinside.com 2019 - 2024. All rights reserved.