
measurementlab/prometheus-bigquery-exporter一个用于将BigQuery查询结果转换为Prometheus指标的导出器。
Prometheus通过导出器收集系统的当前状态,并将收集到的值与收集时间的时间戳关联。
注意:此导出器无法将历史值与过去的时间戳关联!
因此,prometheus-bigquery-exporter执行的查询结果应代表查询执行时固定时间点的有意义值,例如“1小时前5分钟窗口内的测试总数”。
prometheus-bigquery-exporter接受任意BigQuery查询,但查询结果必须遵循可预测的结构,以便导出器成功解析并转换为Prometheus指标。
指标名称由查询文件名和查询值列派生。导出器通过匹配列名模式value([.+])识别值列,括号内的字符将附加到从查询文件名获取的指标前缀后。例如:
bq_ndt_test.sqlbq_ndt_testvalue_countbq_ndt_test_count必须包含值列(至少一个):
value([.+]) - 每个查询必须定义"value"结果列,值必须为整数或浮点数。若需返回多个值,每个值列需以"value"为前缀并使用唯一后缀。标签列(可选):
标签必须为字符串:
重复指标视为错误:
以下查询创建标签并按标签分组:
sql-- 示例数据,替代实际值表 WITH example_data AS ( SELECT "a" AS label, 5 AS widgets UNION ALL SELECT "b" AS label, 2 AS widgets UNION ALL SELECT "b" AS label, 3 AS widgets ) SELECT label, SUM(widgets) AS value FROM example_data GROUP BY label
bq_example.sqlshprometheus-bigquery-exporter -gauge-query bq_example.sql
txtbq_example{label="a"} 5 bq_example{label="b"} 5 ...
典型部署在Kubernetes环境(如GKE)中:
sh# 进入示例目录 cd example # 部署示例查询为配置映射及Kubernetes部署 ./deploy.sh
若需本地运行BigQuery导出器(如测试新查询),可按以下步骤构建并运行:
shdocker build -t bqx-local -f Dockerfile .
shgcloud auth login gcloud auth application-default login
shdocker run -p 9348:9348 --rm \ -v $HOME/.config/gcloud:/root/.config/gcloud \ -v $PWD:/queries -it bqx-local \ -project=$GCLOUD_PROJECT \ -gauge-query=/queries/example/config/bq_example.sql

manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务