<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Logging &amp; Telemetrie on dsyr.DataBridge</title><link>https://databridge.docs.dsyr.de/docs/betrieb/logging/</link><description>Recent content in Logging &amp; Telemetrie on dsyr.DataBridge</description><generator>Hugo</generator><language>de</language><atom:link href="https://databridge.docs.dsyr.de/docs/betrieb/logging/index.xml" rel="self" type="application/rss+xml"/><item><title>Metriken</title><link>https://databridge.docs.dsyr.de/docs/betrieb/logging/metriken/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/betrieb/logging/metriken/</guid><description>&lt;p&gt;Neben Traces und Requests sendet die dsyr.DataBridge eigene &lt;strong&gt;Custom Metrics&lt;/strong&gt; an&#10;Application Insights. Metriken sind numerische Zeitreihen mit Dimensionen — sie eignen&#10;sich für Dashboards, Trend-Analysen und Metric Alerts, ohne dass dafür Log-Einträge&#10;durchsucht werden müssen.&lt;/p&gt;&#10;&lt;p&gt;Die Metriken werden über &lt;code&gt;TelemetryClient.GetMetric()&lt;/code&gt; &lt;strong&gt;vorab aggregiert&lt;/strong&gt;: Das SDK&#10;sammelt die Werte lokal in 1-Minuten-Intervallen und sendet pro Intervall und&#10;Dimensionskombination einen aggregierten Datenpunkt (Summe, Anzahl, Min, Max).&lt;/p&gt;&#10;&lt;div class="alert alert-info" role="alert"&gt;&lt;div class="h4 alert-heading" role="heading"&gt;Metriken unterliegen keinem Sampling&lt;/div&gt;&#10;&lt;p&gt;Weder das gepufferte Logging noch das Dependency-Sampling noch das&#10;Application-Insights-Sampling wirken auf Custom Metrics. Für belastbare &lt;strong&gt;Mengenangaben&lt;/strong&gt;&#10;sind sie deshalb die einzige verlässliche Quelle.&lt;/p&gt;</description></item><item><title>Performance &amp; Laufzeiten</title><link>https://databridge.docs.dsyr.de/docs/betrieb/logging/performance/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://databridge.docs.dsyr.de/docs/betrieb/logging/performance/</guid><description>&lt;p&gt;Die folgenden Abfragen können direkt im &lt;strong&gt;Logs&lt;/strong&gt;-Bereich von Application Insights&#10;(Kusto Query Language) ausgeführt werden.&lt;/p&gt;&#10;&lt;hr&gt;&#10;&lt;h2 id="laufzeiten-und-fehler"&gt;Laufzeiten und Fehler&lt;/h2&gt;&#10;&lt;h3 id="laufzeiten-aller-funktionen-letzte-24-stunden"&gt;Laufzeiten aller Funktionen (letzte 24 Stunden)&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;requests&#10;| where timestamp &amp;gt; ago(24h)&#10;| summarize&#10; Aufrufe = count(),&#10; DurchschnittMs = avg(duration),&#10; P95Ms = percentile(duration, 95),&#10; Fehler = countif(success == false)&#10; by name&#10;| order by DurchschnittMs desc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="verlauf-einer-einzelnen-funktion-letzte-7-tage"&gt;Verlauf einer einzelnen Funktion (letzte 7 Tage)&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;requests&#10;| where timestamp &amp;gt; ago(7d)&#10;| where name == &amp;#34;GetChanges&amp;#34;&#10;| summarize&#10; P50Ms = percentile(duration, 50),&#10; P95Ms = percentile(duration, 95),&#10; Fehler = countif(success == false),&#10; Läufe = count()&#10; by bin(timestamp, 1h)&#10;| order by timestamp asc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="durchschnittliche-laufzeit-der-letzten-30-tage-täglich"&gt;Durchschnittliche Laufzeit der letzten 30 Tage (täglich)&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;requests&#10;| where timestamp &amp;gt; ago(30d)&#10;| summarize&#10; DurchschnittMs = avg(duration),&#10; P95Ms = percentile(duration, 95)&#10; by name, bin(timestamp, 1d)&#10;| order by name asc, timestamp asc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="fehlerquote-je-funktion-letzte-7-tage"&gt;Fehlerquote je Funktion (letzte 7 Tage)&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;requests&#10;| where timestamp &amp;gt; ago(7d)&#10;| summarize&#10; Gesamt = count(),&#10; Fehler = countif(success == false),&#10; FehlerPct = round(100.0 * countif(success == false) / count(), 1)&#10; by name&#10;| order by FehlerPct desc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="warnungen-und-fehler-im-zeitverlauf"&gt;Warnungen und Fehler im Zeitverlauf&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;traces&#10;| where timestamp &amp;gt; ago(7d)&#10;| where severityLevel &amp;gt;= 2 // 2 = Warning, 3 = Error&#10;| summarize Anzahl = count() by severityLevel, bin(timestamp, 1h), operation_Name&#10;| order by timestamp asc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="top-10-häufigste-fehlermeldungen"&gt;Top-10 häufigste Fehlermeldungen&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;exceptions&#10;| where timestamp &amp;gt; ago(7d)&#10;| summarize Anzahl = count() by outerMessage&#10;| top 10 by Anzahl desc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 id="einzelne-ausführung-nachvollziehen"&gt;Einzelne Ausführung nachvollziehen&lt;/h2&gt;&#10;&lt;h3 id="alle-einträge-einer-ausführung-per-operation_id"&gt;Alle Einträge einer Ausführung (per operation_Id)&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;union requests, traces, exceptions&#10;| where operation_Id == &amp;#34;&amp;lt;operation_Id hier einfügen&amp;gt;&amp;#34;&#10;| project timestamp, itemType, severityLevel, message, outerMessage, operation_Name&#10;| order by timestamp asc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="fehlerläufe-mit-allen-zugehörigen-traces-letzte-24-stunden"&gt;Fehlerläufe mit allen zugehörigen Traces (letzte 24 Stunden)&lt;/h3&gt;&#10;&lt;pre tabindex="0"&gt;&lt;code class="language-kusto" data-lang="kusto"&gt;let fehlgeschlagene =&#10; requests&#10; | where timestamp &amp;gt; ago(24h)&#10; | where success == false&#10; | project operation_Id, FunktionsName = name, Startzeit = timestamp;&#10;traces&#10;| where timestamp &amp;gt; ago(24h)&#10;| join kind=inner fehlgeschlagene on operation_Id&#10;| project Startzeit, FunktionsName, severityLevel, message&#10;| order by Startzeit desc, severityLevel desc&#10;&lt;/code&gt;&lt;/pre&gt;&lt;hr&gt;&#10;&lt;h2 id="abhängigkeiten"&gt;Abhängigkeiten&lt;/h2&gt;&#10;&lt;h3 id="langsamste-abhängigkeiten-letzte-24-stunden"&gt;Langsamste Abhängigkeiten (letzte 24 Stunden)&lt;/h3&gt;&#10;&lt;p&gt;Zeigt die ausgehenden Aufrufe an Quell- und Zielsysteme mit den höchsten Laufzeiten:&lt;/p&gt;</description></item></channel></rss>