David O'Brien (Xirus): Mesures! Métrique! Métrique! Partie 2

David O'Brien a récemment ouvert sa propre entreprise, Xirus (https://xirus.com.au), en se concentrant sur les produits cloud Microsoft Azure Stack. Ils sont destinés à la création et au lancement coordonnés d'applications hybrides dans les centres de données, aux emplacements frontaliers, aux bureaux distants et au cloud.

David enseigne aux particuliers et aux entreprises tout ce qui concerne Microsoft Azure et Azure DevOps (anciennement VSTS) et est toujours engagé dans le conseil pratique et l'infra-codage. Il a été le lauréat du Microsoft MVP Award (Microsoft Most Valuable Professional) pendant 5 ans et a récemment reçu le MVP Azure Award. En tant que co-organisateur du Meetup Melbourne Microsoft Cloud et Datacentre, O'Brien intervient régulièrement lors de conférences internationales, combinant son intérêt pour le voyage dans le monde avec une passion pour le partage d'histoires informatiques avec la communauté. Le blog de David est situé sur david-obrien.net , et il publie également ses formations Pluralsight en ligne.

La présentation parle de l'importance des métriques pour comprendre ce qui se passe dans votre environnement et comment fonctionne votre application. Microsoft Azure propose un moyen puissant et simple d'afficher des métriques pour tous les types de charges de travail, et la conférence explique comment vous pouvez toutes les utiliser.

A 3 heures du matin, dimanche, pendant le sommeil, vous vous réveillez soudainement avec un SMS: "L'application supercritique ne répond plus". Que se passe-t-il? Où et quelle est la cause des «freins»? Dans cette présentation, vous découvrirez les services que Microsoft Azure propose aux clients pour collecter les journaux et, en particulier, les métriques pour vos charges de travail cloud. David vous dira quelles mesures devraient vous intéresser lorsque vous travaillez sur une plate-forme cloud et comment y accéder. Vous en apprendrez plus sur les outils open source et la création de tableaux de bord et, par conséquent, vous gagnerez suffisamment de connaissances pour créer vos propres tableaux de bord.

Et si à 3 heures du matin vous réveillez à nouveau un message concernant le plantage d'une application critique, vous pouvez rapidement en déterminer la cause.

David O'Brien (Xirus): Mesures! Métrique! Métrique! Partie 1

Comme les diapositives seraient trop volumineuses, j'ai préféré la démo. Réfléchissez à la façon dont vous pouvez visualiser la surveillance et commencez avec l'onglet Monitor-Metrics. Comme je l'ai mentionné, c'est assez facile. Il vous suffit de spécifier la ressource utilisée dans le menu déroulant Groupe de ressources et le type de ressource dans le menu Type de ressource. Dans notre cas, je sélectionne les 72 types de métriques.



Heureusement ou malheureusement, la plupart des services cloud s'exécutent sur des machines virtuelles, et je fais de même. Sur cette machine virtuelle, par défaut, Microsoft nous montre les mesures de l'hôte. En particulier, nous pouvons voir la quantité de trafic passant par cette machine virtuelle au cours des 24 dernières heures avec un intervalle de mesure de 15 minutes. Vous voyez que nous avons un merveilleux tableau de bord pour cette statistique. Ce n'est pas une métrique très avancée, et nous ne pouvons rien y faire, sauf pour voir la quantité de trafic sortant en mégaoctets. Voici les outils: la possibilité d'ajouter une nouvelle règle concernant les restrictions et la possibilité de joindre cette métrique au tableau de bord.
Ceux qui utilisent la machine virtuelle doivent savoir ce qu'est Telegraf, ce qui est indiqué dans la ligne RESORCE. Il s'agit d'un plugin TING open source écrit en Go, qui est conçu pour collecter des métriques ou des données du système sur lequel il est installé. Telegraf transmet les métriques collectées à la base de données InfluxDB. Ce plugin multiplateforme fonctionne sur Windows et Linux.



