Trois façons d’intégrer Slack à Heroku


Le 1er décembre Salesforce a pris la décision d’acquérir la plateforme de communication d’entreprise leader du secteur, Mou, Afin de combiner les fonctionnalités avec le produit logiciel Salesforce Customer 360. Heroku, une offre de plate-forme en tant que service (PaaS) basée sur le cloud, est un produit Salesforce depuis son achat il y a dix ans, presque jour pour jour.

À la suite de cette annonce, j’ai pensé qu’il serait amusant de montrer comment intégrer Slack avec trois modules complémentaires Heroku. Pour cet article, les produits suivants seront utilisés:

  • Activité à emporter
  • Journalisation Coralogix
  • RollBar

Mon objectif est de montrer comment Slack, un outil déjà utilisé pour la communication intra-équipe, peut également être la cible des mises à jour de l’état des applications, de la journalisation et des problèmes inattendus.

Activité à emporter

Activité à emporter informe votre équipe de toutes les modifications apportées à l’application Heroku et s’intègre rapidement et facilement à Slack. En fait, de toutes les intégrations effectuées dans cet exercice, Activity To Go est de loin la plus simple à mettre en œuvre.

L’installation du module complémentaire Activity To Go peut être effectuée à l’aide de l’interface utilisateur Heroku ou de la commande suivante:

heroku addons:create activitytogo:free

Une fois installé, le tableau de bord Activity To Go est disponible via l’interface utilisateur Heroku:


Une fois lancé, le tableau de bord apparaît comme indiqué ci-dessous:


Connexion à Slack

Pour les besoins de cet exemple, Activity To Go sera utilisé pour envoyer des alertes à chaque fois que le Heroku Dyno change. Le cas d’utilisation ici est d’alerter l’équipe technique lorsque des modifications sont transmises à Heroku.

Pour ce faire, le Ajouter un abonnement Le bouton est utilisé à partir du tableau de bord Activity To Go. Cela ouvre un nouveau formulaire d’abonnement:


Pour les besoins de cet exemple, j’ai nommé mon abonnement Alertes de service et sélectionné le Libération et App options. Ensuite, cliquez sur le Configurer bouton “Envoyer un message Slack”.

Cela fait apparaître un modal pour autoriser l’accès à Slack:


De là, sélectionnez le alertes de service Slack channel et choisissez le Autoriser bouton.

le Configurer l’action Slack modal s’affiche pour que les paramètres puissent être confirmés:


En appuyant sur le Terminé , vous êtes prêt à enregistrer le nouvel abonnement:


Une fois enregistré, le tableau de bord Activity To Go est mis à jour:


Journalisation Coralogix

Journalisation Coralogix fournit une journalisation intégrée aux niveaux de statut existants d’Heroku.

L’ajout du module complémentaire Coralogix Logging peut être effectué à l’aide de l’interface utilisateur Heroku ou de la commande suivante:

heroku addons:create coralogix:free-30mbday

Une fois installé, le tableau de bord Coralogix peut être affiché depuis l’interface utilisateur Heroku:


Connexion à Slack

Pour vous connecter à Slack, entrez le Réglages dans le tableau de bord Coralogix. Ensuite, sélectionnez le Webhooks et sélectionnez l’option Ajouter un nouveau webhook option (utilisez l’icône plus sur le côté droit de l’écran). Fournissez un alias comme indiqué ci-dessous et assurez-vous de sélectionner le Mou option.

Avec l’instance Slack ouverte, lancez l’URL suivante:

Créer un nouveau Webhook Slack

Sélectionnez le canal que vous souhaitez utiliser (ou créez-en un nouveau) et cliquez une fois sur le Ajouter l’intégration des webhooks entrants bouton:


Si la page ne s’actualise pas automatiquement, actualisez-la vous-même et notez le URL du webhook valeur.


Copiez et collez la valeur dans le formulaire du webhook Coralogix.


Pour valider, cliquez une fois sur le Configuration du test bouton. Un message similaire à ce qui est affiché ci-dessous devrait apparaître dans l’instance Slack:


À ce stade, Coralogix est désormais intégré au canal Slack spécifié.

Configurer les alertes

Avec Coralogix prêt à l’emploi, j’ai décidé de créer deux alertes personnalisées:

  • Alerte d’activité
  • Alerte d’erreur hors limites

Alerte d’activité

Dans le Alertes section du tableau de bord Coralogix, j’ai créé une nouvelle alerte avec les attributs suivants pour suivre l’activité de l’API:



Alerte d’erreur hors limites

Dans le Alertes section du tableau de bord Coralogix, j’ai créé cette nouvelle alerte avec les attributs suivants pour suivre lorsque l’exception hors limites se produit:



Ajout de Rollbar

Rollbar fournit une approche différente de la surveillance des applications. Il ne se concentre pas uniquement sur le développement agile et la livraison continue, mais sur la fourniture d’une visibilité en temps réel sur votre application sans avoir à actualiser les écrans de journaux encombrés et à exploiter des montagnes de données. En outre, les données qui arrivent dans le tableau de bord Rollbar sont liées au code source sous-jacent, même au point où les tickets existants peuvent être liés à un événement inattendu, ou un nouveau ticket peut être créé directement à partir de Rollbar lui-même.

Pour installer le module complémentaire Rollbar, utilisez l’interface utilisateur Heroku ou la commande suivante:

heroku addons:create rollbar:free

