Chez Uptrends, nous essayons d’améliorer notre produit aussi souvent que possible, y compris notre application web principale (certains l’appellent une console, d’autres un portail) pour vous offrir la meilleure expérience utilisateur pour l’analyse de vos données et la facilité d’utilisation lors du réglage de votre moniteur paramètres. Cependant, vous souhaitez parfois accéder à votre logiciel de surveillance sans aucune intervention humaine.
De plus en plus d’utilisateurs trouvent des moyens d’améliorer leur flux de travail en automatisant des tâches qui auraient autrement besoin d’être exécutées manuellement.
Par exemple, il est fort probable que votre service opérationnel utilise un processus automatisé de déploiement pour effectuer des mises à jour sur votre site (nous utilisons Octopus Deploy pour cela – faites-nous savoir dans les commentaires ce que vous utilisez!). Ces mises à jour ne sont généralement pas instantanées, cela nécessite un certain temps, ce qui signifie que votre site Web, votre système de commerce électronique ou votre API Web est temporairement indisponible ou affiche des comportements différents pendant que la mise à jour est en cours.
Il est probable que votre solution de surveillance Web reprendra cette situation temporaire, en particulier lorsque votre site Web n’indique pas le contenu habituel sur les pages que vous surveillez ou lorsque vos serveurs Web sont plus lents à répondre que d’habitude. Cependant, votre équipe d’opérations peut se passer de la distraction d’e-mails ou de textes d’alerte inutiles – ils connaissent déjà la situation de toute façon.
Il serait formidable de conserver automatiquement vos moniteurs Web pendant le déploiement, de sorte que vous ne devez pas les insérer et les désactiver manuellement. La connexion à Uptrends via l’API est un excellent moyen de le faire. La plupart des comptes Uptrends viennent avec un accès gratuit à l’API, alors voyons comment nous pouvons l’utiliser pour automatiser cette tâche.
L’API Uptrends est accessible via HTTPS. Il existe de nombreuses façons différentes de le faire, selon l’environnement dans lequel vous opérez. Pour Octopus Deploy, la façon évidente est de déclencher un script Powershell qui envoie la requête HTTPS. D’autres systèmes de déploiement, y compris ceux d’origine sur Windows, Linux ou Mac OS X, préfèrent utiliser l’outil de ligne de commande cURL pour générer des requêtes HTTPS. Dans cette publication, nous fournirons des exemples pour Powershell et CURL, mais tout environnement de script ou langage de programmation pouvant envoyer des requêtes HTTPS fonctionnera.
Cependant, avant de plonger dans le code, examinons les ingrédients clés pour appeler l’API pour désactiver un moniteur (et l’activer ultérieurement).
Renseignements que nous mettrons dans la requête
- L’ID unique (appelée Guid) du moniteur que nous voulons désactiver. Votre script doit savoir quel (s) moniteur (s) vous souhaitez désactiver. Pour l’instant, nous allons inclure les Guid dans le script lui-même. Vous pouvez trouver Guid en modifiant le moniteur dans Uptrends, et en consultant Guid dans la barre d’adresse de votre navigateur.
- L’URL à appeler: Nous accédons à https://api.uptrends.com/v3/probes/{Guid}, où {Guid} est l’ID que nous venons de saisir.
- La méthode HTTP à utiliser: nous utiliserons une demande PUT pour mettre à jour notre moniteur. Il est important que vous spécifiez cette méthode, ou votre script ou votre langage de programmation effectuera probablement une requête GET, ce qui n’est pas l’opération que nous voulons effectuer ici.
- Les champs du moniteur que nous voulons mettre à jour. Puisque nous voulons simplement désactiver le moniteur, nous ne ferons que mettre à jour le champ IsActive, et nous lui donnerons une valeur de False. Plus tard, nous enverrons IsActive: True pour réactiver le moniteur à nouveau. Nous mettrons les valeurs du champ dans un message formaté JSON dans le contenu du corps de la requête HTTPS.
- Nous devons indiquer à l’API le fait que nous utilisons le format JSON, nous allons spécifier l’en-tête Content-Type approprié.
- LEnfin, les identifiants de connexion. Vous aurez besoin d’un nom d’utilisateur Uptrends (généralement votre adresse e-mail) qui a des droits administratifs pour mettre à jour vos moniteurs et le mot de passe correspondant. Nous utiliserons l’authentification de base de la méthode d’authentification pour ajouter ces informations d’identification à la requête HTTPS.
Utilisation de Powershell
Dans le segment de code suivant, les seules lignes de code que vous devrez modifier pour votre situation sont en haut, marquées d’un Specify: commentaire.
# Specify: your Uptrends login info $user = "my-email@company.com" $pass= "PasswordXYZ" # Specify: the Guid for the monitor $monitorGuid = "81661ec0-f297-4a3e-89c2-7e17270d6f85" # Specify: make the monitor inactive ($false) or active ($true) $makeActive = $false # URI to the API method we want to execute. It includes the monitorGuid we're going to update $uri = "https://api.uptrends.com/v3/probes/$monitorGuid" # Compile the login info into credentials containing basic authentication $passwordValue = ConvertTo-SecureString $pass -AsPlainText -Force $cred = New-Object System.Management.Automation.PSCredential ($user, $passwordValue) # Build our body content by including the fields we want to update $body = @{ IsActive = $makeActive } # Format the body content as a JSON string $bodyJson = $body | ConvertTo-Json # Execute the request $result = Invoke-RestMethod -Uri $uri -Method Put -Credential $cred -ContentType "application/json" -Body $bodyJson
C’est tout! L’exécution de ce script devrait être suffisante pour désactiver votre moniteur. N’oubliez pas de l’exécuter à nouveau avec $makeActive = $true pour activer votre moniteur à nouveau.
Utilisation de cURL
De toute évidence, le code d’un outil de ligne de commande sera beaucoup plus condensé, donc nous allons le décomposer en quelques pièces pour expliquer les différents drapeaux que vous devrez spécifier.
- -X PUT
Spécifie la méthode HTTP PUT - –user yourusername:password
Votre nom d’utilisateur et votre mot de passe, séparés par un caractère de deux points - -H “Content-Type: application/json”
L’en-tête HTTP pour spécifier le type de contenu du contenu corporel - -d “{\”IsActive\”: true}”
Contenu du corps contenant des données formatées par JSON. Notez les barres obliques en tant que caractères d’échappement devant les guillemets. - “https://api.uptrends.com/v3/probes/{monitorGuid}”
L’URL vers laquelle nous envoyons cette demande contient les Guid de votre moniteur - -k
Vous devrez peut-être utiliser cette option si vous utilisez une version de cURL qui ne connaît pas les bibliothèques SSL et les magasins de certificats de votre ordinateur. Cette option sauvera complètement la vérification SSL. Voir https://curl.haxx.se/docs/sslcerts.html pour plus d’options.
Avec tout mis en place, vous obtiendrez cette ligne de commande:
curl -X PUT --user my-email@company.com:PasswordXYZ -H "Content-Type: application/json" -d "{\"IsActive\": true}" "https://api.uptrends.com/v3/probes/81661ec0-f297-4a3e-89c2-7e17270d6f85" -k
Test de notre code
Une fois que vous avez envoyé la requête HTTPS via Powershell, CURL ou toute autre méthode, elle renverra un code de réponse 200 OK s’il a été exécuté correctement. La modification entrera en vigueur immédiatement, de sorte que vous devriez pouvoir voir la modification de votre compte Uptrends tout de suite. Sinon, vérifiez si une erreur est revenue après l’envoi de la demande. Vérifiez vos identifiants de connexion si vous avez un 401 non autorisé. Si le résultat était une 400 mauvaise demande, vérifiez que le guide du moniteur était correct. Vous ne savez pas ce qui se passe? N’hésitez pas à prendre contact avec le Support d’Uptrends et à nous parler de votre projet.
Astuce: suppression des alertes
Astuce rapide: Peut-être voulez-vous continuer à enregistrer le temps de disponibilité de vos moniteurs en tout temps, pour voir combien de temps d’arrêt sont en train de provoquer vos mises à jour planifiées et imprévues. Dans ces cas, vous souhaitez garder vos moniteurs en cours d’exécution, mais supprimer les messages d’alerte à la place lors d’une mise à jour. Plutôt que d’utiliser le champ IsActive dans le corps du contenu, utilisez plutôt le champ GenerateAlert. Définir ce champ sur False empêche les alertes d’être généré.
Conclusion
Nous avons examiné comment vous pouvez utiliser l’API Uptrends pour désactiver vos moniteurs ou désactiver les alertes associées à vos moniteurs. Une prochaine étape pourrait être d’automatiser davantage ce processus en bouclant une liste prédéfinie de moniteurs. Nous examinerons cela dans une prochaine publication sur le blog.
Consultez la documentation de l’API pour voir ce qui est possible. Peut-être souhaitez-vous ajouter de nouveaux moniteurs automatiquement lorsque votre système crée un nouveau site? La mise à jour des contrôles de contenu est-elle effectuée lorsque le contenu de votre site est mis à jour? Ajouter automatiquement des notes à votre moniteur pour enregistrer les incidents? Il y a beaucoup de choses que vous pouvez faire, faites-nous savoir à quoi vous souhaitez travailler!
Leave a Reply