Эта проблема
Вы когда-нибудь хотели отслеживать ваши взносы с открытым исходным кодом? Или, возможно, мониторируйте вклад, сделанные несколькими пользователями для своего рода события? Ну, у меня была точная такая же проблема 😊. С Hackboberfest Через угол я хотел, чтобы способ автоматически отслеживать взносы с открытым исходным кодом, чтобы иметь возможность стимулировать участие через призы или аналогичные. Довольно трудно отследить, кто открывает Pull запросы на какие проекты на GitHub в масштабе в рамках большой организации, но мальчик у меня есть решение для вас.
Решение
Я построил Прометей экспортер Это принимает файл конфигурации со списком пользователей и будет использовать поисковый API GitHub, чтобы найти запросы на тягу, созданные указанными пользователями. Этот экспортер предоставляет некоторые полезные данные, такие как Пользователь
, Create_at
, Статус
и ссылка
Отказ
Что такое экспортер Premetheus?
Prometheus Является ли база данных временной серии с открытым исходным кодами, которая использует модель «тяги», в которой она достигает настроенных клиентов (в основном плагинах), называемых экспортерами. Затем проглатывает данные от экспортеров через сконфигурированный интервал, который обычно составляет 15 секунд.
Я хочу увидеть запросы на потяжку пользователей, что сейчас?
Если вы знакомы с PROMETHEUS, вы можете просматривать документы GitHub-Pr-Exporter здесь Отказ
Может быть, вы не знакомы с Prometheus, следите за тем, как начать!
Как это работает?
Экспортер написан в Идти и использует Библиотека клиента Github Чтобы выполнить поиск, используя поисковый API GitHUB. Экспортер в основном является CLI, который принимает параметры конфигурации с помощью аргументов, а затем запускает веб-сервер в цикле, который ищет новые данные запроса на длину.
Searches
Экспортер использует API поиска и запускает этот поиск каждого пользователя: «Тип: PR Автор:
Поиск выполняется один раз на пользователя вместо объемного поиска из-за 256 лимита символов API поиска, но потому что API поиска имеет ограничение скорости 10 поисков в минуту для ненаутеентных клиентов, есть жесткое 6 секунды Потяните данные запроса для каждого пользователя, чтобы избежать указанного предела скорости. Это не огромное дело, поскольку это будет обрабатывать около 1000 пользователей за 90 минут, что совершенно нормально для такого рода данных.
Параметры конфигурации
--config
YAML Config файл с именами пользователей- Деньвы-назад
Сколько дней до текущего, чтобы получить потянутые запросы. По умолчанию для90.
Iignore-user-repos
Игнорировать потянуть запросы, что пользователь, сделанный для своих собственных репозиториев (без обмана!). По умолчанию дляложь
Отказ- ИНТЕРВАЛ
Как долго (в секундах) спать между проверкой новых данных. По умолчанию для21600
(6 часов)- Порт
На каком порту запустить веб-сервер. По умолчанию для8080.
Развертывание github-pr-экспортер, прометея и графана
Существует 3 компонента, необходимые для вставания и эксплуатации, чтобы использовать данные.
Вам также нуждается в Docker, Docker-Compose, а Git установлен. Это запускает 3 компонента выше в виде контейнеров и соединяет их вместе с помощью докера.
- Начните с клонирования репо и CD’ing в каталог
git clone https://github.com/circa10a/github-pr-exporter.git cd github-pr-exporter
- Начните контейнеры
docker-compose up -d
- Выгода!
Теперь вы должны иметь возможность получить доступ к Grafana в http://localhost: 3000 и предварительно обработанная приборная панель на http://localhost: 3000/D/H_PRLumnk/Pull-запросы? ORGID = 1
Логин администратора по умолчанию является именем пользователя: Админ
Пароль: админ
Мониторинг вашего пользователя или других
Чтобы изменить конфигурацию по умолчанию, просто обновите Примеры/config.yaml
включить ваш
docker-compose down docker-compose up -d
Затем ознакомьтесь с новыми деталями на приборной панели! Обратите внимание, что для приборной панели можно занять около 2 минут, чтобы отразить новые данные, поэтому просто попробуйте освежать или включить автоматическое обновление.
Оригинал: «https://dev.to/circa10a/monitoring-github-pull-requests-with-prometheus-57p2»