oxil / php-travis-influxdb

此包的最新版本(0.7)没有提供许可证信息。

从Travis CI读取数据,并将构建状态和指标写入influxDB数据库,例如用于Grafana。

0.7 2019-10-22 12:51 UTC

This package is auto-updated.

Last update: 2024-09-23 00:17:53 UTC


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的连接。hostportdatabase是必需的,只有当您的influxdb实例需要时才提供身份验证参数。
    注意:如果数据库不存在,它将在第一次运行时自动创建。

  • travis - 这包含要从其中读取构建状态的travis仓库集。
    travis顶级元素内的条目按您选择的标识符索引,通常与不同的端点相关(例如,当使用travis-ci.org和travis-ci.com时)。选择的标识符将用作influxdb中插入的每个仓库条目的度量名称。在条目内部,使用endpoint成员提供travis ci api端点,并使用repositories成员提供要读取构建状态的仓库名称数组。

要触发运行,可以简单地调用上面实例化的处理器上的process方法。

$processor->process();

###从InfluxDB读取数据

从Travis CI读取的数据将被插入到配置的数据库中的度量内(见上面),标识符由配置文件中的travis元素中指定的标识符确定。

每个度量条目都将根据构建是否失败分别写入值为01的值。以下标签也将添加到条目中,以供报告信息使用。

  • 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