Step by step 搭建Gitlab CI Pipeline的监控Dashboard

Table of Contents

前言

公司的代码管理是用的Gitlab, 持续集成(CI)估计是顺手就用了Gitlab的CI(不要问我为啥不用jenkins)。

经过一段时间使用下来,基本功能是够用的,就是差了一个Dashboard来统一查看当前CI的状态,这点还是挺不方便的。

于是,经过一番搜索,选中了gitlab-monitor,原因吗,一方面比较简洁美观;另一方面,可以docker部署。 screenshot.png

搭建步骤

  1. 首先拉取镜像
docker pull timoschwarzer/gitlab-monitor
  1. 获得gitlab的access token。登录gitlab后,进入用户设置,点击左侧菜单的Access Token,可以看到如下的页面。 Personal Access Tokens · User Settings · GitLab.png

然后,输入个名字,设置过期时间,勾选API和Read Repository,就可以创建一个token。 New Personal Access Tokens · User Settings · GitLab.png

记得一定要复制保存好,回头可是没有地方再看到这个token了!不过也没什么大不了,忘了就再申请一个吗

  1. 下面,就是启动gitlab-monitor的container了。它支持一些自定义的参数可以在configuration里查询。

我根据自己的偏好,设置如下。

{
    "gitlabApi": "https://gitlab.******.com/api/v4",
    "privateToken": "*********",
    "showStagesNames": true,
    "fetchCount": 40,
    "pipelinesOnly": true,
    "showUsers": true,
    "pollingIntervalMultiplier": 0.2
}

这个参数可以通过环境变量GITLAB_MONITOR_CONFIG传入,于是启动docker的命令如下:

docker run -d -p 11080:80 -e GITLAB_MONITOR_CONFIG='{"gitlabApi": "https://gitlab.*****.com/api/v4","privateToken": "********","showStagesNames": true,"fetchCount": 40, "pipelinesOnly": true, "showUsers": true,"pollingIntervalMultiplier": 0.2}'  --name=gitlab-monitor timoschwarzer/gitlab-monitor:latest
  1. 最后一步,在浏览器里输入localhost:11080就好了。

写在最后

有一个点需要注意一下,我们通过环境变量指定的配置是会保存在浏览器的LocalStorage里的,并且是明文的,理论上这个AccessToken是有泄露的风险的。 localstorage.png 但这是gitlab-monitor的实现决定的,除非修改源码。