Pobierz prezentację
Pobieranie prezentacji. Proszę czekać
OpublikowałIrenka Litwinowicz Został zmieniony 11 lat temu
1
Higiena i zdrowie aplikacji .Net (Operating and Instrumenting)
Cezary Nolewajka Getin Sp. z o.o.
2
Wstęp O czym jest ta prezentacja?
Monitorowanie i raportowanie działania aplikacji Różne mechanizmy monitorowania Enterprise Management Narzędzia do monitorowania: MOM
3
Wstęp Dla kogo jest ta prezentacja?
Projektanci oraz programiści (projekt i implementacja odpowiednich mechanizmów) Administratorzy (implementacja infrastruktury i konfiguracja Enterprise Management)
4
Monitorowanie - dlaczego?
weryfikacja poprawności działania oraz czy system spełnia wymogi SLA przestoje w działaniu systemu powodują wymierne straty dla organizacji często do 80% czasu poświęconego rozwiązaniu problemu jest poświęcona na zidentyfikowanie problemu monitorowanie działania jest kluczowe dla diagnostyki problemów
5
Monitorowanie - dlaczego? (c.d.)
wiele z problemów objawia się dopiero w środowisku produkcyjnym informacja o awarii systemu będzie znana zanim spostrzegą ją użytkownicy automatyzacja działania i procesów zarządzania systemami możliwość przewidywania i proaktywnego reagowania
6
Monitorowanie - co? Platorma systemowa Monitorowanie aplikacji
Monitorowanie usług (serwisów) jako całości (SLA!) Sieć Monitorowanie sprzętu komputerowego (serwerów)
7
Monitorowanie - ‘zdrowa’ aplikacja?
zwraca poprawne wyniki w odpowiednim czasie wydajna (np. brak zbędnych pętli, oszczędne wykorzystywanie zasobów) optymalne wykorzystanie środowiska aplikacji minimalne wykorzystanie infrastruktury (przy ciągłym zapewnieniu funkcjonalności i wymaganej wydajności)
8
Monitorowanie - ‘zdrowa’ aplikacja?
zwalnia wykorzystywane zasoby jak tylko skończy je wykorzystywać stosuje wydajne wykorzystywanie zasobów pamięci (np. wykorzystywanie z pliku „pagefile” tylko, gdy jest to konieczne) działanie aplikacji nie wpływa negatywnie na inne aplikacje
9
Monitorowanie - ‘niezdrowa’ aplikacja?
nie zwraca wyników zwraca wynik działania zbyt wolno, lub wydajność nie jest stabilna zwraca nieprawidłowe wyniki nie zwalnia wykorzystywanych zasobów w niewydajny sposób wykorzystuje zasoby systemu operacyjnego (np. zarządzanie pamięcią) negatywnie wpływa na działanie innych aplikacji
10
Monitorowanie - jak? Aspekty wyboru źródła danych
Zbieranie informacji z systemów poza aplikacją (np. system, Performance Counters) Przygotowanie aplikacji tak, aby dostarczała danych o działaniu aplikacji
11
Monitorowanie - jak? (c.d.)
Narzędzia od najprostrzych metod aż po infrastruktury VS .Net: System.Diagnostics: Trace/Debug, Performance Counter, EventLog VS.Net, Windows 2000/2003 Server: WMI (Windows Management and Instrumentation) EIF (Enterprise Instrumentation Framework) Microsoft Operations Manager 2000
12
Monitorowanie - po kolei...
Wybór elementów i strategii monitorowania Budowanie danych bazowych (baseline) Wykorzystanie symulacji i sztucznych bodźców (testy) Przygotowanie aplikacji (instrumenting)
13
Najprostrze narzędzia
System.Diagnostics Trace/Debug EventLog Performance Counters
14
Struktura przykładów int nSleep = 100; int nLoop = 1000;
for (int i = 0; i <= nLoop; i++) { nSleep = nSleep - rnd.Next (10, 50); if (nSleep < 10) nSleep = 10; // do something with: // SleepValue // Loop }
15
System.Diagnostics - Trace/Debug
WriteLine, Write, Indent, Unindent Assert TraceSwitch BooleanSwitch TraceListener
16
System.Diagnostics - Trace/Debug
<assert assertuienabled="false" ...></assert> <trace autoflush="true" indentsize="2"> <listeners> <remove name="Default"></remove> <add name="MyListener" type="...” ... /> </listeners> </trace> <switches> <add name="SwitchName" value="2" /> </switches> </system.diagnostics>
17
01_DebugTrace
18
System.Diagnostics - Performance Counters
CategoryName, CounterName NextValue (odczyt) Increment, IncrementBy, RawValue (zapis) CounterType RawData, Average, Difference, Instantaneous, Percentage, Rate
19
02_PerformanceCounters
20
System.Diagnostics - EventLog
EventLog.WriteEvent Własne dzienniki zdarzeń (EventLog) Własne źródła zdarzeń (EventSource) HKLM/SYSTEM/CurrentControlSet/ Services/EventLog - uprawnienia!
21
03_EventLog
22
WMI - Windows Management and Instrumentation
DMTF (Desktop Management Task Force) => CIM (Common Information Model) TDC (Technology Development Committee), 1996 CIM TDC: Compaq, CISCO, HP, IBM/Tivoli, Intel, MS, Novell, SunSoft WBEM (Web Based Enterprise Management) CIM – standard przemysłowy opracowany do reprezentowania systemów, aplikacji, sieci, urządzeń, ... WMI – implementacja WBEM i CIM zrealizowana przez MS
23
WMI - co można? Zarządzanie obiektami Instrumentacja aplikacji
Język zapytań WQL (WMI Query Language) Wyszukiwanie definicji klas i instancji obiektów Subskrypcja zdarzeń Wywoływanie metod Dostęp do atrybutów Strongly-typed WMI Instrumentacja aplikacji Zarejestrowanie klasy w schemacie WMI Emitowanie zdarzeń Udostępnianie metod i danych
24
WMI - co można? (c.d.) Współpraca z wieloma systemami monitorującymi
MS Operations Manager HP OpenView IBM Tivoli NetIQ inne...
25
WMI - Platform SDK
26
WMI - instrumentacja aplikacji
[assembly:Instrumented("Root/WMITest")] using System.Management.Instrumentation; Zdarzenia [InstrumentationClass(InstrumentationType.Event)] Klasa bazowa BaseEvent Instrumentation.Fire () lub BaseEvent::Fire ()
27
WMI - instrumentacja aplikacji
Obiekty [InstrumentationClass(InstrumentationType.Instance)] Klasa bazowa Instance Klasy i atrybuty publiczne mapowane na typy CLI i WMI InstallUtil !!!
28
04_WMIExposeEvent
29
06_WMICallMethod
30
06_WMICallMethod (c.d.)
31
WMI - ograniczenia w .Net
Ograniczenia WMI w kodzie “managed” Nie da się udostępniać atrybutów do zapisu Nie da się udostępniać metod Nie jest wspierane tworzenie kwalifikatorów Właściwości obiektów nie mogą być definiowane jako atrybuty klucze Ograniczenia te nie dotyczą implementacji WMI w C++ „unmanaged”
32
05_WMIObjectClass
33
EIF - Enterprise Instrumentation Framework
Wyklucza wady innych API konieczność uczenia się różnych API konieczność zmian w kodzie w celu dostrojenia monitorowanych danych konieczność zmian w kodzie w celu dodania kolejnego mechanizmu monitorowania EIF to rekomendowana technika instrumentacji ze względu na łatwość konfiguracji i zarządzania w środowisku produkcyjnym
34
EIF - architektura Event Schema bazuje na System.Management, a więc i WMI dla implementacji Event Schema Event Sources Event Sinks Request Tracing (execution flow !!!) Instrumentation API XML Configuration File nie pozwala na udostępnianie instancji obiektów !
35
EIF
36
EIF - konfiguracja TraceSessions.config
EnterpriseInstrumentation.config <filters> <filter name="defaultSoftwareElementFilter" > <eventCategoryRef name="All Events"> <eventSinkRef name="wmiSink" /> <eventSinkRef name="traceSink" /> <eventSinkRef name="logSink" /> </eventCategoryRef> </filter> </filters>
37
Microsoft Operations Manager
Strategia zarządzania systemami proponowana przez Microsoft Mechanizmy Windows 2000/2003 Server Operations Manager Systems Management Server (zarządzanie zmianami i konfiguracją) Microsoft Operations Framework (MOF) Usługi .Net Mangement Services
38
Microsoft Operations Manager
Zarządzanie operacyjne Zarządzanie rozproszone (agenci) Zarządzanie centralne (konsola administracyjna) Reguły Ostrzeżenia Monitorowanie wydajności Pakiety Management Packs (baza wiedzy technicznej) Graficzne narzędzia raportowania Skalowalność do rozmiarów korporacyjnych Agenci Zautomatyzowanie wdrażania agentów i reguł
39
Podsumowanie Czy warto monitorować? Właściwy dobór zakresu i strategii
Właściwy dobór sposobów notyfikacji Właściwy dobór narzędzi Nie strzelać do wróbla z armaty! WMI EIF Łączenie technik, np.: Trace + CustomTrace Listener + .config + WMI = EIF !!! (no prawie)
40
Bibliografia Operating .Net-Based Applications ( net/maintain/opnetapp/default.asp) Enterprise Instrumentation Framework Documentation WMI Platform SDK MSDN for Visual Studio .Net 2003 Operations Manager 2000 Documentation CHIP SPECIAL: MS Visual Studio .Net
Podobne prezentacje
© 2024 SlidePlayer.pl Inc.
All rights reserved.