David O'Brien (Xirus): Metriken! Metriken! Metriken! Teil 2

David O'Brien hat kürzlich seine eigene Firma Xirus (https://xirus.com.au) eröffnet, die sich auf Microsoft Azure Stack-Cloud-Produkte konzentriert. Sie sind für die koordinierte Erstellung und Einführung von Hybridanwendungen in Rechenzentren, an Grenzstandorten, in Remote-Büros und in der Cloud vorgesehen.

David unterrichtet Einzelpersonen und Unternehmen in Bezug auf Microsoft Azure und Azure DevOps (ehemals VSTS) und beschäftigt sich weiterhin mit praktischer Beratung und Infra-Codierung. Er ist seit 5 Jahren der Gewinner des Microsoft MVP Award (Microsoft Most Valuable Professional) und erhielt kürzlich den MVP Azure Award. Als Mitorganisator des Microsoft Cloud and Datacentre Meetup in Melbourne spricht O'Brien regelmäßig auf internationalen Konferenzen und verbindet sein Interesse an Weltreisen mit der Leidenschaft, IT-Geschichten mit der Community zu teilen. Davids Blog befindet sich unter david-obrien.net und er veröffentlicht auch seine Online-Pluralsight-Schulungen.

In der Präsentation wird die Bedeutung von Metriken erläutert, um zu verstehen, was in Ihrer Umgebung geschieht und wie Ihre Anwendung funktioniert. Microsoft Azure bietet eine leistungsstarke und einfache Möglichkeit, Metriken für alle Arten von Workloads anzuzeigen. In der Vorlesung wird erläutert, wie Sie sie alle verwenden können.

Am Sonntag um 3 Uhr morgens wachen Sie im Schlaf plötzlich mit einer SMS auf: „Die überkritische Anwendung reagiert nicht mehr“. Was ist los? Wo und was sind die Ursachen für die „Bremsen“? In diesem Vortrag erfahren Sie mehr über die Dienste, die Microsoft Azure Kunden zum Sammeln von Protokollen und insbesondere über Metriken für Ihre Cloud-Workloads bietet. David wird Ihnen sagen, welche Metriken Sie bei der Arbeit an einer Cloud-Plattform interessieren sollten und wie Sie zu ihnen gelangen. Sie lernen Open Source-Tools und das Erstellen von Dashboards kennen und erhalten so genügend Wissen, um Ihre eigenen Dashboards zu erstellen.

Und wenn Sie um 3 Uhr morgens erneut eine Meldung über den Absturz einer kritischen Anwendung aufwecken, können Sie die Ursache schnell herausfinden.

David O'Brien (Xirus): Metriken! Metriken! Metriken! Teil 1

Da die Folien zu sperrig wären, habe ich die Demo vorgezogen. Überlegen Sie, wie Sie die Überwachung visualisieren können, und beginnen Sie mit der Registerkarte Monitor-Metrics. Wie ich bereits erwähnte, ist dies einfach genug. Sie müssen lediglich die im Dropdown-Menü Ressourcengruppe verwendete Ressource und den Ressourcentyp im Menü Ressourcentyp angeben. In unserem Fall wähle ich alle 72 Arten von Metriken aus.



Glücklicherweise oder unglücklicherweise laufen die meisten Cloud-Dienste auf virtuellen Maschinen, und ich mache das Gleiche. Auf dieser virtuellen Maschine zeigt Microsoft uns standardmäßig Hostmetriken an. Insbesondere können wir sehen, wie viel Verkehr in den letzten 24 Stunden mit einem Messintervall von 15 Minuten durch diese VM geleitet wurde. Sie sehen, wir haben ein wunderbares Dashboard für diese Metrik. Dies ist keine sehr fortgeschrittene Metrik, und wir können nichts damit anfangen, außer die Menge des ausgehenden Datenverkehrs in Megabyte anzuzeigen. Zu den Tools hier gehören: die Möglichkeit, eine neue Regel in Bezug auf Einschränkungen hinzuzufügen und diese Metrik an das Dashboard anzuhängen.
Diejenigen, die die virtuelle Maschine verwenden, sollten wissen, was Telegraf ist, was in der Zeile RESORCE angegeben ist. Dies ist ein in Go geschriebenes Open-Source-TING-Plugin, mit dem Metriken oder Daten von dem System erfasst werden, auf dem es installiert ist. Telegraf übergibt die gesammelten Metriken an die InfluxDB-Datenbank. Dieses plattformübergreifende Plugin funktioniert unter Windows und Linux.



