跳转到主要内容
以下函数设计用于与 timeSeries*() aggregate functions 一起使用,例如 timeSeriesInstantRateToGridtimeSeriesLastToGrid 等。

seriesDecomposeSTL

引入版本:v24.1.0 使用 STL (基于 Loess 的季节-趋势分解过程) 将时间序列数据分解为季节性、趋势和残差分量。 语法
参数 返回值 返回一个包含四个数组的数组:第一个数组包含季节性成分,第二个数组包含趋势成分,第三个数组包含残差成分,第四个数组包含基线 (季节性 + 趋势) 成分。Array(Array(Float32), Array(Float32), Array(Float32), Array(Float32)) 示例 使用 STL 分解时间序列数据
Query
Response

seriesOutliersDetectTukey

引入版本:v24.2.0 使用 Tukey Fences 检测时间序列数据中的离群值。 语法
参数
  • series — 由数值组成的数组。Array((UInt8/16/32/64))Array(Float*)
  • min_percentile — 可选。用于计算四分位距 (IQR) 的最小百分位数。该值必须在 [0.02,0.98] 范围内。默认值为 0.25。Float*
  • max_percentile — 可选。用于计算四分位距 (IQR) 的最大百分位数。该值必须在 [0.02,0.98] 范围内。默认值为 0.75。Float*
  • K — 可选。用于检测轻度或更明显离群值的非负常数。默认值为 1.5。Float*
返回值 返回一个与输入数组长度相同的数组,其中每个值表示 series 中对应元素的异常可能性评分。非零评分表示该元素可能存在异常。Array(Float32) 示例 基础离群值检测
Query
Response
用于时间序列数据离群值检测的自定义参数
Query
Response

seriesPeriodDetectFFT

引入于:v23.12.0 使用 FFT - 快速傅里叶变换 检测给定时间序列数据的周期 语法
参数 返回值 返回一个实数值,表示序列数据的周期。当数据点少于 4 个时,返回 NaN。Float64 示例 使用简单模式检测周期
Query
Response
复杂模式的周期检测
Query
Response

timeSeriesCopyTag

引入版本:v26.1.0 将指定标签从一个标签组 (src_group) 复制到另一个标签组 (dest_group) 。 该函数会覆盖 dest_group 中该复制标签之前的任何值。 如果 src_group 中不存在该标签,则函数也会将其从 dest_group 中移除。 该函数模拟了 prometheus group left/group right 修饰符的复制逻辑。 语法
参数
  • dest_group — 目标标签组。UInt64
  • src_group — 源标签组。UInt64
  • tag_to_copy — 要复制的标签名称。String
返回值 返回一个标签组,其中包含 dest_group 中的标签,以及从 src_group 复制过来的标签。UInt64 示例 示例
Query
Response

timeSeriesCopyTags

引入版本:v26.1.0 将指定的标签从一个标签组 (src_group) 复制到另一个标签组 (dest_group) 。 该函数会替换 dest_group 中这些已复制标签原有的值。 如果某些要复制的标签在 src_group 中不存在,该函数也会将它们从 dest_group 中删除。 该函数模拟了 Prometheus group left/group right 修饰符的复制逻辑。 语法
参数
  • dest_group — 目标标签组。UInt64
  • src_group — 源标签组。UInt64
  • tags_to_copy — 要复制的标签名称。Array(String)
返回值 返回一个标签组,其中包含 dest_group 中的标签,以及从 src_group 复制过来的标签。UInt64 示例 示例
Query
Response

timeSeriesExtractTag

首次引入版本:v26.1.0 从标签组中提取指定标签的值。若未找到,则返回 NULL。 另请参见函数 timeSeriesGroupToTags() 语法
参数
  • group — 一个标签组。UInt64
  • tag_to_extract — 要从该标签组中提取的标签名称 String
返回值 返回指定标签的值。Nullable(String) 示例 示例
Query
Response

timeSeriesFromGrid

首次引入版本:v25.8.0 将值数组 [x1, x2, x3, ...] 转换为元组数组 [(start_timestamp, x1), (start_timestamp + step, x2), (start_timestamp + 2 * step, x3), ...] 当前时间戳会按 step 递增,直到大于 end_timestamp。 如果值的数量与时间戳的数量不一致,该函数会抛出异常。 [x1, x2, x3, ...] 中的 NULL 值会被跳过,但当前时间戳仍会继续递增。 例如,对于 [value1, NULL, x2],函数返回 [(start_timestamp, x1), (start_timestamp + 2 * step, x2)] 语法
参数 返回值 返回源数组中的值,并将其与由 start_timestampstep 定义的规则时间网格上的时间戳组合。Array(Tuple(DateTime64, Float64)) 示例 用法示例
Query
Response

timeSeriesGroupToSamplingKey

引入版本:v26.4.0 返回一个由指定组的标签派生出的稳定 UInt64 采样键。 该值具有确定性:相同的输入标签始终会生成相同的键。 它适合作为 limitklimit_ratio 等采样运算符的排序键。 语法
参数
  • group — 标签组。UInt64
返回值 根据与该组关联的标签计算得出的稳定 UInt64 哈希值。UInt64 示例 示例
Query
Response

timeSeriesGroupToTags

引入版本:v26.1.0 返回与指定组关联的标签名称和值。 另请参见函数 timeSeriesTagsToGroup() 语法
别名timeSeriesTagsGroupToTags 参数
  • group — 标签组。UInt64
返回值 返回一个由 (tag_name, tag_value) 对组成的数组。 返回的数组始终按 tag_name 排序,且同一个 tag_name 不会出现多次。 Array(Tuple(String, String)) 示例 示例
Query
Response

