GitLab性能监控
从GitLab 8.4开始,GitLab就有了自己的应用程序性能测量系统,简称“GitLab性能监控”。GitLab性能监控有社区版和企业版。
除了本介绍之外,为了理解和正确配置GitLab Performance Monitoring,建议您阅读以下文档:
注意:Omnibus GitLab 8.16包含了Prometheus作为收集度量的附加工具。它将最终取代InfluxDB时,他们的指标集合是对等的普罗米修斯的文档.
GitLab性能监控介绍
GitLab性能监控可以测量各种各样的统计数据,包括(但不限于):
- 完成一个事务(web请求或Sidekiq作业)所花费的时间。
- 运行SQL查询和呈现HAML视图所花费的时间。
- 执行(仪器化)Ruby方法所花费的时间。
- Ruby对象分配,特别是保留的对象。
- 系统统计信息,例如进程的内存使用情况和打开的文件描述符。
- Ruby垃圾收集统计信息。
指标数据被写入InfluxDB在UDP.存储的数据可以使用Grafana或任何其他支持从InfluxDB读取数据的应用程序。也可以使用InfluxDB CLI查询数据。
指标类型
收集了两种类型的度量:
- 特定于事务的度量。
- 采样的度量,在一个单独的线程中以一定的间隔收集。
交易指标
事务度量是可以与单个事务相关联的度量。这包括诸如事务持续时间、任何执行SQL查询的计时、呈现HAML视图所花费的时间等统计信息。为处理的每个Rack请求和Sidekiq作业收集这些指标。
抽样指标
抽样指标是不能与单个事务相关联的指标。示例包括垃圾收集统计信息和保留的Ruby对象。这些指标是定期收集的。这个区间由两部分组成:
- 用户定义的间隔。
- 在间隔之上随机生成的偏移量,同一偏移量不能连续使用两次。
实际间隔可以是定义的间隔的一半和间隔以上的一半之间的任何位置。例如,对于用户定义的15秒间隔,实际间隔可以在7.5到22.5之间。间隔在每次采样运行时重新生成,而不是生成一次并在流程生命周期内重用。