Wie bereits erwähnt, verwendet Microsoft Azure Monitor standardmäßig Hypervisor-Metriken für die virtuelle Maschine. Dies wird in der Zeile METRIC NAMESPACE angegeben. Ähnliches gilt für AWS. Ich kann nichts über die GSP-Cloud-Plattform sagen, da ich sie noch nie verwendet habe. Also wähle ich Telegraf als Ressource und weise ihn an, diese Metrik auf den Summenmonitor zu übertragen.



Ich kann zur METRIC-Liste gehen und weitere angezeigte Metriken auswählen. Zum Beispiel wähle ich jetzt die Metrik usage_steal aus (unter Verwendung von Interception). Weiß jemand was es ist?



Wie viele von Ihnen leben in einer Wohnung mit Nachbarn, die gerne sehr laut Musik hören? Okay, usage_steal ist eine Metrik, die zeigt, wie sich Cloud-Nachbarn auf Ihr Betriebssystem auswirken können. Viele Menschen vergessen, dass sie ihre Anwendungen in einer öffentlichen Cloud-Umgebung ausführen. Sowohl in GCP als auch in AWS und Azure stellen Anbieter Sie auf eine gemeinsam genutzte Infrastruktur. Sie teilen Ihre Infrastruktur - virtuelle Maschine, Anwendungen, API - mit anderen Benutzern. Dies bedeutet nicht, dass sie Zugriff auf Ihre Daten haben, sie können sich jedoch auf Ihre Anwendungen auswirken, und Sie sollten sich dessen bewusst sein. Wenn Sie diesen Effekt nicht kennen, kann es sein, dass Ihre Anwendung Schwierigkeiten beim Arbeiten hat. Wenn Sie keine Metriken für usage_steal erfassen, wissen Sie nicht, dass Ihre Anwendung möglicherweise von externen Auswirkungen betroffen ist. AnnehmenWenn Sie Ihr Programm gestartet haben, funktioniert alles einwandfrei, ohne Fehler, aber plötzlich passiert etwas und die Anwendung stürzt ab. Dies kommt häufig vor und hängt davon ab, welche Art von virtueller Maschine Sie verwenden und wie viele VMs desselben Typs Ihr Provider auf jedem Host platziert. Es ist wahrscheinlich, dass Ihre Programme durch diese Infrastruktur beeinträchtigt werden.

Die einzige Möglichkeit, dies zu verhindern, besteht auf zwei Arten: Die erste besteht darin, zu warten, bis alles von selbst funktioniert, und die zweite darin, Ihre virtuelle Maschine auf dem Host eines anderen Hypervisors bereitzustellen. Um jedoch eine Entscheidung zu treffen, müssen Sie sich dessen bewusst sein, indem Sie die entsprechenden Metriken erfassen. Wie Sie sehen können, zeigt der Monitor bei Verwendung der Metrik "usage_steal" keine Aktivität an, wahrscheinlich weil ich nicht viele Anwendungen ausgeführt habe.

So können wir unser eigenes Dashboard erstellen, indem wir Monitore ausgewählter Metriken darauf platzieren. Dieses Panel kann für andere Benutzer freigegeben werden. Normalerweise empfehle ich meinen Kunden, solche Panels zu erstellen und sie auf einem großen Bildschirm im Büro zu platzieren, damit sie für alle Mitarbeiter sichtbar sind.



Jeden Morgen, wenn er zur Arbeit kommt, kann jeder auf einen solchen Bildschirm schauen und herausfinden, was mit dem System passiert. Sie können beispielsweise feststellen, dass 500 HTTP-Verbindungsfehler behoben wurden, und nicht darauf warten, dass die Clients Sie darüber informieren, sondern den Grund für ihr Auftreten ermitteln und das Problem mit Ihrer Site beheben.

Eine fortgeschrittenere Überwachung ist das Sammeln von Perzentilen. Beispielsweise reicht es möglicherweise nicht aus, die durchschnittliche Leistung Ihrer CPU zu kennen, da verschiedene Anwendungen den Prozessor unterschiedlich laden.



Perzentile geben Ihnen ein Verständnis dafür, was global geschieht. Angenommen, 99 Perzentile sind 200 ms. Dies bedeutet, dass 99% aller Ihrer Anfragen eine Antwortzeit von bis zu 200 ms haben. Dies bedeutet auch, dass 1% Ihrer Kunden eine Antwort mit einer Verzögerung von mehr als 200 ms erhalten.

Denken Sie je nach Inhalt Ihres SLA daran, worüber wir zu Beginn gesprochen haben. Sie sollten diese Tatsache berücksichtigen. Tatsächlich achten Sie meistens auf den Durchschnittswert, anstatt Perzentile zu berücksichtigen. Und der Durchschnittswert „verbirgt“ solche Abweichungen in sich.

