导出从SQL查询生成的普罗米修斯度量。

query-exporter的Python项目详细描述


配置文件格式

应用程序的示例配置文件如下:

databases:db1:dsn:sqlite://db2:dsn:sqlite://keep-connected:falsemetrics:metric1:type:gaugedescription:A sample gaugemetric2:type:summarydescription:A sample summarylabels:[l1,l2]metric3:type:histogramdescription:A sample histogrambuckets:[10,20,50,100,1000]metric4:type:enumdescription:A sample enumstates:[foo,bar,baz]queries:query1:interval:5databases:[db1]metrics:[metric1]sql:SELECT random() / 1000000000000000query2:interval:20databases:[db1,db2]metrics:[metric2,metric3]sql:|SELECT abs(random() / 1000000000000000) AS metric2,abs(random() / 10000000000000000) AS metric3,"value1" AS l1,"value2" AS l2query3:interval:10databases:[db2]metrics:[metric4]sql:|SELECT value FROM (SELECT "foo" AS value UNIONSELECT "bar" UNIONSELECT "baz")ORDER BY random()LIMIT 1

数据库 部分

本节包含要连接到的数据库的定义。密钥名是 任意的,仅用于引用 查询部分中的数据库。

每个数据库定义可以有以下键:

< DL>
DSN

数据库的连接字符串,格式如下:

dialect[+driver]://[username:password][@host:port]/database[?option=value&...]

如需有关可用引擎的详细信息,请参阅sqlalchemy文档。

也可以从环境变量中获取连接字符串 (例如, $connection_string )通过将 dsn 设置为:

env:CONNECTION_STRING
保持连接
是否为查询之间的数据库保持连接打开,或 每次断开。如果未指定,则默认为 。设置 如果在数据库上运行查询,则此选项 false 可能很有用 间隔很长,以避免保持空闲连接。

指标 部分

本节包含prometheus的度量定义。键用作度量 名称,因此必须是有效的度量标识符。

每个度量定义都可以有以下键:

< DL>
类型
必须指定度量的类型。以下度量类型是 支持:

counter, enum, gauge, histogram, summary
说明
度量的可选描述。
标签

要应用于度量的标签名称的可选列表。

如果指定,更新度量的查询必须返回包含 除了度量值之外,每个标签的值。列名必须 匹配度量和标签名称。

对于 直方图 度量,是度量的存储桶列表。

如果未指定,则应用默认存储桶。

状态

对于 枚举 度量,可能状态的字符串值列表。

更新枚举的查询必须返回有效状态。

查询 部分

本节包含要执行的查询的定义。密钥名是 任意的,仅用于标识日志中的查询。

每个查询定义可以有以下键:la-

< DL>
间隔

运行查询的时间间隔。

如果未指定后缀,则该值将被解释为秒;有效后缀 分别是 s m h d 。只接受整数值。

如果未指定值(或指定为 null ),则查询仅 根据http请求执行。

数据库

要对其运行查询的数据库列表。

名称必须与 数据库 部分中定义的名称匹配。

度量值自动用 数据库标签标记,以便 为运行查询的每个数据库生成独立系列。

指标

查询更新的度量列表。

名称必须与 度量中定义的名称匹配。

SQL语句

查询的SQL文本。

查询必须返回与 指标数匹配的行数。 为查询指定,加上这些度量的标签(如果有的话)。

返回列的名称应与声明的度量和 他们的标签。作为例外,如果查询的度量没有标签和 列名与度量值不匹配,度量值声明的顺序 使用。例如:

query:databases:[db]metrics:[metric1,metric2]sql:SELECT 10.0, 20.0

将metric1更新为 10.0 ,metric2更新为 20.0

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java使用split函数分割字符串,但没有得到期望的结果   未找到包含derby数据库嵌入架构的sql Java桌面应用程序错误   java elasticsearch vs solr用于定制全文搜索系统   java Android:创建没有startOffset的动画延迟?   java如何查看其他应用程序接收的数据?   java如何在Linux中使用D和classpath选项运行jar文件   java和域设计最佳实践   具有相同内存位置的java数组,将显示为输出   连接到java中的elasticsearch?   Java Playframework重定向到带有Json负载的外部url   java无法在Android平台上使用InputStream为蓝牙socket创建ObjectInputStream   使用POI将Excel日期转换为Java日期,年份未正确显示   oracle从数据库层还是Java层调用webservice?