PromQL/Victoria 指标 - 乘以不同分辨率的时间序列
PromQL/Victoria Metrics - multiply time series with different resolutions
我有一个关于 promql 级数乘法的问题。
我有 2 个时间序列,它们有不同的采样(5 分钟和 15 分钟)。
我需要使它们具有相同的分辨率,乘法和求和
类似于:
WITH (
filter1= {testID=~"test2"},
metric0 = myMetric1{filter1},
metric1 = myMetric2{filter1}
)
sum_over_time(metric0[15m]*metric0[15m])&step=1h
这不起作用,但输出将是:
- 使 metric1 和 metric2 具有相同的分辨率(15 分钟)
- 逐个样本相乘
- 在 1 小时汇总(总和)
这可能吗?
谢谢!
尝试以下 MetricsQL 查询:
with (
filter = {testID=~"test2"},
metric1 = myMetric1{filter},
metric2 = myMetric2{filter},
)
sum_over_time((metric1 * metric2)[1h:15m])
此查询依赖于 Prometheus subqueries 使 metric1 和 metric2 达到相同的分辨率 - 在对过去一小时的乘法求和之前的 15 分钟。
请注意,预计与 metric1 和 metric2 匹配的时间序列具有相同的标签集。否则将返回空结果。如果不是这种情况,则乘法可能需要额外的修饰符,例如 on、ignoring、group_left 或 group_right - 有关详细信息,请参阅 https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching。
我有一个关于 promql 级数乘法的问题。 我有 2 个时间序列,它们有不同的采样(5 分钟和 15 分钟)。 我需要使它们具有相同的分辨率,乘法和求和
类似于:
WITH (
filter1= {testID=~"test2"},
metric0 = myMetric1{filter1},
metric1 = myMetric2{filter1}
)
sum_over_time(metric0[15m]*metric0[15m])&step=1h
这不起作用,但输出将是:
- 使 metric1 和 metric2 具有相同的分辨率(15 分钟)
- 逐个样本相乘
- 在 1 小时汇总(总和)
这可能吗?
谢谢!
尝试以下 MetricsQL 查询:
with (
filter = {testID=~"test2"},
metric1 = myMetric1{filter},
metric2 = myMetric2{filter},
)
sum_over_time((metric1 * metric2)[1h:15m])
此查询依赖于 Prometheus subqueries 使 metric1 和 metric2 达到相同的分辨率 - 在对过去一小时的乘法求和之前的 15 分钟。
请注意,预计与 metric1 和 metric2 匹配的时间序列具有相同的标签集。否则将返回空结果。如果不是这种情况,则乘法可能需要额外的修饰符,例如 on、ignoring、group_left 或 group_right - 有关详细信息,请参阅 https://prometheus.io/docs/prometheus/latest/querying/operators/#vector-matching。