timeSeriesIdToGroup

引入版本:v26.1.0 返回与指定时间序列标识符关联的标签名称和值。 另请参见函数 timeSeriesStoreTags() 语法
别名: timeSeriesIdToTagsGroup 参数 返回值 返回与时间序列标识符 id 对应的标签组。UInt64 示例 示例
Query
Response

timeSeriesIdToTags

引入版本:v25.8.0 返回与指定时间序列标识符相关联的标签。 另请参见函数 timeSeriesStoreTags() 语法
参数 返回值 返回一个由 (tag_name, tag_value) 对组成的数组。 返回的数组始终按 tag_name 排序,且同一个 tag_name 不会重复出现。 Array(Tuple(String, String)) 示例 示例
Query
Response

timeSeriesJoinTags

引入版本:v26.1.0 将从标签组中提取的指定标签值拼接起来。 该函数会在拼接后的各个值之间插入分隔符,并返回一个新的标签组, 其中标签 dest_tag 的值为拼接后的结果。 该函数模拟了 Prometheus 函数 label_join() 的逻辑。 语法
参数
  • group — 一个标签组。UInt64
  • dest_tag — 保存拼接结果并将添加到 group 中的标签名称。String
  • separator — 在拼接后的值之间插入的分隔符。String
  • src_tags — 值将被拼接在一起的源标签名称。Array(String)
返回值 返回一个新的标签组,其中 dest_tag 标签的值为拼接结果。UInt64 示例 示例
Query
Response

timeSeriesRange

引入版本:v25.8.0 生成一个时间戳范围 [start_timestamp, start_timestamp + step, start_timestamp + 2 * step, ..., end_timestamp] 如果 start_timestamp 等于 end_timestamp,该函数会返回一个仅包含 [start_timestamp] 的单元素数组。 函数 timeSeriesRange() 与函数 range 类似。 语法
参数 返回值 返回一个时间戳范围。Array(DateTime64) 示例 用法示例
Query
Response

timeSeriesRemoveAllTagsExcept

引入版本:v26.1.0 从标签组中移除除指定标签外的所有标签。 另请参见函数 timeSeriesRemoveTag(), timeSeriesRemoveTags() 语法
参数
  • group — 一个标签组。UInt64
  • tags_to_keep — 要在该标签组中保留的标签名称。Array(String)
返回值 一个仅保留指定标签的新标签组。UInt64 示例 示例
Query
Response

timeSeriesRemoveTag

Introduced in:v26.1.0 从标签组中移除指定标签。 如果该组中不存在该标签,则原样返回该组。 另请参见函数 timeSeriesRemoveTags()timeSeriesRemoveAllTagsExcept() Syntax
参数
  • group — 一个标签组。UInt64
  • tag_to_remove — 要从该标签组中移除的标签名称。String
返回值 一个不包含指定标签的新标签组。UInt64 示例 示例
Query
Response

timeSeriesRemoveTags

Introduced in: v26.1.0 从标签组中移除指定标签。 如果指定的某些标签不在标签组中,函数会将其忽略。 另请参见函数 timeSeriesRemoveTag()timeSeriesRemoveAllTagsExcept() Syntax
参数
  • group — 一个标签组。UInt64
  • tags_to_remove — 要从此标签组中移除的标签名称。Array(String)
返回值 一个不包含指定标签的新标签组。UInt64 示例 示例
Query
Response

timeSeriesReplaceTag

Introduced in: v26.1.0 将正则表达式 regex 与标签 src_tag 的值匹配。 如果匹配成功,返回组中标签 dest_tag 的值将为 replacement 的展开结果, 同时保留输入中的原始标签。 此函数模拟了 prometheus 函数 label_replace() 的逻辑。 Syntax
参数
  • group — 一个标签组。UInt64
  • dest_tag — 用于获取结果标签组的目标标签名称。String
  • replacement — 替换模式,可以包含 11、2 或 $name,以引用正则表达式 ‘regex’ 中的捕获组。String
  • src_tag — 值将用于匹配正则表达式 ‘regex’ 的标签名称。String
  • regex — 正则表达式。String
返回值 一个新的标签组,可能会新增 dest_tagUInt64 示例 示例
Query
Response

timeSeriesStoreTags

引入版本:v25.8.0 在查询上下文中存储指定时间序列标识符与一组标签之间的映射。 函数 timeSeriesIdToTags()timeSeriesIdToGroup() 可用于在查询执行过程中的后续阶段访问此映射。 语法
参数 返回值 返回时间序列的标识符 (即第一个参数) 。 示例 示例
Query
Response

timeSeriesTagsToGroup

Introduced in: v26.1.0 返回与指定标签关联的标签组。 如果在查询执行过程中多次遇到同一个标签组,该函数会返回相同的标签组。 对于空标签集,该函数始终返回 0。 另请参见函数 timeSeriesGroupToTags() 语法
参数 返回值 返回与指定标签关联的标签组。UInt64 示例 示例
Query
Response

timeSeriesThrowDuplicateSeriesIf

引入版本:v26.2.0 检查 condition,如果其为 true,则抛出异常,并显示以下消息: Multiple series have the same tags <tags>, duplicate series in the same result set are not allowed。 如果 condition 为 false,则函数返回 0。 此函数与 throwIf() 类似, 但使用了不同的错误代码,且错误消息的格式也不同。 语法
参数
  • condition — 待检查的条件,通常包含 count() 函数。UInt8
  • group — 标签组。UInt64
返回值 返回 0UInt8 示例 示例
Query
Response
最后修改于 2026年7月3日