Blog

Une désunion des données : pourquoi il faut alerter sur ce que vous voyez

par Vivian Au 21 août 2014 | 6 minutes de lecture

Article de blog invité de Dave Josephsen, développeur évangéliste chez Librato Librato fournit une solution complète pour surveiller et comprendre les mesures qui ont un impact sur votre entreprise à tous les niveaux de la pile.

L’hypothèse sous-jacente à tous les systèmes de surveillance est l’existence d’une entité que nous ne pouvons pas contrôler entièrement. Une chose que nous avons créée, comme un avion, ou même une chose qui existe simplement grâce à la biologie miraculeuse, comme le corps humain. Une chose qui serait parfaite, mais sans son interaction avec la réalité analogique et sale de l’espace physique ; le terrain de jeu de l’entropie et du chaos où la meilleure ingénierie que nous puissions gérer finit par déraper à cause de l’âge, des erreurs humaines et du hasard.

Surveillez ce que vous ne pouvez pas contrôler

Les avions et les corps sont des systèmes. Non seulement nous nous attendons à ce qu'ils fonctionnent d'une manière particulière, mais nous disposons de modèles mentaux bien définis qui décrivent leurs caractéristiques opérationnelles appropriées : de simples hypothèses sur la manière dont ils devraient fonctionner, qui correspondent à des paramètres que nous pouvons mesurer et qui nous permettent de décrire ces systèmes comme « bons » ou « mauvais ». Les pneus d'avion doivent maintenir une pression de 60 PSI, le cœur humain doit battre entre 40 et 100 fois par minute. Le client JDBC ne devrait jamais avoir besoin de plus d'un pool de 150 connexions DB.

C'est pourquoi nous surveillons : pour obtenir un retour d'information en boucle fermée sur les caractéristiques opérationnelles des systèmes que nous ne pouvons pas contrôler entièrement, pour nous assurer qu'ils fonctionnent dans les limites que nous attendons. Fondamentalement, la surveillance est un problème de traitement du signal, et par conséquent, tous les systèmes de surveillance sont des systèmes de traitement du signal. Certains systèmes de surveillance échantillonnent et génèrent des signaux basés sur des mesures du monde réel, et d'autres collectent et traitent les signaux pour effectuer des tâches telles que la visualisation, la détection de comportements anormaux, l'alerte et la notification.

Vous trouverez ci-dessous un schéma, certes trop simplifié, qui décrit le fonctionnement des systèmes de surveillance d'éléments tels que le cœur humain et la pression d'huile des avions (en laissant de côté, bien sûr, le fonctionnement interne plus ésotérique du cœur humain, qui ne peut pas être surveillé). On y voit des capteurs générer un signal qui alimente les différents composants qui fournissent un retour d'information sur le fonctionnement du système aux opérateurs humains.

signal_monitoring_notification

Cependant, trop souvent, ce que nous voyons dans la conception des systèmes de surveillance informatique ressemble à la figure ci-dessous, où plusieurs capteurs sont utilisés pour générer des signaux en double pour chaque composant qui génère un type de rétroaction différent.

visualization_notification_monitoring

Les raisons de l'émergence de ce modèle anti-modèle sont nombreuses, mais la plupart d'entre elles se réduisent à une dissonance cognitive entre les différents groupes informatiques, où chaque groupe pense qu'il surveille pour une raison différente et nécessite donc des outils d'analyse différents. Les équipes d'exploitation et de développement, par exemple, peuvent penser que la surveillance des mesures du système d'exploitation est fondamentalement différente de la surveillance des mesures des applications, et donc chacune met en œuvre sa propre suite d'outils de surveillance pour répondre à ce qu'elle considère comme des exigences exclusives. Pour les mesures du système d'exploitation, les équipes d'exploitation peuvent penser qu'elles ont besoin de données d'état à la résolution la plus courte sur lesquelles elles peuvent émettre des alertes, tandis que le développement se concentre sur des mesures de performances à la seconde résolution pour visualiser les performances de leurs applications.