Überlegen Sie, wie wir diese Werte erhalten. Tatsache ist, dass Azure Monitor nichts berechnet. Sie können den Durchschnittswert (Maximum oder Minimum) ermitteln. Wenn Sie jedoch erweiterte Metriken benötigen, die als Ergebnis von Berechnungen ermittelt wurden, sollten Sie die Protokollanalyse verwenden. Die Protokollanalyse verwendet die KQL-Sprache. Dies ist eine sehr nützliche Funktion von Azure "out of the box".



Wenn Sie sich diese Metrik ansehen, sehen Sie, dass der Ressourcenanbieter Microsoft.SQL ist. Er selbst heißt "dtu_consumption_percent" und ist an der Erstellung von Perzentilen beteiligt. Dies gilt möglicherweise nicht besonders für Ihre Workflows. Sie sollten jedoch wissen, dass das Log Analytics-Modul diese Funktion bietet. Sie können also Analysen verwenden, wenn Sie erweiterte Berechnungen Ihrer Metriken benötigen. Es stimmt, du musst dafür bezahlen. Standardmäßig können Sie mit diesem Tool bis zu 5 GB Daten pro Monat kostenlos verarbeiten. Ich kenne jedoch Clients, die 5 GB pro Minute verwenden. 5 GB pro Monat reichen also möglicherweise nicht aus.

Auf dem Bildschirm sehen Sie eine Metrik, die zeigt, dass ich derzeit 20 MB verwende. Da es sich um eine Demo-Umgebung handelt, ist die Menge der erhaltenen Daten sehr gering. Wie bereits erwähnt, können Sie mit Logs Analytic sofort bis zu 5 GB Daten pro Monat kostenlos verarbeiten und 41 Tage lang speichern. Es ist notwendig, für die Überschreitung dieser Mengen zu zahlen. Meiner Erfahrung nach ist dieser Service jedoch immer noch billiger als ähnliche Produkte von Drittanbietern wie Splunk oder Sumo.

Fahren wir mit Grafana fort, das ein Plugin für Azure Monitor enthält. Es wurde vor einigen Wochen in Version 0.2 veröffentlicht. Dank dieses Plugins können Sie Grafana für Ihre Metriken verwenden. Ich bevorzuge die Bereitstellung von Grafana in App Services, da hier Container verwendet werden können. Dadurch kann ich Anwendungen auf einem Laptop ausführen. Dazu führe ich diese Befehlszeile aus:



Danach kann ich meinen Kunden schnell etwas testen oder etwas zeigen.
Das Bereitstellen von Grafana in einer Azure-Umgebung dauert ebenfalls eine Zeile. Ich habe es nur in vier Zeilen aufgeteilt, damit ich es auf einem Bildschirm sehen kann.



Azure verfügt über sogenannte "Containerstrukturen" wie AWS, die ähnlichen Google-Strukturen entsprechen. Dies ist ein Container-Image, das auf mehrere Container verteilt werden kann. Das von mir hervorgehobene Team startet Grafana gleichzeitig mit Azure Monitor. Die Bereitstellung von Grafana in einer Monitorumgebung dauert ungefähr 30 Sekunden.



Ich kann dasselbe über den Infrastrukturcode tun:



Details finden Sie auf meinem Twitter, später werde ich meine Kontakte geben. Eine Datei mit der Erweiterung .yaml gibt an, wie das Container-Image verwendet wird und was damit zu tun ist. Hier gibt es viele Codezeilen, und ich muss das Fenster nach unten scrollen, damit Sie es sehen können. Diese Datei wird von Grafana auf der Azure-Plattform bereitgestellt.





Also gehe ich auf meinem Laptop zu Grafana und zeige das von mir erstellte Dashboard. Eine Sache, die ich immer noch nicht tun kann, ist, Telegraf-Metriken an Grafana zu übergeben. Leider werden diese nützlichen Metriken, die in einer virtuellen Maschine ausgeführt werden, in Grafana noch nicht angezeigt. Microsoft löst dieses Problem, und wir werden das Ergebnis wahrscheinlich in neuen Versionen von Telegraf und Grafana sehen. Derzeit können wir die von Telegraf standardmäßig angebotenen Hypervisor-Metriken im Dropdown-Menü der Metrikzeile verwenden. Auf der virtuellen Maschine ist es möglich, verschiedene benutzerdefinierte Metriken zu erstellen, die Grafana fehlen, und diese dann in diese Anwendung einzufügen. Dies ist möglich, wenn die benutzerdefinierte Metrik in der Azure-Metriksuite platziert werden kann.





