使用 InfluxDB Cloud 监控 GitHub 仓库
作者:Rick Spencer / 用例, 产品, 开发者
2019 年 10 月 11 日
导航至
在这篇博文中,我将向您展示一种简单的方法,使用您的 InfluxDB Cloud 帐户以及来自我的 Docker Hub 帐户的 Docker 容器,通过使用新版 InfluxDB Cloud 中内置的模板功能,轻松监控一组 GitHub 仓库。
摘要
系统的工作方式是,有一些仪表板模板以及其相关的查询、变量和设置可供使用。唯一缺少的是实际的数据收集。使用 InfluxDB 进行数据收集通常使用 Telegraf。我创建了一个包含 Telegraf 和所有配置都已设置好的 Docker 镜像。因此,您只需执行以下操作:
- 实例化 GitHub 模板。
- 为该存储桶创建存储桶和令牌。
- 获取 Github 访问令牌。
- 使用必要的环境变量运行容器。在我的例子中,我使用 docker-compose 运行它。
之后,您的 GitHub 仪表板将像魔法一样工作。
实例化模板
首先,使用左侧导航栏导航到 模板 页面。
在这里,您会注意到一个长长的模板列表,每个模板都旨在加速在不同场景下使用 InfluxDB Cloud。目前,我对 GitHub 数据感兴趣。
如果您想查看模板本身,可以单击标题,查看用于描述仪表板的 JSON。它功能非常丰富,而且使用它不需要理解它。但是,如果您想创建自己的模板,它可能会很有用。您可以保存 JSON,修改并共享它,或稍后在其他帐户或 InfluxDB 2.0 开源版中使用。不过,现在我只想单击 创建 按钮来实际应用模板。
创建模板后,如果您导航到 仪表板 页面,您将看到已添加了一个名为“Github Data”的新仪表板。但是单击标题,您最终会得到一个显示“没有结果”的仪表板。这是预期的,因为我们没有配置任何实际输入 GitHub 数据的内容。
创建存储桶
在我们开始从 GitHub 发送数据之前,我们需要创建一个存储桶来包含该数据。首先,使用左侧导航栏导航到存储桶页面。
创建一个新的存储桶。我将存储桶命名为“github”,但您可以随意命名。
创建访问令牌
Telegraf 插件将需要一个 Influx 令牌,该令牌具有对我们刚刚创建的存储桶的写入权限,以及一个 GitHub 个人访问令牌,用于访问您的 GitHub 帐户。
首先,切换到 令牌 选项卡。
然后使用 生成 下拉菜单并选择 读/写令牌。
赋予其对我们刚刚创建的存储桶的写入权限。
创建完成后,您可以单击它以查看令牌本身,我们稍后会用到它。
您还需要一个 GitHub 令牌来访问您的 GitHub 帐户。提醒一下,您可以在 GitHub 的 Settings -> Developer Settings -> Personal access tokens 中创建这些令牌。然后使用“Generate new token”按钮。
填写 docker-compose 文件并运行
现在我们拥有运行 Telegraf 所需的一切。您需要的一切都在 rickspencer3/github-telegraf 中。您只需通过环境变量传递配置即可。
我现在将使用 docker-compose 并在我的桌面上运行它。但是,在您选择的 docker 平台上运行它应该很简单。为了便于阅读,我截断了令牌。首先,我将只查看两个存储库,但您可以在此处列出任意数量的存储库。
version: "3.7"
services:
telegraf:
image: rickspencer3/github-telegraf
environment:
- INFLUX_URL=https://us-west-2-1.aws.cloud2.influxdata.com
- INFLUX_TOKEN=...
- [email protected]
- INFLUX_BUCKET=github
- GITHUB_TOKEN=1...
- GITHUB_REPOS=influxdata/influxdb,influxdata/flux
填写 docker-compose 文件并将其另存为 docker-compose.yaml 后,我可以使用 docker-compose up 命令运行它
$ docker-compose up
Creating network "github-integration_default" with the default driver
Creating github-integration_telegraf_1 ... done
Attaching to github-integration_telegraf_1
telegraf_1 | CONFIGURING REPOSITORIES:
telegraf_1 | > [influxdata/influxdb]
telegraf_1 | > [influxdata/flux]
telegraf_1 | > [influxdata/idpe]
telegraf_1 | 2019-10-09T17:20:00Z I! Starting Telegraf 1.12.2
telegraf_1 | 2019-10-09T17:20:00Z I! Using config file: /etc/telegraf/telegraf.conf
telegraf_1 | 2019-10-09T17:20:00Z I! Loaded inputs: github
telegraf_1 | 2019-10-09T17:20:00Z I! Loaded aggregators:
telegraf_1 | 2019-10-09T17:20:00Z I! Loaded processors:
telegraf_1 | 2019-10-09T17:20:00Z I! Loaded outputs: influxdb_v2
telegraf_1 | 2019-10-09T17:20:00Z I! Tags enabled: host=772e3e34b0e5
telegraf_1 | 2019-10-09T17:20:00Z I! [agent] Config: Interval:10s, Quiet:false, Hostname:"772e3e34b0e5", Flush Interval:10
这意味着 Telegraf 每 10 秒从 GitHub 收集数据。
查看仪表板
如果我导航回仪表板,仍然没有结果。那是因为我必须告诉仪表板要使用哪个存储桶。这意味着如果我想出于某种原因将数据分开,我可以运行指向不同存储桶的不同容器。因此,我应该使用下拉菜单选择正确的存储桶。如果您没有看到下拉菜单,您可能需要单击右上角的 变量 按钮。
那时,您可以看到已收集了一些数据。
如果我想查看特定的存储库,我可以使用 repo 下拉菜单来完成。
最后
如果您想查看容器是如何构建的、修复它或改进它,请查看 repo。