Stern inaktivStern inaktivStern inaktivStern inaktivStern inaktiv
 

Mitunter ist es wichtig zu wissen was in der Applikation passiert. Log-Dateien sind wichtig aber natürlich auch unübersichtlich.


Für eine Webanwendung die in der Cloud oder on-premise gehostet wird kann es durchaus wichtig sein, frühzeitig von
der IT eingreifen zu müssen um grössere Ausfälle zu vermeiden.


Der Anspruch sollte hier sein, keine Zeit zu verschwenden Log Dateien ständig zu überwachen.
Wenn die Applikation in der Cloud gehostet wird macht es durchaus Sinn sich mit Application Insights von Microsoft beispielsweise zu beschäftigen.
Bei einer lokal gehosteten Applikation die im IIS läuft kann das Framework Metrics helfen. Dies ermöglicht relativ einfach Telemetrie-Daten nach aussen zu geben.
Zunächst muss in das jeweilige Projekt das nuget Package Metrics.net installiert werden, danach kann die Initialisierung stattfinden

     Metric.Config
           .WithHttpEndpoint("http://localhost:1235/")
           .WithAllCounters();

Damit wird Metrics auf dem jeweiligen Port gestartet und automatisch auch eine Oberfläche zur Verfügung gestellt die die Counter, Timer etc. darstellt.
Über verschiedene Methode können z.B. Timer zur Verfügung gestellt werden die die Zeit eines Aufrufs messen.

public Timer Zugriffe = Metric.Timer("Zugriffe", Unit.Requests);
using (Zugriffe.NewContext()) 
           {
               return [Methodenaufruf](x);
           }

Innerhalb des using Blocks wird automatisch die Zeit gemessen und die Oberfläche stellt die Messungen entsprechen dar.

metrics01
Das gleiche Prinzip gilt für Counter, die eine Anzahl von Request zählen kann oder auch mit der Decrement Methode
aktuelle Zugriffe messen kann, in dem beim Aufruf Increment und beim Beenden einer Methode Decrement aufgerufen wird.

metrics02

Interessant wird das Framework, in dem z.B. Exceptions gemessen werden können, dabei kann das APM schnell erkennen,
dass sich in kurzer Zeit Exceptions anhäufen und dann im Anschluss ggf. Analysen in den Log Dateien durchführen.

metrics03

 

Der Aufwand ist sehr gering entsprechende Daten zu messen. Selbstverständlich können die Messdaten auch mit speziellen
Adaptern an andere Server weitergeleitet werden die beispielsweise die Zentrale Applikationssteuerung übernehmen udn die
Daten dann zentralisiert anzeigen.