La surveillance ne se résume pas à de jolis graphiques (même s'ils sont plutôt cool). C'est votre système d'alerte précoce, votre boule de cristal et votre performance réunis en un seul. Avec Quarkus optimisé pour la compilation JVM et native, avoir une visibilité sur ses métriques de performance devient encore plus crucial.
"Si vous ne pouvez pas le mesurer, vous ne pouvez pas l'améliorer." - Peter Drucker (probablement en train de déboguer un système distribué)
Prometheus et Grafana : Le Duo Dynamique de la Surveillance
Voici Prometheus et Grafana - le Batman et Robin du monde de la surveillance (sans les capes, malheureusement).
- Prometheus : La base de données de séries temporelles qui collecte et stocke vos métriques. C'est comme un aspirateur pour les données, aspirant les chiffres de votre application Quarkus à intervalles réguliers.
- Grafana : Le visage attrayant de l'opération. Il prend les données de Prometheus et les transforme en tableaux de bord si beaux que vous voudrez les encadrer et les accrocher à votre mur.
Ensemble, ils forment une solution de surveillance plus puissante qu'une locomotive et capable de sauter de grandes piles en un seul bond. (D'accord, j'arrête avec les analogies de super-héros maintenant.)
Configurer Quarkus pour l'Exportation de Métriques
Tout d'abord, faisons en sorte que Quarkus révèle ses rouages internes. Nous devons ajouter l'extension MicroProfile Metrics à notre projet Quarkus.
Ajoutez ceci à votre pom.xml
:
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-smallrye-metrics</artifactId>
</dependency>
Ou, si vous êtes un adepte de Gradle :
implementation 'io.quarkus:quarkus-smallrye-metrics'
Avec cela, Quarkus exposera automatiquement les métriques à l'endpoint /q/metrics
. C'est comme donner un mégaphone à votre application pour qu'elle crie ses statistiques au monde (ou du moins à Prometheus).
Prometheus : Votre Aspirateur de Métriques
Maintenant que Quarkus est bavard sur ses métriques, configurons Prometheus pour écouter. Voici un guide rapide pour mettre Prometheus en marche :
- Téléchargez Prometheus depuis le site officiel.
- Créez un fichier de configuration
prometheus.yml
:
global:
scrape_interval: 15s
scrape_configs:
- job_name: 'quarkus'
metrics_path: '/q/metrics'
static_configs:
- targets: ['localhost:8080']
Cela indique à Prometheus de récupérer les métriques de votre application Quarkus toutes les 15 secondes. Ajustez localhost:8080
si votre application fonctionne sur un autre hôte ou port.
- Démarrez Prometheus :
./prometheus --config.file=prometheus.yml
Voilà ! Prometheus collecte maintenant les métriques plus vite qu'un écureuil accumulant des noix pour l'hiver.
Grafana : Rendre Vos Métriques Dignes d'Instagram
Avec Prometheus collectant des données, il est temps de les rendre jolies. Voici Grafana :
- Téléchargez et installez Grafana depuis le site officiel.
- Démarrez Grafana et accédez à
http://localhost:3000
(les identifiants par défaut sont admin/admin). - Ajoutez Prometheus comme source de données :
- Allez dans Configuration > Sources de données
- Cliquez sur "Ajouter une source de données" et sélectionnez Prometheus
- Définissez l'URL sur
http://localhost:9090
(le port par défaut de Prometheus) - Cliquez sur "Enregistrer & Tester"
Vous êtes maintenant prêt à créer des tableaux de bord qui rendront vos collègues verts de jalousie.
Créer des Tableaux de Bord Quarkus dans Grafana
Il est temps de faire preuve de créativité et de construire un tableau de bord. Voici un pack de démarrage de panneaux que vous pourriez inclure :
- Utilisation du CPU
- Utilisation de la mémoire
- Taux de requêtes HTTP
- Percentiles du temps de réponse
- Taux d'erreur
Voici une requête d'exemple pour le taux de requêtes HTTP :
rate(http_server_requests_seconds_count{application="your-app-name"}[1m])
Conseil de pro : Commencez avec quelques métriques clés et itérez. Votre tableau de bord doit évoluer avec votre application et vos besoins de surveillance.
Métriques Quarkus Essentielles à Surveiller
Bien que Quarkus expose une multitude de métriques, en voici quelques-unes que vous devez absolument surveiller :
- Métriques JVM : Utilisation de la mémoire, statistiques de collecte des ordures
- Métriques HTTP : Nombre de requêtes, temps de réponse, taux d'erreur
- Pool de Connexions à la Base de Données : Connexions actives, temps d'attente
- Métriques Métier Personnalisées : Spécifiques à la logique de votre application
Rappelez-vous, l'objectif est d'obtenir des insights, pas une surcharge d'informations. Choisissez des métriques qui racontent une histoire sur la santé et la performance de votre application.
Alertes : Parce que Vous ne Pouvez pas Regarder les Tableaux de Bord 24/7
À moins que vous n'ayez maîtrisé l'art de ne pas cligner des yeux (dans ce cas, nous devons parler), vous voudrez configurer des alertes pour quand les choses tournent mal. Grafana facilite cela :
- Dans votre tableau de bord, cliquez sur le titre d'un panneau et sélectionnez "Modifier".
- Allez dans l'onglet "Alerte".
- Définissez les conditions pour lesquelles l'alerte doit se déclencher.
- Configurez les canaux de notification (email, Slack, PagerDuty, etc.).
Par exemple, vous pourriez vouloir être alerté lorsque :
- Le taux d'erreur dépasse 1% pendant 5 minutes
- Le temps de réponse P95 est supérieur à 500ms pendant 10 minutes
- L'utilisation du CPU est au-dessus de 80% pendant 15 minutes
Tester Votre Configuration de Surveillance
Avant de vous féliciter et de passer à autre chose, assurons-nous que cela fonctionne réellement :
- Générez une certaine charge sur votre application Quarkus (Apache JMeter ou un simple script curl en boucle peuvent faire l'affaire).
- Regardez votre tableau de bord Grafana prendre vie.
- Déclenchez intentionnellement des erreurs ou une utilisation élevée du CPU.
- Vérifiez que vos alertes se déclenchent comme prévu.
Si tout se passe bien, vous devriez voir votre tableau de bord s'illuminer comme un sapin de Noël et être bombardé d'alertes (juste cette fois, espérons-le).
Conclusion : Surveiller Quarkus Comme un Pro
Félicitations ! Vous venez d'améliorer votre jeu de surveillance Quarkus. Avec Prometheus collectant des métriques et Grafana les visualisant, vous êtes maintenant équipé pour :
- Repérer les goulots d'étranglement de performance plus vite que vous ne pouvez dire "réactif"
- Impressionner votre équipe d'exploitation avec vos compétences de surveillance proactive
- Mieux dormir la nuit en sachant que vous serez alerté si les choses tournent mal
Rappelez-vous, une bonne surveillance est un processus itératif. Continuez à affiner vos tableaux de bord et alertes au fur et à mesure que vous en apprenez plus sur le comportement de votre application en production.
Conseil de Pro : N'oubliez pas de versionner vos tableaux de bord Grafana. Vous pouvez les exporter en JSON et les stocker avec le code de votre application.
Maintenant, allez de l'avant et surveillez ! Vos applications Quarkus vous remercieront, tout comme votre futur vous lorsque vous ne passerez pas vos week-ends à déboguer des problèmes de production mystérieux.
Avez-vous des astuces de surveillance Quarkus ou des histoires de guerre à partager ? Laissez-les dans les commentaires ci-dessous. Bonne surveillance, et que vos temps de réponse soient toujours bas et votre disponibilité élevée !