导出从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 Android使用两个后台服务错误   解压缩HTTPInputStream时,java GZIPInputStream过早关闭   javax和javax的区别是什么。网ssl。密钥库和服务器。ssl。为SpringBoot应用程序指定密钥库时的密钥库属性   java生成两个JPanel,而我只需要一个   java深度链接从play store安装应用程序时获取数据   java 安卓应用程序在退出时未正确释放蓝牙   java正确使用setCellValueFactory   java开放JdbcTemplate连接处于只读模式?   使用Spring MVC创建服务时发生java错误   JavaFX获取安装在计算机中的特定应用程序的版本   SecureRandom的安全问题:PRNG在java 1.5中不一致   windows我可以创建一个独立的。带Inno设置的Java应用程序的exe安装程序?   如何使用JavaServlet下载csv文件?   java从生成的缓冲图像中添加图像作为jasper中的数据记录?   java日期和时间解析