参考手册

标签操作

设置、复制、移动、过滤或转换结果标签。

选择器匹配器用来选择输入序列。这里的标签函数用于转换或过滤表达式结果,因此可以放在函数和聚合之后。

from metricraft import QueryBuilder as Q

query = Q.from_metric("up").label_replace("host", "$1", "instance", "([^:]+):.*")
print(query.build(mode="promql"))

映射 API 接受显式的两个字符串组成的元组。替换值使用 $1 等后端捕获引用,不进行 Python 插值。仅限 MetricsQL 的操作会单独标记。

方法与参数

QueryBuilder

alias()将输出指标名替换为字面量名称。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.alias(name: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
namestr必填非空指标、函数或绑定名称,由对应构造函数验证,不作为原始查询语法插入。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

drop_common_labels()删除所有输入序列中值相同的公共标签。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.drop_common_labels(*others: ScalarInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*othersQueryBuilder, ...可变参数额外输入表达式。多个聚合输入和 union 类转换仅限 MetricsQL;普通 PromQL 聚合只接收当前表达式。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

keep_metric_names()在适用的 MetricsQL 函数或二元表达式中保留指标名。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.keep_metric_names() -> QueryBuilder

无参数。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_copy()按标签对的顺序把源标签复制到目标标签,跳过缺失源标签。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_copy(*pairs: Tuple[str, str]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*pairstuple[str, str], ...可变参数按顺序分别传入由两个字符串组成的映射元组。label_copy/move 使用源与目标标签名,label_map 使用源与目标标签值。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_del()删除指定输出标签。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_del(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_graphite_group()从已有指标名按点分隔的部分中,按从零开始的索引选取并组合新指标名。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_graphite_group(*groups: ScalarInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*groupsint, ...可变参数指标名按点分隔后的部分索引,从零开始且应非负。请使用整数值;SDK 拒绝 bool,但此函数不强制检查整数或索引边界。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_join()按分隔符连接源标签值,将结果写入目标标签。
QueryBuilder.label_join(destination: StringInput, separator: StringInput, *sources: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
destinationstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
separatorstr必填源标签值之间的字面量分隔符,可以为空。
*sourcesstr, ...可变参数按给定顺序连接的源标签名。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_keep()仅保留指定输出标签。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_keep(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_lowercase()将指定标签值转换为小写。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_lowercase(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_map()按有序的源值与目标值对,精确映射标签值。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_map(label: StringInput, *pairs: Tuple[str, str]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
*pairstuple[str, str], ...可变参数按顺序分别传入由两个字符串组成的映射元组。label_copy/move 使用源与目标标签名,label_map 使用源与目标标签值。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_match()保留指定标签符合后端完整匹配正则的序列。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_match(label: StringInput, regex: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
regexstr必填后端 RE2 模式。替换中的捕获引用使用 $1 或命名捕获;查询引用不会把正则变成普通字面量。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_mismatch()保留指定标签不符合后端完整匹配正则的序列。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_mismatch(label: StringInput, regex: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
regexstr必填后端 RE2 模式。替换中的捕获引用使用 $1 或命名捕获;查询引用不会把正则变成普通字面量。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_move()按标签对的顺序把源标签移动到目标标签,并删除源标签。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_move(*pairs: Tuple[str, str]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*pairstuple[str, str], ...可变参数按顺序分别传入由两个字符串组成的映射元组。label_copy/move 使用源与目标标签名,label_map 使用源与目标标签值。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_replace()用正则匹配一个源标签,将展开后的替换值写入目标标签。
QueryBuilder.label_replace(destination: StringInput, replacement: StringInput, source: StringInput, regex: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
destinationstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
replacementstr必填替换文本,可包含 '$1' 等后端捕获引用,编码为字符串字面量。
sourcestr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
regexstr必填后端 RE2 模式。替换中的捕获引用使用 $1 或命名捕获;查询引用不会把正则变成普通字面量。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

示例

from metricraft import QueryBuilder as Q

Q.from_metric("up").label_replace("host", "$1", "instance", "([^:]+):.*").build(mode="promql")
label_set()设置字面量输出标签值,不改变输入表达式。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_set(**labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
**labelsstr, 按关键字传入可变参数标签名和字符串值组成的关键字对,如 job='api'。名称不是 Python 标识符时使用 **mapping。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_transform()使用捕获展开,替换标签值中的每一个正则匹配。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_transform(label: StringInput, regex: StringInput, replacement: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
regexstr必填后端 RE2 模式。替换中的捕获引用使用 $1 或命名捕获;查询引用不会把正则变成普通字面量。
replacementstr必填替换文本,可包含 '$1' 等后端捕获引用,编码为字符串字面量。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_uppercase()将指定标签值转换为大写。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_uppercase(*labels: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*labelsstr, ...可变参数分别传入标签名。分组与匹配列表不能重复;允许空分组列表,具体函数的参数个数由 Rust 检查。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

label_value()将数值标签的值用作样本值;无法解析的值不产生样本。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.label_value(label: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

labels_equal()保留所选标签值全部相等的序列。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.labels_equal(first: StringInput, second: StringInput, *others: StringInput) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
firststr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
secondstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
*othersQueryBuilder, ...可变参数额外输入表达式。多个聚合输入和 union 类转换仅限 MetricsQL;普通 PromQL 聚合只接收当前表达式。

返回值 QueryBuilder:共享未变化原生子树的新不可变表达式。接收表达式不变,不查询数据。

浏览文档

查找你需要的内容

搜索指南、示例和 Python API。