- PVSM.RU - https://www.pvsm.ru -
Всем привет! Сегодня мы поговорим о real-time мониторинге Atlassian продуктов.
Для начала давайте определим, что такое мониторинг, и зачем он необходим для Atlassian продуктов.
Мониторинг программ применяется для отслеживания хода и результатов работы программы. Другими словами — это процесс, который в режиме реального времени может отображать информацию о состоянии программного продукта.
Когда это может быть полезно для Atlassian продуктов?
Рассмотрим примеры:
Также хотелось бы не только получать информацию в подготовленном виде, но и иметь возможность отправлять уведомления, если что-то происходит по ошибочному сценарию. Здесь нам и помогут Prometheus и его экспортеры для Atlassian продуктов.
Prometheus [1] — инструмент для одновременного мониторинга десятков тысяч служб. Сервер Prometheus считывает целевые объекты с интервалом, который вы определяете на сбор метрик, и хранит их в базе данных временных рядов. Для сбора метрик используется pull-модель. Кроме того, существует компонент Alert Manager, который умеет отправлять нотификации в различные каналы, если сработало определенное правило на основе метрик. Подробную информацию на русском языке можете найти здесь [2] и здесь [3].
Prometheus экспортер — это агент, который занимается сбором метрик непосредственно с сущности (сервера в целом или конкретного приложения), которую надо мониторить. У Prometheus богатые возможности для расширения, поэтому экспортеры есть для большинства популярных приложений.
[ jira | confluence | bitbucket | bamboo ]_exporter работает следующим образом:
Пример быстрой инсталляции Prometheus/Grafana в Docker реализован Stefan Prodan и доступен по этой ссылке [4].
После того, как вы установили плагин [5], вам сразу становится доступна ссылка для получения метрики: baseUrl/plugins/servlet/prometheus/metrics. Также есть возможность настроить ключ безопасности.
Далее в prometheus.yml необходимо добавить адрес, по которому получать метрики.
Например, для Jira:
- job_name: 'jira'
scheme: https # change to http if don't you have https
metrics_path: '/jira/plugins/servlet/prometheus/metrics'
static_configs:
- targets: ['myhost:2990'] # Jira host and port you serve
Интеграция завершена, можно использовать.
Список всех метрик вы можете увидеть в документации плагинов: Jira [6], Confluence [7], Bitbucket [8], Bamboo [9].
Примеры запросов:
jvm_uptime_gauge{job="jira"}
(sum(rate(jira_request_duration_on_path_sum[1m])) by (path)) / (sum(rate(jira_request_duration_on_path_count[1m])) by (path))
jira_total_issues_gauge
sum(increase(jira_dashboard_view_count[1h]))
Подробнее о построении запросов можете прочитать здесь [10].
Вы можете использовать Grafana [11] в качестве стороннего компонента для визуализации метрик, хранящихся в базе данных временных рядов Prometheus. Есть несколько уже готовых реализаций на официальном сайте [12]. Например, дашборды для Jira можете найти по этой ссылке [13].

Я планирую добавить возможность определения пользовательских метрик, используя Groovy, а также полную поддержку Service Desk. Таким образом, вы сможете добавлять пользовательские метрики не только самих продуктов, но и других плагинов.
Все экспортеры [5] открыты и активно развиваются. Если у Вас есть идеи по улучшению или расширению, пожалуйста, создавайте задачи (Jira [14], Confluence [15], Bitbucket [16], Bamboo [17]) и/или делайте pull-requests.
Если ваши Atlassian инсталляции довольно большие, и вам необходимо обеспечивать непрерывную работу, мониторинг вам определенно необходим. А каким образом — решайте сами. Prometheus, как один из вариантов, который, вне сомнения, упростит вам жизнь.
Спасибо за внимание!
Автор: Andrey_V_Markelov
Источник [18]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/jira/281552
Ссылки в тексте:
[1] Prometheus: https://prometheus.io/
[2] здесь: https://habr.com/company/selectel/blog/275803/
[3] здесь: https://medium.com/southbridge/prometheus-monitoring-ba8fbda6e83
[4] ссылке: https://github.com/stefanprodan/dockprom
[5] плагин: https://marketplace.atlassian.com/vendors/1210741/andrey-v-markelov
[6] Jira: https://github.com/AndreyVMarkelov/jira-prometheus-exporter/wiki/Prometheus-Exporter-For-Jira#metrics
[7] Confluence: https://github.com/AndreyVMarkelov/prom-confluence-exporter/wiki/Prometheus-Exporter-For-Confluence#metrics
[8] Bitbucket: https://github.com/AndreyVMarkelov/prom-bitbucket-exporter/wiki/Prometheus-Exporter-For-Bitbucket#metrics
[9] Bamboo: https://github.com/AndreyVMarkelov/bamboo-prometheus-exporter/wiki/Prometheus-Exporter-For-Bamboo#metrics
[10] здесь: https://prometheus.io/docs/prometheus/latest/querying/basics/#querying-prometheus
[11] Grafana: https://grafana.com/
[12] сайте: https://grafana.com/dashboards
[13] ссылке: https://grafana.com/dashboards?search=jira
[14] Jira: https://github.com/AndreyVMarkelov/jira-prometheus-exporter/issues
[15] Confluence: https://github.com/AndreyVMarkelov/prom-confluence-exporter/issues
[16] Bitbucket: https://github.com/AndreyVMarkelov/prom-bitbucket-exporter/issues
[17] Bamboo: https://github.com/AndreyVMarkelov/bamboo-prometheus-exporter
[18] Источник: https://habr.com/post/412897/?utm_campaign=412897
Нажмите здесь для печати.