Kunden fragen mich oft, was sie verwenden sollen? Grafana zeigt die Metriken verschiedener Prozesse visuell an, und mit Azure können Sie komplexere Metrikberechnungen durchführen. Im letzteren Fall erhalten Sie eine große Anzahl von Metriken "out of the box", aber Azure zeigt nur Azure-Metriken an. Daher hängt die Auswahl von den Aufgaben ab, die Sie ausführen. Sie können Metriken für Ihre Site, für Datenbanken und für bereitstellbare Anwendungen erstellen, diese in Grafana integrieren und ein umfangreiches Informationsfenster erstellen. Leider können Sie dies mit Azure nicht tun, und ich glaube nicht, dass Microsoft beabsichtigt, die Funktionalität von Azure in einem solchen Ausmaß zu erweitern.

Ich empfehle jedoch, dass Sie Ihr Dashboard speziell mit Azure erstellen, da Sie heute mit einer kleinen Anzahl von Anwendungen bereits mit Azure-Metriken arbeiten können, was besser ist, als überhaupt nichts zu tun.

Unsere Bekanntschaft mit Azure Monitor-Metriken nähert sich dem Ende und ich möchte über mich selbst berichten. Mein Name ist David O'Brien und mein Status als Microsoft MVP besagt, dass ich viel Zeit damit verbringe, über Azure zu sprechen und in der Arbeit mit diesem Dienst zu schulen.



Ich habe meine eigene Firma, wir organisieren Schulungen auf der ganzen Welt und sprechen über verschiedene Microsoft-Produkte, einschließlich Cloud-Services. Sie sehen meine Kontakte auf Twitter, wo ich durch Bloggen super aktiv bin. Sie müssen diese Folie nicht fotografieren. Denken Sie nur an die Adresse der Xirus-Website. Sie können Ihre Fragen stellen!

Frage: Metriken sind sehr wichtig, aber was können Sie über die Protokollverwaltung sagen?

Antwort: Im Prinzip ähnelt das Verwalten von Protokollen in Azure dem Verwalten von Metriken. Sie können sie auch in Ihrem Repository ablegen, dann an Log Analytics senden und diese Anwendung dann zur Verarbeitung von Protokollen auf dieselbe Weise wie Metriken verwenden. Sie können Protokolle sammeln und außerhalb der Maschine aufbewahren, in Behälter legen und dann zentral an der richtigen Stelle platzieren.

Frage: Kann dies automatisch oder programmgesteuert erfolgen?

Antwort: in irgendeiner Weise. Kehren wir zur Azure Cloud Shell zurück. Sie sehen, dass es hier im Abschnitt "Metriken" einen Dienst gibt, der Metriken als Protokolle darstellen kann. Zum Beispiel kann ich eine Fehlervorlage erstellen und diesem Dienst mitteilen: "Bitte veröffentlichen Sie diese Protokolle hier". Während dieser Demo habe ich Ihnen einfache Optionen für die Arbeit mit Azure gezeigt. Verwenden Sie jedoch unter realen Bedingungen diese Vorlagen. Sie können diese Methode über die CLI-Befehlszeilenschnittstelle oder auf andere bequeme Weise verwenden. Wenn Sie keine Vorlagen und JSON schreiben möchten, können Sie die offene Engine zum Schreiben von HTTL-Vorlagen verwenden. Microsoft lässt dies zu.



Keine weiteren Fragen? Danke, dass du diese Zeit mit mir verbracht hast!


Ein bisschen Werbung :)


Vielen Dank für Ihren Aufenthalt bei uns. Gefällt dir unser Artikel? Möchten Sie weitere interessante Materialien sehen? Unterstützen Sie uns, indem Sie eine Bestellung aufgeben oder Ihren Freunden Cloud-basiertes VPS für Entwickler ab 4,99 US-Dollar empfehlen , ein einzigartiges Analogon von Einstiegsservern, das von uns für Sie erfunden wurde: Die ganze Wahrheit über VPS (KVM) E5-2697 v3 (6 Kerne) 10 GB DDR4 480 GB SSD 1 Gbit / s ab 19 $ oder wie teilt man den Server? (Optionen sind mit RAID1 und RAID10, bis zu 24 Kernen und bis zu 40 GB DDR4 verfügbar).

Dell R730xd 2-mal günstiger im Equinix Tier IV-Rechenzentrum in Amsterdam? Nur wir haben 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2,6 GHz 14C 64 GB DDR4 4 x 960 GB SSD 1 Gbit / s 100 TV von 199 US-Dollar in den Niederlanden!Dell R420 - 2x E5-2430 2,2 GHz 6C 128 GB DDR3 2x960 GB SSD 1 Gbit / s 100 TB - ab 99 US-Dollar! Lesen Sie, wie Sie eine Infrastruktur aufbauen Klasse C mit Dell R730xd E5-2650 v4-Servern für 9.000 Euro für einen Cent?

All Articles