{"id":1552,"date":"2020-08-19T07:39:28","date_gmt":"2020-08-19T07:39:28","guid":{"rendered":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?p=1552"},"modified":"2020-08-19T07:39:29","modified_gmt":"2020-08-19T07:39:29","slug":"azure-application-insights","status":"publish","type":"post","link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/","title":{"rendered":"Schau mir in die Augen &#8211; Anwendungs\u00fcberwachung mit Azure Application Insights"},"content":{"rendered":"\n<p>Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden \u2013 von Antwortzeiten und -raten \u00fcber Fehler und Ausnahmen, Seitenaufrufe, Benutzer (-Sitzungen), Backend bis hin zu Desktop-Anwendungen.<\/p>\n\n\n\n<p>Die \u00dcberwachung beschr\u00e4nkt sich keinesfalls nur auf Webseiten. Application Insights l\u00e4sst sich auch bei Webdiensten sowie im Backend einsetzen. Sogar Desktop-Anwendungen lassen sich \u00fcberwachen. Anschlie\u00dfend k\u00f6nnen die Daten \u00fcber unterschiedliche Wege analysiert und ausgewertet werden (siehe Abbildung 1).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE.png\"><img loading=\"lazy\" decoding=\"async\" width=\"760\" height=\"443\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE.png\" alt=\"Einsatzm\u00f6glichkeiten von Application Insights\" class=\"wp-image-1553\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE.png 760w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE-600x350.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE-640x373.png 640w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 760px\" \/><\/a><figcaption><em>Abbildung 1: Einsatzm\u00f6glichkeiten von Application Insights (Quelle: <a href=\"https:\/\/docs.microsoft.com\/de-de\/azure\/azure-monitor\/app\/app-insights-overview\">https:\/\/docs.microsoft.com\/de-de\/azure\/azure-monitor\/app\/app-insights-overview<\/a>)<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Loggen<\/h2>\n\n\n\n<p>Als Ausgangsbasis wird eine Azure Subscription mit einer Application-Insights-Instanz ben\u00f6tigt. Ist diese angelegt, findet man in der \u00dcbersicht den sogenannten <em>Instrumentation Key<\/em> \u2013 dieser fungiert als Connection String.<\/p>\n\n\n\n<p>Sobald die Instanz bereitgestellt wurde, kann auch schon mit der Implementierung begonnen werden. Programmiertechnisch ist man hier keinesfalls auf Azure-Ressourcen oder .Net beschr\u00e4nkt. Microsoft unterst\u00fctzt eine Vielzahl an Sprachen und Plattformen.<\/p>\n\n\n\n<p>Als Beispiel dient hier eine kleine .Net-Core-Konsolenanwendung. Dazu muss lediglich das NuGet-Paket <em>Microsoft.ApplicationInsights<\/em> eingebunden werden und schon kann es losgehen.<\/p>\n\n\n\n<p>Als erstes wird ein <em>Telemetry Client<\/em> erstellt. Hier wird einfach der passende <em>Instrumentation Key<\/em> aus der eigenen Application-Insights-Instanz eingef\u00fcgt und schon ist die Anwendung bereit f\u00fcr die ersten Log-Eintr\u00e4ge.<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Mit <em>Trace<\/em> erzeugt man einen einfachen Trace-Log-Eintrag mit entsprechender Message und passendem Severity Level.<\/li><li><em>Events<\/em> eignen sich f\u00fcr strukturierte Logs, welche sowohl Text als auch numerische Werte enthalten k\u00f6nnen.<\/li><li><em>Metrics<\/em> sind dagegen ausschlie\u00dflich numerische Werte und dienen daher vor allem zur Erfassung regelm\u00e4\u00dfiger Ereignisse.<\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>static void Main(string&#91;] args)\n{\nConsole.WriteLine(\"Schau mir in die Augen\");\n\n       var config = TelemetryConfiguration.CreateDefault();\n       config.InstrumentationKey = \"INSTRUMENTATIONKEY\";\n       var tc = new TelemetryClient(config);\n\n       \/\/ Track traces\n       tc.TrackTrace(\"BlogTrace\", SeverityLevel.Information);\n\n       \/\/ Track custom events\n       var et = new EventTelemetry();\n       et.Name = \"BlogEvent\";\n       et.Properties.Add(\"Source\", \"console\");\n       et.Properties.Add(\"Context\", \"Schau mir in die Augen\");\n       tc.TrackEvent(et);\n\n       \/\/ Track custom metric\n       var mt = new MetricTelemetry();\n       mt.Name = \"BlogMetric\";\n       mt.Sum = new Random().Next(1,100);\n       tc.TrackMetric(mt);\n\n       tc.Flush();\n}<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Als Hinweis sei noch erw\u00e4hnt, dass die Log-Eintr\u00e4ge mit bis zu f\u00fcnf Minuten Verz\u00f6gerung im Application Insights erscheinen.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Zusammenspiel mit NLog<\/strong><\/h2>\n\n\n\n<p>Application Insights l\u00e4sst sich mit wenigen Schritten auch in eine bestehende NLog-Konfiguration einbinden.<\/p>\n\n\n\n<p>Dazu m\u00fcssen das NuGet-Paket <em>Microsoft.ApplicationInsights.NLogTarget<\/em> installiert und danach die NLog-Konfiguration um folgende Eintr\u00e4ge erweitern werden:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li><em>Extensions<\/em> mit dem Verweis auf die Application Insights <em>Assembly<\/em> hinzuf\u00fcgen<\/li><li>Neues Target vom Typ <em>Application Insights Target<\/em> (hier wieder den eigenen Instrumentation Key angeben)<\/li><li>Neue Regel mit Ziel auf das <em>Application Insights Target<\/em><\/li><\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;nlog xmlns=\"http:\/\/www.nlog-project.org\/schemas\/NLog.xsd\"\n      xmlns:xsi=\"http:\/\/www.w3.org\/2001\/XMLSchema-instance\"\n      throwConfigExceptions=\"true\">\n\n  &lt;extensions>\n    &lt;add assembly=\"Microsoft.ApplicationInsights.NLogTarget\" \/>\n  &lt;\/extensions>\n\n  &lt;targets>\n    &lt;target name=\"logfile\" xsi:type=\"File\" fileName=\"log.txt\" \/>\n    &lt;target name=\"logconsole\" xsi:type=\"Console\" \/>\n    &lt;target xsi:type=\"ApplicationInsightsTarget\" name=\"aiTarget\">\n      &lt;instrumentationKey>INSTRUMENTATIONKEY&lt;\/instrumentationKey>\n      &lt;contextproperty name=\"threadid\" layout=\"${threadid}\" \/>\n    &lt;\/target>\n  &lt;\/targets>\n\n  &lt;rules>\n    &lt;logger name=\"*\" minlevel=\"Info\" writeTo=\"logconsole\" \/>\n    &lt;logger name=\"*\" minlevel=\"Debug\" writeTo=\"logfile\" \/>\n    &lt;logger name=\"*\" minlevel=\"Trace\" writeTo=\"aiTarget\" \/>\n  &lt;\/rules>\n&lt;\/nlog><\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Auswertung<\/strong><\/h2>\n\n\n\n<p>Die Auswertung erfolgt anschlie\u00dfend \u00fcber das Application-Insights-Portal. S\u00e4mtliche Logs finden sich anschlie\u00dfend unter <em>Protokolle<\/em> in der jeweiligen Tabelle (siehe Abbildung 2).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"637\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE-1024x637.png\" alt=\"Auswertungen mit Application Insights\" class=\"wp-image-1554\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE-1024x637.png 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE-600x373.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE-768x478.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE-640x398.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE-1200x746.png 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_02_Auswertung_DE.png 1344w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 770px\" \/><\/a><figcaption><em>Abbildung 2: Auswertungen mit Application Insights<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Die in der Konsolenanwendung erzeugten Trace-Logs k\u00f6nnen der Tabelle <em>traces<\/em> entnommen werden. Abfragen werden mit der <em>Kusto Query Language (KQL)<\/em> formuliert. Die Traces aus dem obigen Beispiel k\u00f6nnen \u00fcber folgende Query abgefragt werden:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>traces\n| where message contains \"BlogTrace\"<\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Die geloggten Metriken lassen sich mit folgender Abfrage auch grafisch als Liniendiagramm darstellen (siehe Abbildung 3):<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>customMetrics\n| where timestamp >= ago(12h)\n| where name contains \"Blog\"\n| render timechart <\/code><\/pre>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"540\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart-1024x540.png\" alt=\"Grafische Darstellung der geloggten Metriken\" class=\"wp-image-1555\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart-1024x540.png 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart-600x316.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart-768x405.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart-1536x810.png 1536w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart-640x338.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart-1200x633.png 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_03_MetricsLineChart.png 1792w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 770px\" \/><\/a><figcaption><em>Abbildung 3: Grafische Darstellung der geloggten Metriken<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Dashboards &amp; Warnungsregeln<\/strong><\/h2>\n\n\n\n<p>Um Unregelm\u00e4\u00dfigkeiten fr\u00fchzeitig zu erkennen, k\u00f6nnen individuelle Dashboards und Warnungsregeln angelegt werden. Im Falle der oben verwendeten Metriken kann man das Diagramm an ein freigegebenes Dashboard anheften. Dies l\u00e4sst sich mit weiteren Abfragen beliebig fortsetzen, bis die gew\u00fcnschten Informationen zu einer \u00dcbersicht zusammengetragen sind.<\/p>\n\n\n\n<p>Das folgende Dashboard zeigt die Metrik der Konsolenanwendung. Gleichzeitig sind darin auch exemplarisch Informationen \u00fcber Serveranfragen, fehlerhafte Anfragen, Antwortzeiten sowie Leistung und Verf\u00fcgbarkeit enthalten (siehe Abbildung 4).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE.jpg\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"573\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE-1024x573.jpg\" alt=\"Informationen auf einen Blick auf dem Dashboard\" class=\"wp-image-1556\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE-1024x573.jpg 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE-600x336.jpg 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE-768x430.jpg 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE-640x358.jpg 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE-1200x671.jpg 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_04_Dashboard_DE.jpg 1489w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 770px\" \/><\/a><figcaption><em>Abbildung 4: Informationen auf einen Blick auf dem Dashboard<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Hat man das Dashboard mal nicht im Blick und es kommt zu Anomalien, kann man sich auch \u00fcber Warnungsregeln direkt per E-Mail oder SMS informieren lassen.<\/p>\n\n\n\n<p>Einzelne Warnungsregeln lassen sich \u00fcber den Men\u00fcpunkt <em>Warnungen<\/em> im Application-Insights-Portal anlegen und verwalten. Eine Warnungsregel besteht aus einer <em>Signallogik (Bedingung)<\/em> sowie einer <em>Aktionsgruppe<\/em>.<\/p>\n\n\n\n<p>Bei der <em>Bedingung<\/em> wird ein Signal, z. B. eine Metrik, ausgew\u00e4hlt und mit einem Schwellwert versehen: \u201etraces gr\u00f6\u00dfer als 80\u201c. Erh\u00e4lt man nun innerhalb eines definierten Zeitraumes mehr als 80 trace-Eintr\u00e4ge, wird die Warnung ausgel\u00f6st.<\/p>\n\n\n\n<p>Die <em>Aktionsgruppe<\/em> legt abschlie\u00dfend fest, was im Falle einer Warnung zu tun ist. Hier lassen sich einfache Hinweis-E-Mails oder SMS an festgelegte Personen verschicken oder komplexere Handlungen programmatisch \u00fcber Runbooks, Azure Functions, Logik-Apps oder Webhooks abbilden (siehe Abbildung 5).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"737\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE-1024x737.png\" alt=\"Verschiedene Aktionstypen in einer Aktionsgruppe\" class=\"wp-image-1557\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE-1024x737.png 1024w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE-600x432.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE-768x553.png 768w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE-640x461.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE-1200x864.png 1200w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_05_ActionGroup_DE.png 1250w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 770px\" \/><\/a><figcaption><em>Abbildung 5: Verschiedene Aktionstypen in einer Aktionsgruppe<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>REST API<\/strong><\/h2>\n\n\n\n<p>Besteht der Bedarf, die Daten auch au\u00dferhalb von Application Insights zu verarbeiten, k\u00f6nnen diese \u00fcber eine REST API abgefragt werden.<\/p>\n\n\n\n<p>Die URL f\u00fcr die API-Aufrufe setzt sich aus einem Basis-Teil und der gew\u00fcnschten Operation zusammen. Operationen sind <em>metrics<\/em>, <em>events<\/em> oder <em>query<\/em>. Dazu muss noch ein API-Key als \u201eX-API-Key\u201c HTTP-Header \u00fcbergeben werden:<\/p>\n\n\n\n<p>https:\/\/api.applicationinsights.io\/v1\/apps\/{app-id}\/{operation}\/[path]?[parameters]<\/p>\n\n\n\n<p>Die App-ID ist in den Settings unter API Access zu finden.<\/p>\n\n\n\n<figure class=\"wp-block-image size-medium\"><a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_06_APIKey.png\"><img loading=\"lazy\" decoding=\"async\" width=\"600\" height=\"437\" src=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_06_APIKey-600x437.png\" alt=\"Abbildung 6: URL der API-Aufrufe\" class=\"wp-image-1560\" srcset=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_06_APIKey-600x437.png 600w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_06_APIKey-640x467.png 640w, https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008_AI_06_APIKey.png 705w\" sizes=\"auto, (max-width: 639px) 98vw, (max-width: 1199px) 64vw, 600px\" \/><\/a><figcaption><em>Abbildung 6: URL der API-Aufrufe (Quelle: <a href=\"https:\/\/dev.applicationinsights.io\/quickstart\">https:\/\/dev.applicationinsights.io\/quickstart<\/a>)<\/em><\/figcaption><\/figure>\n\n\n\n<div style=\"height:30px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Um bei den oben beschriebenen Metriken zu bleiben, hier der API-Aufruf mit <em>query<\/em>-Operation f\u00fcr die Anzahl aller Eintr\u00e4ge der letzten 24 Stunden:<\/p>\n\n\n\n<p>https:\/\/api.applicationinsights.io\/v1\/apps\/{}app-id}\/query?query=customMetrics | where timestamp &gt;= ago(24h) | where name contains &#8222;Blog&#8220; | summarize count()<\/p>\n\n\n\n<p>Das Ergebnis kommt im JSON-Format zur\u00fcck:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n    \"tables\": &#91;\n        {\n            \"name\": \"PrimaryResult\",\n            \"columns\": &#91;\n                {\n                    \"name\": \"count_\",\n                    \"type\": \"long\"\n                }\n            ],\n            \"rows\": &#91;\n                &#91;\n                    13\n                ]\n            ]\n        }\n    ]\n}<\/code><\/pre>\n\n\n\n<div style=\"height:50px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Fazit<\/strong><\/h2>\n\n\n\n<p>Wie anhand dieses kleinen Beispiels zu sehen ist, l\u00e4sst sich ein zentralisiertes Logging mit Hilfe von Application Insights in wenigen Schritten aufbauen und verwalten. Neben der schnellen und einfachen Integration ist auch die automatisierte Infrastruktur von Vorteil. Man muss sich um kein Hosting k\u00fcmmern und sollte die Last einmal steigen, skaliert Application Insights automatisch.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden.<\/p>\n","protected":false},"author":95,"featured_media":1638,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"advgb_blocks_editor_width":"","advgb_blocks_columns_visual_guide":"","footnotes":""},"categories":[12],"tags":[210,398,480,481,482,483,58,181],"topics":[],"class_list":["post-1552","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-cloud","tag-devops","tag-microsoft","tag-application-insights","tag-anwendungsueberwachung","tag-loggen","tag-nlog","tag-azure","tag-rest-api"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.0 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Schau mir in die Augen - Anwendungs\u00fcberwachung mit Azure Application Insights - ZEISS Digital Innovation Blog<\/title>\n<meta name=\"description\" content=\"Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Schau mir in die Augen - Anwendungs\u00fcberwachung mit Azure Application Insights - ZEISS Digital Innovation Blog\" \/>\n<meta property=\"og:description\" content=\"Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/\" \/>\n<meta property=\"og:site_name\" content=\"Digital Innovation Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/\" \/>\n<meta property=\"article:published_time\" content=\"2020-08-19T07:39:28+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-08-19T07:39:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1388\" \/>\n\t<meta property=\"og:image:height\" content=\"781\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Christian Wi\u00dfmann\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:site\" content=\"@ZEISS_di\" \/>\n<meta name=\"twitter:label1\" content=\"Verfasst von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Christian Wi\u00dfmann\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"5\u00a0Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/\",\"name\":\"Schau mir in die Augen - Anwendungs\u00fcberwachung mit Azure Application Insights - ZEISS Digital Innovation Blog\",\"isPartOf\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png\",\"datePublished\":\"2020-08-19T07:39:28+00:00\",\"dateModified\":\"2020-08-19T07:39:29+00:00\",\"author\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e55e04db2e21ddc6fabcdb278bb8a84e\"},\"description\":\"Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden.\",\"breadcrumb\":{\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#breadcrumb\"},\"inLanguage\":\"de\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#primaryimage\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png\",\"width\":1388,\"height\":781},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Schau mir in die Augen &#8211; Anwendungs\u00fcberwachung mit Azure Application Insights\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/\",\"name\":\"Digital Innovation Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"de\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e55e04db2e21ddc6fabcdb278bb8a84e\",\"name\":\"Christian Wi\u00dfmann\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"de\",\"@id\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/wi\u00dfmann_christian-150x150.jpg\",\"contentUrl\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/wi\u00dfmann_christian-150x150.jpg\",\"caption\":\"Christian Wi\u00dfmann\"},\"description\":\"Christian Wi\u00dfmann studierte Informatik an der Hochschule Augsburg. Bei der ZEISS Digital Innovation arbeitet er in den Bereichen .NET und Cloud. Dar\u00fcber hinaus verbindet er gerne das ein oder andere Microcontroller-Board mit dem Internet der Dinge.\",\"url\":\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/christianwissmann\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Schau mir in die Augen - Anwendungs\u00fcberwachung mit Azure Application Insights - ZEISS Digital Innovation Blog","description":"Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/","og_locale":"de_DE","og_type":"article","og_title":"Schau mir in die Augen - Anwendungs\u00fcberwachung mit Azure Application Insights - ZEISS Digital Innovation Blog","og_description":"Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden.","og_url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/","og_site_name":"Digital Innovation Blog","article_publisher":"https:\/\/www.facebook.com\/ZEISSDigitalInnovation\/","article_published_time":"2020-08-19T07:39:28+00:00","article_modified_time":"2020-08-19T07:39:29+00:00","og_image":[{"width":1388,"height":781,"url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png","type":"image\/png"}],"author":"Christian Wi\u00dfmann","twitter_card":"summary_large_image","twitter_creator":"@ZEISS_di","twitter_site":"@ZEISS_di","twitter_misc":{"Verfasst von":"Christian Wi\u00dfmann","Gesch\u00e4tzte Lesezeit":"5\u00a0Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/","name":"Schau mir in die Augen - Anwendungs\u00fcberwachung mit Azure Application Insights - ZEISS Digital Innovation Blog","isPartOf":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#primaryimage"},"image":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#primaryimage"},"thumbnailUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png","datePublished":"2020-08-19T07:39:28+00:00","dateModified":"2020-08-19T07:39:29+00:00","author":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e55e04db2e21ddc6fabcdb278bb8a84e"},"description":"Mit Application Insights liefert Microsoft einen Dienst zur Anwendungs\u00fcberwachung f\u00fcr Entwicklung und DevOps. Damit kann so gut wie alles erfasst werden.","breadcrumb":{"@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#breadcrumb"},"inLanguage":"de","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/"]}]},{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#primaryimage","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi.png","width":1388,"height":781},{"@type":"BreadcrumbList","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/azure-application-insights\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/"},{"@type":"ListItem","position":2,"name":"Schau mir in die Augen &#8211; Anwendungs\u00fcberwachung mit Azure Application Insights"}]},{"@type":"WebSite","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#website","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/","name":"Digital Innovation Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"de"},{"@type":"Person","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/e55e04db2e21ddc6fabcdb278bb8a84e","name":"Christian Wi\u00dfmann","image":{"@type":"ImageObject","inLanguage":"de","@id":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/#\/schema\/person\/image\/","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/wi\u00dfmann_christian-150x150.jpg","contentUrl":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/wi\u00dfmann_christian-150x150.jpg","caption":"Christian Wi\u00dfmann"},"description":"Christian Wi\u00dfmann studierte Informatik an der Hochschule Augsburg. Bei der ZEISS Digital Innovation arbeitet er in den Bereichen .NET und Cloud. Dar\u00fcber hinaus verbindet er gerne das ein oder andere Microcontroller-Board mit dem Internet der Dinge.","url":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/christianwissmann\/"}]}},"author_meta":{"display_name":"Christian Wi\u00dfmann","author_link":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/author\/christianwissmann\/"},"featured_img":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-content\/uploads\/sites\/2\/2020\/08\/202008__AI_01_Overview_DE_fi-600x338.png","coauthors":[],"tax_additional":{"categories":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">Cloud<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">Cloud<\/span>"]},"tags":{"linked":["<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">DevOps<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">Microsoft<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">Application Insights<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">Anwendungs\u00fcberwachung<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">Loggen<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">NLog<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">Azure<\/a>","<a href=\"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/category\/cloud\/\" class=\"advgb-post-tax-term\">REST-API<\/a>"],"unlinked":["<span class=\"advgb-post-tax-term\">DevOps<\/span>","<span class=\"advgb-post-tax-term\">Microsoft<\/span>","<span class=\"advgb-post-tax-term\">Application Insights<\/span>","<span class=\"advgb-post-tax-term\">Anwendungs\u00fcberwachung<\/span>","<span class=\"advgb-post-tax-term\">Loggen<\/span>","<span class=\"advgb-post-tax-term\">NLog<\/span>","<span class=\"advgb-post-tax-term\">Azure<\/span>","<span class=\"advgb-post-tax-term\">REST-API<\/span>"]}},"comment_count":"0","relative_dates":{"created":"Posted 6\u00a0Jahren ago","modified":"Updated 6\u00a0Jahren ago"},"absolute_dates":{"created":"Posted on August 19, 2020","modified":"Updated on August 19, 2020"},"absolute_dates_time":{"created":"Posted on August 19, 2020 7:39 a.m.","modified":"Updated on August 19, 2020 7:39 a.m."},"featured_img_caption":"","series_order":"","_links":{"self":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1552","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/users\/95"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/comments?post=1552"}],"version-history":[{"count":9,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1552\/revisions"}],"predecessor-version":[{"id":1640,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/posts\/1552\/revisions\/1640"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media\/1638"}],"wp:attachment":[{"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/media?parent=1552"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/categories?post=1552"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/tags?post=1552"},{"taxonomy":"topics","embeddable":true,"href":"https:\/\/blogs.zeiss.com\/digital-innovation\/de\/wp-json\/wp\/v2\/topics?post=1552"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}