参考手册

选择器与过滤

通过标签匹配器选择时间序列,并组合 MetricsQL 选择器分支。

应在转换选择器之前添加匹配器。等值匹配会转义值,正则方法接受有意提供的 RE2 模式。即使查询中的字符串已经安全引用,正则仍可能匹配大量值。

from metricraft import QueryBuilder as Q

query = (Q.from_metric("http_requests_total")
         .where_eq("environment", "production")
         .where_regex("status", "5.."))
print(query.build(mode="promql"))

同一个选择器的所有匹配器必须同时满足。不存在的标签按空值处理。应用代码仍需决定用户可选择的指标名、操作和标签名。

方法与参数

QueryBuilder

filter()保留标签等于指定字面量的序列;缺失标签按空字符串处理。
QueryBuilder.filter(label: str, value: Optional[StringInput]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
valuestr必填标签值,正则匹配器中则为 RE2 模式。编码为带引号的查询字符串,允许空字符串。

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

or_selector()在 MetricsQL 选择器内组合多个分支,与向量集合运算 or_() 不同。仅限 MetricsQL
仅限 MetricsQL
QueryBuilder.or_selector(*others: QueryBuilder) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
*othersQueryBuilder, ...可变参数额外输入表达式。多个聚合输入和 union 类转换仅限 MetricsQL;普通 PromQL 聚合只接收当前表达式。

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

where()为选择器添加一个标签匹配器。应在范围、函数或聚合操作前组合过滤条件。
QueryBuilder.where(label: str, operator: Matcher, value: Optional[StringInput]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
operatorstr必填只能是 '='、'!='、'=~' 或 '!~'。拒绝原始运算符片段或查询片段。
valuestr必填标签值,正则匹配器中则为 RE2 模式。编码为带引号的查询字符串,允许空字符串。

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

where_eq()保留标签等于指定字面量的序列;缺失标签按空字符串处理。
QueryBuilder.where_eq(label: str, value: Optional[StringInput]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
valuestr必填标签值,正则匹配器中则为 RE2 模式。编码为带引号的查询字符串,允许空字符串。

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

where_ne()保留标签不等于指定字面量的序列。
QueryBuilder.where_ne(label: str, value: Optional[StringInput]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
valuestr必填标签值,正则匹配器中则为 RE2 模式。编码为带引号的查询字符串,允许空字符串。

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

where_not_regex()添加匹配整个标签值的反向 RE2 匹配器。
QueryBuilder.where_not_regex(label: str, value: Optional[StringInput]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
valuestr必填标签值,正则匹配器中则为 RE2 模式。编码为带引号的查询字符串,允许空字符串。

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

where_regex()添加匹配整个标签值的 RE2 匹配器。模式作为查询数据转义,但仍保留正则语义。
QueryBuilder.where_regex(label: str, value: Optional[StringInput]) -> QueryBuilder
参数
参数 / 类型含义与可接受的值
labelstr必填不含控制字符的非空标签名。方言要求时,构建器会为名称加引号。
valuestr必填标签值,正则匹配器中则为 RE2 模式。编码为带引号的查询字符串,允许空字符串。

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

浏览文档

查找你需要的内容

搜索指南、示例和 Python API。