Cependant, la mise en œuvre d'une stratégie d'observabilité pour les sites web de production, qui bénéficie d'un contexte aussi large que possible, vous donne la meilleure vue d'ensemble de vos applications. Elle vous aide à identifier les goulets d'étranglement potentiels et à garantir une expérience utilisateur transparente.
L'ajout d'informations sur l'infrastructure à un tableau de bord Observability vous permet de comprendre ce qui a été fait du côté de l'infrastructure et, si nécessaire, de diagnostiquer les problèmes le plus rapidement possible. Ce pic de consommation de ressources est-il dû à un pic de trafic ou à quelque chose qui s'est produit du côté de l'infrastructure ? Le retard d'une requête est-il dû à une publicité nouvellement lancée ou à un service nouvellement déployé ? Chaque résultat exige une réponse différente, de sorte que tout contexte ajouté à votre tableau de bord Observability vous aide à distinguer les causes internes et externes.
Entre-temps, Upsun vous donne accès à tous les processus d'infrastructure qui se déroulent dans votre environnement/projet/intégration/maintenance et vous permet de déclencher une action pour chacun d'entre eux. Pour chaque processus d'infrastructure, vous pouvez décider de ce qu'il faut faire : envoyer une notification à un canalSlackspécifique , envoyer des informations à un point de terminaison personnalisé (webhook), exécuter un script dédié, envoyer des informations à Newrelic, et ainsi de suite.
Un script Activity est un morceau de code, écrit en ES2021 (Javascript) qui peut être exécuté pour faire ce que vous voulez. Le lien entre ces deux éléments, les scripts d'activité et les processus d'infrastructure, est réalisé à l'aide d'une intégration.
Cette intégration doit être configurée avec des paramètres, définissant quelle action vous voulez exécuter, sur quels environnements, et quels événements et états correspondants déclenchent ce script d'activité.
script d'
action (=exécuter un script d'activité), mais vous pouvez trouver la liste complète des actions possibles ici. Nous devrons également définir le script (option --file
) que nous voulons exécuter.(principal
).en attente
, en cours
et terminé
. Dans notre cas, les opérations en attente
n'auront pas d'impact sur votre application (usage interne d'Upsun), nous nous concentrerons donc sur les états en_progress
et complet
.Upsun utilise Blackfire comme outil intégré de profilage APM/Continu, et son utilisation est incluse (pour autant que j'écrive cet article) dans tous vos projets Upsun.
Blackfire fournit un endpoint REST pour ajouter des marqueurs, en utilisant un simple appel curl avec vos identifiants (blackfire_server_id
et blackfire_server_token
) et le message que vous voulez afficher sur votre Timeline Blackfire.
Nous avons maintenant d'excellents ingrédients pour notre recette : comment envoyer des processus d'infrastructure à votre surveillance Blackfire. Ajoutons les processus d'infrastructure Upsun dans notre timeline Blackfire.
Pour repérer les processus d'infrastructure Upsun dans la timeline Blackfire, nous aurons besoin de :
Ce sont les étapes minimales pour que votre environnement Upsun envoie des processus d'infrastructure à votre environnement Blackfire.
Allez à la racine du code source de votre projet local et suivez les étapes suivantes :
1. Créez un nouveau fichier Javascript (notre fichier Activity script) à la racine de votre code source, blackfire-notifier.js
(source ici) avec la ligne de commande suivante :
curl -L https://raw.githubusercontent.com/upsun/snippets/main/src/blackfire-notifier.js > blackfire-notifier.js git add blackfire-notifier.js && git commit -m "Ajouter blackfire-notifier.js"
Ce fichier Javascript blackfire-notifier.js
utilise 2 variables d'environnement, blackfire_server_id
et blackfire_server_token
pour envoyer des informations sur le processus d'infrastructure correspondant(état
et type
, ex : (start|stop) Florent Huck redeployed environment Main
) à votre environnement Blackfire, en utilisant le point de terminaison Blackfire REST dédié pour ajouter des marqueurs.
2. Ajoutez une intégration de script Activity pour ce nouveau script blackfire-notifier.js
:
upsun integration:add --type=script --file ./blackfire-notifier.js --events \* --states in_progress,complete --environments main
Avec cette intégration, Upsun exécutera le script blackfire-notifier.js
pour tous les processus d'infrastructure (avec l'état in_progress
ou complete
) sur votre environnement principal
.
3. Transmettre les identifiants Blackfire, BLACKFIRE_SERVER_ID
et BLACKFIRE_SERVER_TOKEN
à votre script d'activité :
Depuis la racine de votre projet Upsun, exécutez les 2 lignes de commande suivantes :
upsun project:curl /integrations/<INTEGRATION_ID>/variables -X POST -d '{"name" : "blackfire_server_id", "value" : "'$(upsun ssh 'echo $BLACKFIRE_SERVER_ID')'", "is_sensitive" : true, "is_json" : false}' upsun project:curl /integrations/<INTEGRATION_ID>/variables -X POST -d '{"name" : "blackfire_server_token", "value" : "'$(upsun ssh 'echo $BLACKFIRE_SERVER_TOKEN')'", "is_sensitive" : true, "is_json" : false}'
4. Testez-le.
Pour tester l'intégration de votre script d'activité, il suffit de déclencher un processus d'infrastructure sur votre projet :
upsun project:clear-build-cache && upsun environment:redeploy -y
De nouveaux marqueurs devraient apparaître du côté de Blackfire pour repérer le début et la fin du processus :
5. Déboguez-le et mettez à jour le script Activity.
Si vous souhaitez avoir accès aux derniers logs de l'Activity Script, vous pouvez utiliser la commande suivante :
upsun integration:activity:log <INTEGRATION_ID>
Comme le contenu du script blackfire-notifier.js
a été sauvegardé en cache lors de la création de l'intégration, vous devez mettre à jour l'intégration à chaque fois qu'une mise à jour a été effectuée sur ce script, en utilisant la commande suivante :
upsun integration:update --file ./blackfire-notifier.js <INTEGRATION_ID>
Et voilà, dès qu'un processus d'infrastructure se produit sur votre environnement principal
, ce script d'activité ajoutera plus de contexte à votre chronologie Blackfire en ajoutant de nouveaux marqueurs. Vous obtiendrez une vue holistique de la performance de votre application et améliorerez votre capacité à diagnostiquer et à résoudre les problèmes rapidement.
En exploitant tout le potentiel de Blackfire et en incorporant les processus d'infrastructure d'Upsun, vous êtes mieux équipé pour gérer et optimiser les performances de votre application. Adoptez cette approche intégrée pour anticiper les problèmes potentiels, améliorer l'efficacité opérationnelle et fournir un service fiable à vos utilisateurs.
Restez au courant des dernières nouvelles sur nos médias sociaux et nos canaux communautaires : Dev.to, Reddit et Discord. Bonne surveillance.