En réalité, les deux équipes partagent la même exigence : un signal de télémétrie qui fournira un retour d'information en boucle fermée des systèmes qui les intéressent, mais comme chacune implémente une chaîne d'outils différente pour répondre à cette exigence, elles finissent par créer des signaux redondants, pour alimenter différents outils.

Des signaux disparates génèrent des résultats imprévisibles

Lorsque différentes sources de données sont utilisées pour les alertes et les graphiques, l'une ou l'autre source peut générer de faux positifs ou négatifs. Chacune peut surveiller des mesures subtilement différentes sous le couvert du même nom, ou la même mesure de manière subtilement différente. Lorsqu'un ingénieur est réveillé au milieu de la nuit par une alerte provenant d'un tel système et que le retour d'informations de visualisation ne correspond pas au retour d'informations de notification d'événement, un précaire,   stressant La situation devient encore plus confuse et un temps précieux est perdu à vérifier l’un ou l’autre système de surveillance.

En fin de compte, la question de savoir quelle source était la bonne n'a aucune importance. Même si quelqu'un réussissait à entreprendre les efforts considérables nécessaires pour résoudre le problème, il est peu probable qu'une mesure corrective significative puisse être prise pour synchroniser le comportement des sources à l'avenir. Le résultat inévitable est que les ingénieurs commenceront à ignorer les deux systèmes de surveillance, car aucun des deux n'est fiable.

La correction des faux positifs causés par des sources de données disparates ne consiste pas à améliorer un système de surveillance peu fiable, mais plutôt à faire en sorte que deux systèmes de surveillance peu fiables concordent entre eux dans tous les cas. Si nous utilisions deux ECG différents sur le même patient (un pour la visualisation et un autre pour la notification) et que le résultat n'était pas fiable, nous reconcevrions très probablement le système pour qu'il fonctionne sur un signal commun et nous nous efforcerions de rendre ce signal aussi précis que possible. En d'autres termes, le moyen le plus simple de résoudre ce problème est simplement de alerte sur ce que vous voyez .

Synchronisez vos alertes et visualisations sur un signal commun  

Être alerté sur ce que vous voyez ne nécessite pas que tous les membres de l'organisation utilisent le même outil de surveillance pour collecter les données métriques qui les intéressent, cela nécessite seulement que les systèmes de traitement et de notification utilisent un signal d'entrée commun.
Les moyens spécifiques par lesquels vous parvenez à obtenir une homogénéité du signal d'entrée dépendent des outils actuellement utilisés dans votre organisation. Si vous êtes un magasin Nagios/Ganglia par exemple, vous pouvez modifier Nagios pour qu'il émette des alertes sur les données collectées par Ganglia, au lieu de collecter un flux de données de métriques de Ganglia pour la visualisation et un signal différent de Nagios pour l'alerte.

Librato et PagerDuty constituent un excellent choix pour le traitement centralisé des signaux de télémétrie de tous les collecteurs de données actuellement utilisés dans votre organisation. Grâce à une intégration clé en main dans AWS et Heroku, et à la prise en charge de près de 100 outils de surveillance open source, récepteurs de journaux, bibliothèques d'instrumentation et démons, il est très simple de configurer vos outils actuels pour qu'ils émettent des métriques vers Librato.

librato_pagerduty

En combinant Librato et PagerDuty, tous les ingénieurs de n'importe quelle équipe peuvent facilement traiter, visualiser et corréler les événements dans vos signaux de télémétrie, ainsi qu'envoyer des notifications et des escalades qui reflètent à coup sûr les données de ces visualisations. Vos ingénieurs peuvent utiliser les outils qu'ils souhaitent, tout en s'assurant que les signaux émis par ces outils peuvent être utilisés pour fournir un retour d'information efficace et opportun à tous les membres de l'organisation. Inscrivez-vous pour un Essai gratuit de Librato aujourd'hui et apprenez comment intégrer PagerDuty avec Librato .