GitLab CI Dashboard Centralized Pipeline & Schedule Monitoring

GitLab CI Dashboard Centralized Pipeline & Schedule Monitoring

- 4 mins

Introduction

Managing GitLab pipelines across multiple projects can be a challenge. The native functionality of GitLab limits views to the project level, making it difficult to get a high-level overview of all pipeline activities. Recentyl I was looking for way to have all pipeline in a centrialze location. There are many diffrent opions for it You can monitor pipelines with monitoring tools and have dahsboards etc. I found The GitLab CI Dashboard solves this problem by providing a centralized dashboard for monitoring pipelines, schedules, and their statuses across entire GitLab groups.

The Project : gitlab-ci-dashboard

There is a demo also You can check : gitlab-ci-dashboard-demo

Key Features

Completed Features

Planned Features

Prerequisites

Installation Guide

  1. Generate your GitLab API token
    Create a personal access token here, with either read_api (for read-only) or api (for write access).

ci-dash

  1. Run the Docker container:
docker run -p PORT:8080 \
  -e GITLAB_BASE_URL=https://gitlab.com \
  -e GITLAB_API_TOKEN=my_token \
  larscom/gitlab-ci-dashboard:latest

ci-dash

You can use also docker-compose :

version: '3.8'

services:
  gitlab-dashboard:
    image: larscom/gitlab-ci-dashboard:latest
    ports:
      - "9980:8080"
    env_file:
      - .env-ci-dashboard
    restart: always
    volumes:
      - ./gitlab-dashboard-data:/data-ci-dashboard 
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:9980"]
      interval: 500s
      timeout: 100s
      retries: 10
GITLAB_BASE_URL=https://gitlab.guneycansanli.com
GITLAB_API_TOKEN=XXxxXXXXXxxxXXXXXxxXXXXXxXXXXX
  1. Visit http://localhost:PORT in your browser

    The dashboard will display all available groups and their associated projects by default.

ci-dash


Creating / Cancelling / Retrying Pipelines

To enable write actions:

Disable Write Actions (Hide Ellipsis Button)

To hide the option for write actions:

UI_HIDE_WRITE_ACTIONS=true

Prometheus Metrics

Metrics are exposed at:

http://localhost:PORT/metrics/prometheus

Configurable Environment Variables

Variable Type Description Required Default
GITLAB_BASE_URL string GitLab instance URL (e.g., https://gitlab.com)
GITLAB_API_TOKEN string GitLab access token
GITLAB_GROUP_ONLY_IDS string Comma-separated list of group IDs to include (e.g., 123,456)
GITLAB_GROUP_SKIP_IDS string Comma-separated list of group IDs to ignore
GITLAB_GROUP_ONLY_TOP_LEVEL bool Show only top-level groups false
GITLAB_GROUP_CACHE_TTL_SECONDS int Group data cache time-to-live (TTL) in seconds 300
GITLAB_PROJECT_SKIP_IDS string Comma-separated list of project IDs to ignore
GITLAB_PROJECT_CACHE_TTL_SECONDS int Project data cache TTL in seconds 300
GITLAB_PIPELINE_CACHE_TTL_SECONDS int Pipeline data cache TTL in seconds 5
GITLAB_PIPELINE_HISTORY_DAYS int How many days back to fetch pipeline data 5
GITLAB_BRANCH_CACHE_TTL_SECONDS int Branch data cache TTL in seconds 60
GITLAB_SCHEDULE_CACHE_TTL_SECONDS int Schedule data cache TTL in seconds 300
GITLAB_JOB_CACHE_TTL_SECONDS int Job data cache TTL in seconds 5
GITLAB_ARTIFACT_CACHE_TTL_SECONDS int Artifact data cache TTL in seconds 1800
API_READ_ONLY bool Set to true to disable write actions true
UI_HIDE_WRITE_ACTIONS bool Hide the ellipsis button for write actions false
SERVER_LISTEN_IP string IP address for the web server 0.0.0.0
SERVER_LISTEN_PORT int Port for the web server 8080
SERVER_WORKER_COUNT int Number of worker threads for the server CPU-specific
RUST_LOG string Logging level (debug, etc.)

GitLab CI Dashboard is designed to streamline pipeline monitoring across your GitLab groups with minimal configuration required, making it a must-have tool for DevOps teams.


Thanks for reading!

Guneycan Sanli

Guneycan Sanli

Guneycan Sanli

A person who like learning, music, travelling and sports.

comments powered by Disqus