oxil / php-travis-influxdb
从Travis CI读取数据,并将构建状态和指标写入influxDB数据库,例如用于Grafana。
Requires
- influxdb/influxdb-php: ^1.15
README
PHP库,用于从Travis CI读取构建数据并将其写入influxdb时间序列数据库,例如用于Grafana。
###概述
一个简单的PHP库/CLI应用程序,旨在从多个Travis CI仓库中读取最新的构建状态信息,并将结果插入到Influx DB时间序列数据库中,以便在监控应用程序(例如Grafana)中使用。
###安装
可以通过composer安装,既可以作为库
composer require oxil/php-travis-influxdb
也可以作为一个可用的CLI应用程序
composer create-project oxil/php-travis-influxdb
###入门
入口点是Processor类,如下所示实例化
$processor = new Oxil\PHPTravisInflux\Processor(CONFIG_PATH);
其中CONFIG_PATH是一个指向配置文件的绝对路径,该配置文件格式如下
{
"useBuildTimestamps": true,
"influxdb": {
"host": "localhost",
"port": 8086,
"database": "example",
"username": "username",
"password": "password"
},
"travis": {
"travis_ci_org": {
"endpoint": "https://api.travis-ci.org",
"repositories": [
"OxfordInfoLabs/kinikit-core",
"OxfordInfoLabs/kinikit-mvc",
"OxfordInfoLabs/kinikit-persistence"
]
}
}
}
配置选项如下
-
useBuildTimestamps - 如果设置为true,则只有新的构建将被添加到influx数据库中。如果设置为false,则每个运行都会为每个仓库写入一条记录。
-
influxdb - 此子集配置了与influxdb的连接。host、port和database是必需的,只有当您的influxdb实例需要时才提供身份验证参数。
注意:如果数据库不存在,它将在第一次运行时自动创建。 -
travis - 这包含要从其中读取构建状态的travis仓库集。
在travis顶级元素内的条目按您选择的标识符索引,通常与不同的端点相关(例如,当使用travis-ci.org和travis-ci.com时)。选择的标识符将用作influxdb中插入的每个仓库条目的度量名称。在条目内部,使用endpoint成员提供travis ci api端点,并使用repositories成员提供要读取构建状态的仓库名称数组。
要触发运行,可以简单地调用上面实例化的处理器上的process方法。
$processor->process();
###从InfluxDB读取数据
从Travis CI读取的数据将被插入到配置的数据库中的度量内(见上面),标识符由配置文件中的travis元素中指定的标识符确定。
每个度量条目都将根据构建是否失败分别写入值为0或1的值。以下标签也将添加到条目中,以供报告信息使用。
-
repo - 仓库的完整字符串,例如OxfordInfoLabs/kinikit-core
-
short_name - 仓库的简称(斜杠后的最后一部分),例如kinikit-core
-
status - 根据Travis构建的状态,可以是成功或失败
-
last_run - 从Travis获得的构建的最后运行时间
现成的CLI应用程序
示例目录中包含一个现成的可工作的CLI脚本示例。
要安装此应用程序,请使用以下形式的composer安装
composer create-project oxil/php-travis-influxdb
然后根据您的需求调整示例/config.json。之后,您可以通过以下命令运行应用:
php example/travis_influx.php