使用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的设置 -> 开发者设置 -> 个人访问令牌下创建这些令牌。然后使用“生成新令牌”按钮。
填写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下拉菜单。
最后
如果您想查看容器的构建方式、修复它或改进它,请查看该存储库。