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!