Monitoreo de productos Atlassian con Prometheus

Introduccion


Hola a todos! Hoy hablaremos sobre el monitoreo en tiempo real de los productos Atlassian .

Primero, definamos qué es el monitoreo y por qué es necesario para los productos Atlassian .

El monitoreo del programa se utiliza para rastrear el progreso y los resultados de un programa. En otras palabras, es un proceso que en tiempo real puede mostrar información sobre el estado de un producto de software.

¿Cuándo puede ser útil para los productos Atlassian ?

Considere los siguientes ejemplos:

  • Desea saber cómo la actualización de un producto o complemento afecta el rendimiento del sistema;
  • Desea saber sobre el estado del hierro y la memoria en diversas condiciones y en ciertos momentos. Por ejemplo, cómo aumentar el número de usuarios o cambiar la hora del día afecta el sistema;
  • Desea observar qué tan activamente se está utilizando el sistema en su conjunto. Por ejemplo, el número total de tareas en Jira o en 1 hora;
  • Desea establecer un recordatorio en la fecha de vencimiento de la licencia;
  • Desea saber la cantidad de espacio en disco utilizado para almacenar documentos.

También me gustaría no solo recibir información en forma preparada, sino también poder enviar notificaciones si algo sucede de acuerdo con un escenario erróneo. Aquí Prometheus y sus exportadores de productos Atlassian nos ayudarán.

Arquitectura de soluciones


Prometheus es una herramienta para monitorear decenas de miles de servicios simultáneamente. El servidor Prometheus lee los objetivos en un intervalo que usted define para recopilar métricas y las almacena en una base de datos de series de tiempo. Para recopilar métricas, se utiliza el modelo de extracción. Además, hay un componente de Alert Manager que puede enviar notificaciones a varios canales si una determinada regla basada en métricas ha funcionado. Puede encontrar información detallada en ruso aquí y aquí .

El exportador Prometheus es un agente que recopila métricas directamente de la entidad (el servidor en su conjunto o una aplicación específica) que necesita ser monitoreada. Prometheus tiene ricas opciones de expansión, por lo que hay exportadores para las aplicaciones más populares.

[jira | confluencia | bitbucket | bambú] _exporter funciona de la siguiente manera:

  • Recupera datos de la base de datos del producto.
  • Recupera datos utilizando la API estándar de Java
  • Agrega filtros a las solicitudes HTTP
  • recopila métricas jmx.

Stefan Prodan implementa un ejemplo de una instalación rápida de Prometheus / Grafana en Docker y está disponible aquí .

Instalación y configuración del exportador.


Después de instalar el complemento , inmediatamente obtiene el enlace para la métrica: baseUrl / plugins / servlet / prometheus / metrics . También es posible configurar una clave de seguridad.

A continuación, en prometheus.yml, debe agregar la dirección para obtener las métricas.
Por ejemplo, para 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 

La integración se ha completado, puede usar.

Métricas y ejemplos de consultas


Puede ver la lista de todas las métricas en la documentación del complemento: Jira , Confluence , Bitbucket , Bamboo .

Solicitar ejemplos:

  • Tiempo de actividad:

     jvm_uptime_gauge{job="jira"} 
  • Tiempo de ejecución de solicitud del servidor:

     (sum(rate(jira_request_duration_on_path_sum[1m])) by (path)) / (sum(rate(jira_request_duration_on_path_count[1m])) by (path)) 
  • Número total de tareas:

     jira_total_issues_gauge 
  • Número de vistas de paneles:

     sum(increase(jira_dashboard_view_count[1h])) 

Puede leer más sobre la creación de consultas aquí .

Tableros de Grafana


Puede usar Grafana como un componente de terceros para visualizar las métricas almacenadas en la base de datos de series temporales de Prometheus . Hay varias implementaciones listas para usar en el sitio web oficial. Por ejemplo, los paneles para Jira se pueden encontrar en este enlace .


Caracteristicas


Planeo agregar la capacidad de definir métricas personalizadas usando Groovy , así como soporte completo para Service Desk . Por lo tanto, puede agregar métricas personalizadas no solo para los productos en sí, sino también para otros complementos.
Todos los exportadores son abiertos y se desarrollan activamente. Si tiene ideas para mejorar o expandir, cree tareas ( Jira , Confluence , Bitbucket , Bamboo ) y / o haga solicitudes de extracción.

Conclusión


Si sus instalaciones de Atlassian son bastante grandes y necesita garantizar un funcionamiento continuo, definitivamente necesita supervisión. Y cómo, decide por ti mismo. Prometheus , como una de las opciones que, sin duda, simplificará tu vida.
Gracias por su atencion!

Source: https://habr.com/ru/post/es412897/


All Articles