le pom.xml Le fichier a déjà été mis à jour dans ce référentiel pour inclure la dépendance suivante:

Ensuite, le application.yml Le fichier a été mis à jour pour inclure les paramètres suivants:

Enfin, envoyer des informations à Rollbar peut être aussi simple que cet exemple du RollbarEvents:

Les éléments de configuration suivants ont été configurés dans l’instance Heroku pour être utilisés par Rollbar:


Connexion à Slack

Pour vous connecter à Slack, utilisez le Réglages menu de l’application Rollbar (lancée depuis Heroku). Une fois le projet Rollbar sélectionné, accédez au Intégrations | Notifications option. Cliquez simplement sur le Mou icône dans la liste des Canaux disponibles.

Après avoir sélectionné mon jeton d’accès existant, j’ai sélectionné le # erreur-d’application canal et a laissé tous les autres paramètres par défaut en place.


En poussant le Envoyer une notification de test enverra un message de test à Slack. Navigation vers Slack et le # erreur-d’application canal affiche le message de test suivant:


Notre exemple – Une application RESTful simple

Voyons maintenant les trois produits en action. Nous allons créer une application RESTful simple (intégrée à tous ces produits), exécuter quelques actions pour déclencher des messages (déployer une nouvelle version, apporter des modifications à la configuration, faire une demande) et voir à quoi ressemblent ces intégrations en pratique. Pour l’exemple, nous utiliserons un Heroku Dyno contenant une API RESTful simple utilisant Spring Boot, appelée heroku-slack qui peut être trouvé à l’URL suivante:

https://gitlab.com/johnjvester/heroku-slack

le heroku-slack service renvoie le Artist objet dans tous les URI disponibles.

L’objet est assez simple et est affiché ci-dessous:

Veuillez consulter le heroku-slack référentiel pour plus d’informations sur ce service RESTful.

Interagir avec Slack

Maintenant que tout est configuré et configuré, nous pouvons démontrer comment le simple service Spring Boot exécuté dans Heroku peut s’intégrer à Slack.

Déployer une nouvelle version

Donner aux membres de l’équipe technique la possibilité de voir quand l’application est déployée sur un Heroku Dyno présente un certain nombre d’avantages. Avec le Activité à emporter module complémentaire en place, le message suivant apparaîtra dans le # service-alertes Canal Slack:


Modifications de la configuration de Heroku Dyno

le Activité à emporter add-on publiera également un message dans le # service-alertes Canal Slack lorsque les variables système changent dans l’instance Heroku:


Faire une demande simple

Dans ce référentiel simple, en utilisant le GET /artists URI renvoie une liste d’artistes codés en dur. Journalisation Coralogix est configuré pour publier le message Slack suivant dans le #coralogix canal:


Générer une mauvaise demande

Lorsqu’une demande incorrecte est créée – dans ce cas, en demandant un Artist pour une valeur de position qui n’existe pas – les deux Journalisation Coralogix et Rollbar Les produits complémentaires fournissent des informations à Slack.

Déclencher le ERROR alerte, Journalisation Coralogix publie le message suivant dans le #coralogix canal dans Slack:


Basé sur les mises à jour du code Java et le GlobalControllerExceptionHandler, Rollbar publie le message suivant dans le # erreur-d’application canal dans Slack:


le Rollbar Le produit offre une valeur supplémentaire dans sa capacité à attribuer l’erreur à un membre de l’équipe configuré, directement à partir de l’instance Slack:


Veuillez noter que le niveau d’erreur peut également être mis à jour directement à partir de Slack.

Informations résumées

Tous les deux Journalisation Coralogix et Rollbar fournir des informations supplémentaires à partir de leurs interfaces utilisateur.

le Journalisation Coralogix Le résumé des alertes fournit une belle ventilation de toutes les alertes qui ont été capturées:


Journalisation Coralogix fournit également un tableau de bord de haut niveau:


Rollbar fournit un tableau de bord avancé qui peut même être lié directement au code source:


le Articles view fournit également un résumé de haut niveau de chaque erreur:


Conclusion

Avec un investissement très faible en temps et en efforts, un Heroku Dyno existant peut être intégré à Slack. Les membres de l’équipe technique et les ingénieurs DevOps peuvent facilement se tenir au courant de l’application ou du service en se connectant simplement à l’espace de travail Slack spécifié.

En fin de compte, le projet dans Heroku contient les modules complémentaires suivants. Comme vous pouvez le voir, pour cette démonstration, aucun des éléments utilisés ne comportera un coût d’utilisation mensuel:


Cet article portait sur trois modules complémentaires actuellement disponibles dans le catalogue Heroku. L’utilisation d’une recherche par mot-clé “slack” a fourni une liste de vingt options prêtes à être utilisées avec le programme Slack. Bien sûr, il existe probablement plus d’options via la connectivité Webhook standard.

Heroku a été conçu pour aider les développeurs à se concentrer sur la satisfaction des besoins commerciaux de leur application. L’intégration à Slack est un autre exemple de la façon dont les équipes techniques peuvent rester concentrées tout en gardant le pouls de leurs dynos fonctionnant dans Heroku. Après tout, de nombreuses équipes techniques utilisent probablement déjà Slack.

Si vous êtes intéressé par le code source de cet article, veuillez consulter le référentiel suivant sur GitLab:

https://gitlab.com/johnjvester/heroku-slack

Passez une très bonne journée!

Close Menu