ASP.NET Monitoring Paul Mizel [email protected] Inhalt Motivation Theoretische Ansätze ASP.NET Möglichkeiten Benutzeranzahl Demo Do.NET Pla Framework Do.NET Pla - Demoseite Do.NET Pla - How it works 14.02.2017 © Copyright Do-DotNet - 2008 2 Motivation Was ist Monitoring? Überwachen Reagieren Was bringt Monitoring? Statusübersicht Statistiken Systemkontrolle SLA - Aussagen Ziel von Monitoring Höhere Verfügbarkeit Stabileres System 14.02.2017 © Copyright Do-DotNet - 2008 3 Theoretische Ansätze Monitoring Fachlogik Jede Seite MasterPage Basis Seite HttpHandler HttpModule State Speichern und Abfragen FileSystem - Binär / XML / Text InProcess - Session / Cache / Memory OutProcess - WebService / MQs / Pipes SQL PerformanceCounter 14.02.2017 © Copyright Do-DotNet - 2008 4 © Copyright Do-DotNet - 2008 Do.NET PLA Framework © Copyright Do-DotNet - 2008 Do.NET PLA Framework PLA - Performance Logs and Alerts HttpModule –> PlaModule Zwei Default Provider Gruppen Empty PerformanceCounter ProviderModel & Interface Injections & Eventbasiert Flexibel Erweiterbar Flexibel Konfigurierbar Flexibel Anbindbar Einfach bedienbar Was PLA nicht ist Errorhandling Tracing oder Debuging 14.02.2017 © Copyright Do-DotNet - 2008 7 Module des Do.NET Pla Frameworks ASP.NET Web Application PlaModule:HttpModule laden Do.NET Pla Framework IPerformanceProvider IPerformanceMetrics IPerformanceState IPerformanceMonitor IPerformance Metrics IPerformance State IPerformance Store IPerformanceStore External PerformanceCounter Data-Warehouse – MSCOM 14.02.2017 © Copyright Do-DotNet - 2008 Statusabfrage Statusantwort Config – Cache – Service – DB 8 © Copyright Do-DotNet - 2008 Inhalt des Do.NET Pla Frameworks Monitoring Daten Anzahl Aufrufe Anzahl Fehlerhafter Aufrufe Anzahl Aufrufe pro sec. Anzahl Fehlerhafter Aufrufe pro sec. % Durchschnittliche Aufrufzeit Aussagen Welche Seite wird wie am meisten aufgerufen Welche Seite verursacht die meisten Fehler Stosszeiten verhalten der Seiten, im Aufruf und Fehlerfall Aussagen über Verarbeitungsverhalten der Seite 14.02.2017 © Copyright Do-DotNet - 2008 10 How to use #1 HttpModule anmelden (web.config) <httpModules> <add name="PlaModule" type="Do.NET.Pla.PlaModule, Do.NET.Pla"/> </httpModules> Do.NET Pla konfigurieren (web.config) <section name="performanceConfiguration" type="Do.NET.Pla.Configuration.PerformanceConfiguration"/> <performanceConfiguration enabled="true" providerGroup= "PerformanceCounter" applicationName = "Portal.Pla"> <performanceItems> <!--Add Namespaces--> <add name="*" enabled="true" isCriticalPerformance="false" description="Wartungsarbeiten" criticalResponder="Do.NET.Pla.PerformanceCriticalResponderDefault"/> </performanceItems> </performanceConfiguration> Do.NET Pla Provider erweitern providerGroup= "Custom" performanceProvider="Do.NET.Pla.PerformanceCounter.Provider, Do.NET.Pla, Version=1.0.0.0, PublicKeyToken=null" performanceMetrics="Do.NET.Pla.PerformanceCounter.Metrics, Do.NET.Pla, Version=1.0.0.0, PublicKeyToken=null" performanceStore="Do.NET.Pla.PerformanceCounter.Store, Do.NET.Pla, Version=1.0.0.0, PublicKeyToken=null" performanceState="PlaWeb.Extend.ServiceState, PlaWeb.Extend, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"> 14.02.2017 © Copyright Do-DotNet - 2008 11 How to use #2 Aus der Page auf Pla zugreifen Implementieren IPerformanceContainer In der Page reagieren Implementieren IPerformanceContainer Fachlogik Monitoren try { using (IPerformanceMonitor mon = Performance.CreateMonitor(PerformanceContextTypes.Show)) { //mach was throw new Exception(); //Fehler simulation mon.CountOperation (true);//erfolgreich ausgeführt } } catch (Exception) { //Fehlerbehandlung } 14.02.2017 © Copyright Do-DotNet - 2008 12 How it work HttpModule Bindung an Init Initialisierung des Frameworks (IPerformanceProvider) Bindung an die Page (IPerformanceContainer, IPerformanceCriticalResponder) Start der Zeitmessung Bindung an Error Fehler Markierung in Metrics Bindung an Unload Zeitmessung Aufräumarbeiten Was macht das Do.NET PLA Framework? Instanz-Namen festlegen Erfolgreich oder nicht erfolgreich ausgeführt merken Zeitmessung erstellen Abfrage des Status vom einer Quelle Reaktion auf den kritischen Status melden 14.02.2017 © Copyright Do-DotNet - 2008 13 Zusammenfassung Monitoring ist nicht einfach nur gucken Über HttpModule elegante Lösungen möglich Transparentes Monitoring von ASP.NET WebSeiten Schwache Bindung zu ASP.NET Webseiten Über PerformanceCounter Liveüberwachung möglich Autmatische Zwischenberechnung In Kombination mit Enterprise Server Produkten vollständig Automatisierbar statistische Auswertungen SLA Kontrolle 14.02.2017 © Copyright Do-DotNet - 2008 14 PLA – Performance Logs and Alerts http://msdn2.microsoft.com/en-us/library/aa372635(VS.85).aspx Data-Warehause http://de.wikipedia.org/wiki/Data-Warehouse System Center Operations Manager 2007 http://www.microsoft.com/systemcenter/opsmgr/ Weitere Vortragsfolien der .NET User Group Dortmund findet ihr auf: www.do-dotnet.de © Copyright Do-DotNet - 2008 Vielen Dank! Paul Mizel [email protected] © Copyright Do-DotNet - 2008 © Copyright Do-DotNet - 2008