Я считаю , что это очень полезный инструмент , он позволяет следить за состоянием ваших пайплайнов, job-ов и мониторить переменные окружения, можно отслеживать статусы, продолжительность, и на самом деле там есть очень много интересных настроек
Примеры дашбордов из Grafana
Pipelines
Jobs
Environments / Deployments
github.com/IvanRezv/GitlabCI-exporter - ссылка на мой репозиторий с конфигом для быстрого старта сервиса.
Архитектура сервисов описана в docker-compose файле, необходимые конфигурационные файлы для работы сервисов, находятся рядом с compose файлом и прикидываются волюмами в сервисы. Соответственно для Prometheus есть конфиг файл, в котором описана ссылка на сервис, с которого необходимо брать метрики. А для Grafana вложены дашборды и файл с ссылкой на ресурс который собирает метрики.
---
version: '3.9'
x-base:
&base
networks:
- default
restart: always
services:
gitlab-ci-pipelines-exporter:
<< : *base
image: docker.io/mvisonneau/gitlab-ci-pipelines-exporter:v0.5.2
ports:
- 8080:8080
environment:
GCPE_CONFIG: /etc/gitlab-ci-pipelines-exporter.yml
GCPE_INTERNAL_MONITORING_LISTENER_ADDRESS: tcp://127.0.0.1:8082
volumes:
- ./gitlab-ci-pipelines-exporter.yml:/etc/gitlab-ci-pipelines-exporter.yml
prometheus:
image: docker.io/prom/prometheus:v2.28.1
<< : *base
container_name: prometheus
ports:
- 9090:9090
links:
- gitlab-ci-pipelines-exporter
volumes:
- ./prometheus/config.yml:/etc/prometheus/prometheus.yml
grafana:
image: docker.io/grafana/grafana:8.0.5
<< : *base
container_name: grafana
ports:
- 3000:3000
environment:
GF_INSTALL_PLUGINS: grafana-polystat-panel,yesoreyeram-boomtable-panel
links:
- prometheus
volumes:
- ./grafana/dashboards.yml:/etc/grafana/provisioning/dashboards/default.yml
- ./grafana/datasources.yml:/etc/grafana/provisioning/datasources/default.yml
- ./grafana/dashboards:/var/lib/grafana/dashboards
networks:
default:
driver: bridge
Так же прикладываю ссылку на видео , где описал инструкцию по поднятию сервиса.
Использование
Grafana
- адрес машины\URL:3000
Prometheus
- адрес машины\URL:9090
Пароль и логин по умолчанию для grafana - admin
. После первой авторизации будет предложено сменить его.
Синтаксис для изменения конфигурации сбора метрик(файла gitlab-ci-pipelinex-exporter.yml
) - Syntax.
В официальном источнике так же есть инструкции по развертыванию сервиса с помощью helm, scoop, deb packages и т.д.
Комментарии (5)
kost
19.01.2022 02:03Можно ли ограничить глубину запросов к gitlab API?
У меня получает максимум 168 старых (8-12 месяцев назад) pipelines, и всё. Я запускаю examples/quickstart в Docker.IvanRezv Автор
19.01.2022 13:06+1скорее всего нет, можно выбрать конкретную ветку, чтоб старые pipelines не подтягивались из всего репо, синтакс в docs/configuration_syntax.md
WoozyMasta
Exporter хороший, но к сожалению не вывозит графана десятки тысяч сборочных заданий на одном дашборде. Как я его не крутил, шардил неймспейсы, только релизные теги и мастер бранчи в статистику публиковал. Всё равно работает с большим объемом очень плохо. Да и нагрузку на API GitLab недурную создает.
По итогу имею полтора десятка упрощенных дашбордов, для определенных тегов. В таком режиме хоть как-то могу наблюдать за состоянием сборок, но увы страдает юзабилити.
Найти готового коробочного решения для больших объемов к сожалению не удалось пока, использую костыли.
IvanRezv Автор
а какие костыли используйте? как доработать можно? я думал сделать самописный дашборд на django, но пока руки не дошли)
WoozyMasta
Да ничего особенного, если есть инцедент в ход идет bash или python на которм подсчитываю нужные метрики или gnuplot строит график. Благо нужно это не часто, но готового решения нет, всё как-то руки не доходят.