Comme je l'ai dit, par défaut, Microsoft Azure Monitor utilise des métriques d'hyperviseur pour la machine virtuelle, cela est indiqué sur la ligne METRIC NAMESPACE. Cela se produit également dans AWS. Je ne peux rien dire sur la plateforme cloud GSP, car je ne l'ai jamais utilisée. J'ai donc choisi Telegraf comme ressource et lui ai demandé de transférer cette métrique sur le moniteur Sum.



Je peux aller dans la liste METRIC et sélectionner plus de métriques affichées. Par exemple, maintenant je sélectionne la métrique usage_steal (en utilisant l'interception). Est-ce que quelqu'un sait ce que c'est?



Combien d'entre vous vivent dans un appartement avec des voisins qui aiment écouter de la musique très fort? D'accord, donc usage_steal est une métrique qui montre comment les voisins du cloud peuvent affecter votre système d'exploitation. De nombreuses personnes oublient qu'elles exécutent leurs applications dans un environnement de cloud public. Dans GCP, AWS et Azure, les fournisseurs vous mettent sur une infrastructure partagée. Vous partagez votre infrastructure - machine virtuelle, applications, API - avec d'autres utilisateurs. Cela ne signifie pas qu'ils ont accès à vos données, mais ils peuvent affecter vos applications, et vous devez en être conscient. Si vous ne connaissez pas cet effet, votre application peut avoir des difficultés à fonctionner. Si vous ne collectez pas de métriques usage_steal, vous ne saurez pas que votre application peut être affectée par un impact étranger. Supposerque vous avez lancé votre programme, tout fonctionne bien, sans erreurs, mais tout à coup quelque chose se passe, et l'application se bloque. Cela se produit assez souvent et dépend du type de machine virtuelle que vous utilisez et du nombre de machines virtuelles du même type que votre fournisseur place sur chaque hôte. Il est probable que vos programmes seront affectés par cette infrastructure.

La seule façon d'empêcher que cela ne se produise est de deux manières: la première consiste à attendre que tout se passe d'elle-même et la seconde consiste à déployer votre machine virtuelle sur l'hôte d'un autre hyperviseur. Cependant, pour prendre une décision, vous devez en être conscient en collectant les mesures appropriées. Comme vous pouvez le voir, lorsque vous utilisez la métrique usage_steal, le moniteur n'affiche aucune activité, probablement parce que je n'ai pas exécuté un grand nombre d'applications.

Ainsi, nous pouvons créer notre propre tableau de bord en y plaçant des moniteurs de mesures sélectionnées. Ce panneau peut être partagé avec d'autres utilisateurs, et je conseille généralement à mes clients de créer des panneaux comme celui-ci, en les plaçant sur un grand écran dans le bureau afin qu'ils soient visibles par tous les employés.



Chaque matin, en venant travailler, n'importe qui peut regarder un tel écran et découvrir ce qui se passe avec le système. Par exemple, vous pouvez voir que 500 erreurs de connexion HTTP ont été corrigées et n'attendez pas que les clients vous en informent, mais déterminez la raison de leur occurrence et résolvez le problème avec votre site.

Une surveillance plus avancée consiste à collecter les centiles. Par exemple, connaître les performances moyennes de votre CPU peut ne pas être suffisant, car différentes applications chargent le processeur différemment.



Les centiles vous permettent de comprendre ce qui se passe dans le monde. Supposons que 99 centiles soit 200 ms. Cela signifie que 99% de toutes vos demandes ont un temps de réponse allant jusqu'à 200 ms, et cela signifie également que 1% de vos clients reçoivent une réponse avec un retard supérieur à 200 ms.

Selon le contenu de votre SLA, souvenez-vous de ce dont nous avons parlé au début, vous devriez considérer ce fait. En fait, le plus souvent, vous faites attention à la valeur moyenne, au lieu de prendre en compte les centiles. Et la valeur moyenne «cache» de tels écarts en soi.

Considérez comment nous obtenons ces valeurs. Le fait est qu'Azure Monitor ne calcule rien. Vous pouvez obtenir la valeur moyenne, maximale ou minimale, mais si vous avez besoin de mesures plus avancées obtenues à la suite de calculs, vous devez utiliser l'analyse de journal. L'analyse des journaux utilise le langage KQL, c'est une fonctionnalité très utile d'Azure "prête à l'emploi".



Si vous regardez cette métrique, vous pouvez voir que le fournisseur de ressources est Microsoft.SQL, il est lui-même appelé "dtu_consumption_percent" et est engagé dans la création de centiles. Cela peut ne pas être particulièrement applicable à vos flux de travail, mais vous devez savoir que le module Log Analytics offre cette capacité. Vous pouvez donc utiliser l'analyse si vous avez besoin de calculs plus avancés de vos mesures. Certes, vous devez payer pour cela. Par défaut, cet outil vous permet de traiter jusqu'à 5 Go de données par mois gratuitement, cependant, je connais des clients qui utilisent 5 Go par minute. Donc 5 Go par mois pourraient ne pas suffire.

Sur l'écran, vous voyez une métrique montrant que j'utilise actuellement 20 Mo. Comme il s'agit d'un environnement de démonstration, la quantité de données obtenues est très faible. Comme je l'ai dit, dès sa sortie de l'emballage, Logs Analytic vous permet de traiter jusqu'à 5 Go de données par mois gratuitement, en les stockant pendant 41 jours. Il est nécessaire de payer pour dépasser ces volumes, cependant, selon mon expérience, ce service est toujours moins cher que des produits tiers similaires, tels que Splunk ou Sumo.

Passons à Grafana, qui a un plugin pour Azure Monitor. Il est sorti il ​​y a quelques semaines en version 0.2. Grâce à ce plugin, vous pouvez utiliser Grafana pour vos métriques. Je préfère déployer Grafana sur App Services, car il est possible d'utiliser des conteneurs ici. Cela me permet d'exécuter des applications sur un ordinateur portable. Pour ce faire, j'exécute cette ligne de commande:



après quoi je peux rapidement tester quelque chose ou montrer quelque chose à mes clients.
Le déploiement de Grafana dans un environnement Azure prend également une ligne, je viens de la diviser en 4 afin de pouvoir la voir sur un seul écran.



Azure a ce qu'on appelle des «structures de conteneurs» comme AWS, l'équivalent de structures Google similaires. Il s'agit d'une image de conteneur qui peut être distribuée sur plusieurs conteneurs. L'équipe que j'ai mise en avant lance Grafana en même temps qu'Azure Monitor. Le déploiement de Grafana dans un environnement de surveillance prend environ 30 secondes.



Je peux faire la même chose grâce au code d'infrastructure: les



détails peuvent être trouvés sur mon Twitter, plus tard je donnerai mes contacts. Un fichier avec l'extension .yaml indique comment utiliser l'image du conteneur et quoi en faire. Il y a beaucoup de lignes de code ici, et je dois faire défiler la fenêtre pour que vous puissiez la voir. Ce fichier est déployé par Grafana sur la plateforme Azure.





Je vais donc à Grafana sur mon ordinateur portable et montre le tableau de bord que j'ai créé. Une chose que je ne peux toujours pas faire est de transmettre les mesures de Telegraf à Grafana. Malheureusement, ces métriques utiles qui s'exécutent sur une machine virtuelle ne sont pas encore affichées dans Grafana. Microsoft résout ce problème et nous verrons probablement le résultat dans les nouvelles versions de Telegraf et Grafana. Pour l'instant, nous pouvons utiliser les métriques d'hyperviseur que Telegraf propose par défaut dans le menu déroulant de la ligne Métrique. Sur la machine virtuelle, il est possible de créer diverses métriques personnalisées qui manquent à Grafana, puis de les coller dans cette application. Cela peut être fait si la métrique personnalisée peut être placée dans la suite de métriques Azure.





Les clients me demandent souvent ce qu'ils doivent utiliser? Grafana affiche visuellement les métriques de divers processus et Azure vous permet d'effectuer des calculs de métriques plus complexes. Dans ce dernier cas, vous obtenez un grand ensemble de métriques «prêtes à l'emploi», mais Azure n'affiche que les métriques Azure. Ainsi, le choix dépend des tâches que vous effectuez. Vous pouvez créer des métriques pour votre site, pour les bases de données, pour les applications déployables, les intégrer dans Grafana et créer un panneau informatif volumineux. Malheureusement, vous ne pourrez pas le faire avec Azure, et je ne pense pas que Microsoft ait l'intention d'étendre les fonctionnalités d'Azure dans une telle mesure.

Cependant, je vous recommande de commencer à créer votre tableau de bord spécifiquement avec Azure, car aujourd'hui, en travaillant avec un petit nombre d'applications, vous pouvez déjà travailler avec des métriques Azure, ce qui est mieux que de ne rien faire du tout.

Donc, notre connaissance des métriques Azure Monitor touche à sa fin et je veux parler de moi. Je m'appelle David O'Brien et mon statut Microsoft MVP signifie que je passe beaucoup de temps à parler d'Azure et à me former à l'utilisation de ce service.



J'ai ma propre entreprise, nous organisons des cours de formation dans le monde entier, parlant de divers produits Microsoft, y compris des services cloud. Vous voyez mes contacts sur Twitter, où je suis super actif en bloguant. Vous n'avez pas besoin de photographier cette diapositive, souvenez-vous simplement de l'adresse du site Web Xirus. Vous pouvez poser vos questions!

Question: Les métriques sont très importantes, mais que pouvez-vous dire sur la gestion des journaux?

Réponse: en principe, la gestion des journaux dans Azure est similaire à la gestion des métriques. Vous pouvez également les placer dans votre référentiel, puis les envoyer à Log Analytics, puis utiliser cette application pour traiter les journaux de la même manière que les métriques. Vous pouvez collecter des bûches et les stocker à l'extérieur de la machine, les placer dans des conteneurs, puis les placer de manière centrale au bon endroit.

Question: cela peut-il être fait automatiquement ou par programme?

Réponse: en aucune façon. Revenons à Azure Cloud Shell - vous voyez qu'ici, dans la section des mesures, il existe un service qui peut présenter les mesures sous forme de journaux. Par exemple, je peux créer un modèle d'erreur et dire à ce service: «veuillez publier ces journaux ici». Au cours de cette démo, je vous ai montré des options simples pour travailler avec Azure, cependant, dans des conditions réelles, veuillez utiliser ces modèles. Vous pouvez utiliser cette méthode via l'interface de ligne de commande CLI ou de toute autre manière pratique. Si vous ne souhaitez pas écrire de modèles et JSON, vous pouvez utiliser le moteur ouvert pour écrire des modèles HTTL, Microsoft le permet.



Pas plus de questions? Merci d'avoir passé ce temps avec moi!


Un peu de publicité :)


Merci de rester avec nous. Aimez-vous nos articles? Vous voulez voir des matériaux plus intéressants? Soutenez-nous en passant une commande ou en recommandant à vos amis, le cloud VPS pour les développeurs à partir de 4,99 $ , un analogue unique de serveurs d'entrée de gamme que nous avons inventé pour vous: Toute la vérité sur VPS (KVM) E5-2697 v3 (6 cœurs) 10 Go DDR4 480 Go SSD 1 Gbit / s à partir de 19 $ ou comment diviser le serveur? (les options sont disponibles avec RAID1 et RAID10, jusqu'à 24 cœurs et jusqu'à 40 Go de DDR4).

Dell R730xd 2 fois moins cher au centre de données Equinix Tier IV à Amsterdam? Nous avons seulement 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV à partir de 199 $ aux Pays-Bas!Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - à partir de 99 $! En savoir plus sur la création d'un bâtiment d'infrastructure. classe c utilisant des serveurs Dell R730xd E5-2650 v4 coûtant 9 000 euros pour un sou?

All Articles