博客/工程

使用GitLab活动数据和排除问题新的Grafana插件

2021年2月25日, 7分钟

这篇文章已经更新,以反映变化的可用性GitLab数据源插件Grafana云用户。

GitLab是世界上最流行的基于web的DevOps生命周期工具,用数百万的git仓库经理和问题跟踪,持续集成和部署的目的。

今天,我们很高兴宣布的第一个测试版GitLab数据源插件旨在帮助用户找到有趣的见解GitLab活动数据。用这个插件,这对用户是可用的Grafana云账户或Grafana企业许可,用户可以从GitLab可视化数据的API。下面是一些例子:

  • 追踪详细GitLab统计数据,如每天最高贡献者或提交。
  • 基于发布和部署创建注释,看看他们与其他指标。
  • 使用模板变量,如项目,设置过滤器和参数化仪表板。

插件利用GitLab API和原始数据,它返回为每个可用的资源,如提交或问题。这意味着我们可以从这些资源中获取一些数据通过应用一些过滤器(想想提交从上周或上个月问题关闭)。最终,我们需要使用可用的数据转换Grafana把GitLab API返回的原始数据,为有意义的见解。

从原始数据到有意义的见解

当一个人坐在面前的一个新的Grafana仪表板思考可以从GitLab活动中提取有意义的见解,最常见的一种想法,很容易想到:我每天提交的趋势是什么样子?尽管我们可以讨论是否从开发的角度来看,这是一个很好的度量这绝对是一个很好的例子,看看我们可以度量的使用我们的新插件。

获取提交

第一步我们的“每天提交”指标是获取原始提交的数据GitLab API。这样做,我们需要选择GitLab数据源,然后选择提交查询的查询编辑器。最后,我们需要选择我们想查询提交项目标识符。在这个例子中,我们使用GitLab项目本身。

Grafana GitLab企业数据源插件:查询提交
Grafana GitLab企业数据源插件:查询提交

一旦我们建立了我们的查询在插件的查询编辑器中,然后我们可以选择可视化看到提交的数据是什么样子:

GitLab企业数据源插件Grafana:提交表。
GitLab企业数据源插件Grafana:提交表。

注意:这张截图只是一个例子,所以只显示所有可用的字段的子集为每个提交。

分组提交按日期

现在我们有原始提交,是时候使用集团转换:

Grafana GitLab企业数据源插件:原始提交转换。
Grafana GitLab企业数据源插件:原始提交转换。

转换是在Grafana 7.0中引入的作为一种直接从Grafana内操作数据。他们是特别有用的表格数据从数据源回来GitLab一样,GitHub,ServiceNow

一旦我们选择了集团变换,它是集团的的时候了committed_at_date场和使用计算运营商“计数”有多少承诺为每个组(每天):

Grafana GitLab企业数据源插件:Group by转换
Grafana GitLab企业数据源插件:Group by转换

最后,我们可以切换回可视化,看看我们“每天提交”指标的趋势:

GitLab企业数据源Grafana插件:图形可视化。
GitLab企业数据源Grafana插件:图形可视化。

相关事件和指标与注释

注释是一个关键的Grafana GitLab数据源支持的功能插件。他们帮助我们联系一些事件(如释放或部署),其他指标(如交通、正常运行时间或延迟),所以我们可以关联这些事件与其他指标从GitLab数据源或指标从其他数据源普罗米修斯。注释可以帮助我们回答这样的问题:内存使用量飙升的最新部署的原因吗?

让我们看看如何创建注释的例子基于版本:

Grafana GitLab企业数据源插件:Grafana注释。
Grafana GitLab企业数据源插件:Grafana注释。
  1. 注释部分,创建一个新的注释命名释放用你GitLab插件的数据源
  2. 选择释放查询类型和介绍项目Id
  3. 选择的名字作为显示字段created_at作为时间字段(定义了字段用于显示面板的注释)。
  4. 最后,点击更新保存配置。

从现在开始,我们所有的可视化将显示一个注释(截图中的垂直蓝线)为每一个版本:

GitLab企业数据源插件:注释显示在图形可视化。
GitLab企业数据源插件:注释显示在图形可视化。

模板变量

可以想从前面的示例,需要手动指定项目仪表板可以恼人的标识符。除此之外,在仪表板中使用静态配置使他们更少的可重用。这正是为什么我们添加了支持模板变量。由于这个特性,我们可以参数化我们的仪表板。让我们看看如何创建一个“项目”的一个例子变量:

GitLab企业数据源插件:变量部分。
GitLab企业数据源插件:变量部分。
  1. 变量部分,使用你的GitLab插件创建一个新变量数据源
  2. 选择项目查询类型和马克拥有是的
  3. 选择的名字作为显示字段id作为值字段。(这个定义字段用于变量的标签和值)。
  4. 点击更新保存新配置。

从现在开始,我们的面板将显示一个新的项目字段中;我们可以选择我们的一个项目或一个手动介绍:

GitLab企业数据源插件:项目领域。
GitLab企业数据源插件:项目领域。

最后一步是使用这个新变量我们中创建查询。为此,我们只需要更新我们的查询来取代我们的静态项目Id新变量(美元的项目)。

GitLab企业数据源插件:项目ID。
GitLab企业数据源插件:项目ID。

当前的问题和未来的计划

API率限制

GitLab API率限制默认为每个用户每分钟2000个请求。尽管看起来足够高,查询大量的数据(例如,“给我所有的承诺从过去两年”)很可能是有问题的。

GitLab API只支持到每页100个结果,所以查询与大量的结果最终将被分解成许多查询,使其更容易击中率限制。此外,大量的信息必须获取并返回将使查询缓慢的负载。

报警

报警Grafana是另一个关键特性,但由于GitLab API提供了一些有意义的时间序列数据,目前还没有可以设置警报GitLab数据源的查询。

聚合

如上所述,我们依靠Grafana转换执行数据聚合。使一个常见的用例与GitLab插件,我们添加了created_at_date在上面的示例中使用集团转换。然而,这将是有用的能够聚合数据在更大或更低的时间单位(每小时、每周、每月等),也因此我们正在开发新的转换(和其他聚合)可能!

更多的查询类型和过滤器

GitLab数据源的测试版插件仅支持的一个子集GitLab API参考资料以及可用资源的一个子集的过滤器。我们计划推出更多查询类型和过滤器。

缓存

一些数据源插件有一个缓存机制来减少的可能性达到API率限制和解决一些性能问题。GitLab插件目前并没有一个缓存机制,但它是我们的一个主要添加一个短期目标。

结论

GitLab数据源的插件,我们已经表明,它可以迅速从GitLab API和容易得到一些原始数据变换提取一些有意义的见解。这样我们可以排除故障直接从GitLab活动(例如,阻塞问题)或诊断相关问题通过关联GitLab事件指标从其他数据源。

去了解更多GitLab解bob彩票中奖计划决方案页面。GitLab数据源插件对用户可用Grafana云账户或Grafana企业许可证。联系我们如果你想尝试一下!

感谢我的同事塔尼亚Batieva和安德鲁·哈克曼的插件,和米奇•希曼朱莉大坝,和乌苏拉的基础在这篇博客的帮助。

如果你不是已经在使用Grafana云-最简单的方法开始使用可观察性在14天的免费试用注册现在Grafana云无限的度量,日志、痕迹和用户,长期保留和访问一个企业插件。