Surveillance des produits Atlassian avec Prometheus

Présentation


Bonjour à tous! Aujourd'hui, nous allons parler de la surveillance en temps réel des produits Atlassian .

Tout d'abord, définissons ce qu'est la surveillance et pourquoi elle est nécessaire pour les produits Atlassian .

Le suivi du programme est utilisé pour suivre les progrès et les résultats d'un programme. En d'autres termes, il s'agit d'un processus qui peut afficher en temps réel des informations sur l'état d'un produit logiciel.

Quand peut-il être utile pour les produits Atlassian ?

Considérez les exemples suivants:

  • Vous voulez savoir comment la mise à jour d'un produit ou d'un plugin affecte les performances du système;
  • Vous voulez connaître l'état du fer et de la mémoire dans diverses conditions et à certains moments. Par exemple, comment l'augmentation du nombre d'utilisateurs ou la modification de l'heure affecte le système;
  • Vous voulez observer à quel point le système dans son ensemble est activement utilisé. Par exemple, le nombre total de tâches à Jira ou en 1 heure;
  • Vous souhaitez définir un rappel sur la date d'expiration de la licence;
  • Vous souhaitez connaître la quantité d'espace disque utilisé pour stocker des documents.

Je voudrais également non seulement recevoir des informations sous une forme préparée, mais aussi pouvoir envoyer des notifications si quelque chose se passe selon un scénario erroné. Ici, Prometheus et ses exportateurs de produits Atlassian nous aideront.

Architecture de la solution


Prometheus est un outil pour surveiller simultanément des dizaines de milliers de services. Le serveur Prometheus lit les cibles à un intervalle que vous définissez pour collecter les métriques et les stocke dans une base de données de séries chronologiques. Pour collecter des métriques, le modèle d'extraction est utilisé. De plus, il existe un composant Alert Manager qui peut envoyer des notifications à différents canaux si une certaine règle basée sur des métriques a fonctionné. Vous pouvez trouver des informations détaillées en russe ici et ici .

L' exportateur Prometheus est un agent qui collecte des métriques directement à partir de l'entité (le serveur dans son ensemble ou une application spécifique) qui doit être surveillée. Prometheus a de nombreuses options d'extension, il existe donc des exportateurs pour les applications les plus populaires.

[jira | confluence | bitbucket | bamboo] _exporter fonctionne comme suit:

  • Récupère les données de la base de données de produits
  • Récupère les données à l'aide de l'API Java standard
  • Ajoute des filtres aux requêtes HTTP
  • recueille les métriques jmx.

Un exemple d'une installation rapide de Prometheus / Grafana dans Docker est mis en œuvre par Stefan Prodan et est disponible ici .

Installation et configuration de l'exportateur


Après avoir installé le plugin , vous obtenez immédiatement le lien pour la métrique: baseUrl / plugins / servlet / prometheus / metrics . Il est également possible de configurer une clé de sécurité.

Ensuite, dans prometheus.yml, vous devez ajouter l'adresse à laquelle obtenir les métriques.
Par exemple, pour 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 

L'intégration est terminée, vous pouvez utiliser.

Mesures et exemples de requêtes


Vous pouvez voir la liste de toutes les métriques dans la documentation du plugin: Jira , Confluence , Bitbucket , Bamboo .

Demander des exemples:

  • Disponibilité:

     jvm_uptime_gauge{job="jira"} 
  • Temps d'exécution de la demande du serveur:

     (sum(rate(jira_request_duration_on_path_sum[1m])) by (path)) / (sum(rate(jira_request_duration_on_path_count[1m])) by (path)) 
  • Nombre total de tâches:

     jira_total_issues_gauge 
  • Nombre de vues des tableaux de bord:

     sum(increase(jira_dashboard_view_count[1h])) 

Vous pouvez en savoir plus sur la création de requêtes ici .

Tableaux de bord Grafana


Vous pouvez utiliser Grafana en tant que composant tiers pour visualiser les métriques stockées dans la base de données de séries temporelles Prometheus . Il existe plusieurs implémentations prêtes à l'emploi sur le site officiel . Par exemple, des tableaux de bord pour Jira sont disponibles sur ce lien .


CARACTÉRISTIQUES


Je prévois d'ajouter la possibilité de définir des mesures personnalisées à l'aide de Groovy , ainsi qu'une prise en charge complète de Service Desk . Ainsi, vous pouvez ajouter des métriques personnalisées non seulement pour les produits eux-mêmes, mais aussi pour d'autres plugins.
Tous les exportateurs sont ouverts et se développent activement. Si vous avez des idées d'amélioration ou d'extension, veuillez créer des tâches ( Jira , Confluence , Bitbucket , Bamboo ) et / ou faire des pull-requests.

Conclusion


Si vos installations Atlassian sont assez grandes et que vous devez assurer un fonctionnement continu, vous avez certainement besoin d'une surveillance. Et comment - décidez par vous-même. Prométhée , comme l'une des options qui, sans aucun doute, vous simplifiera la vie.
Merci de votre attention!

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


All Articles