Instrumentez !

19
Instrumentez !

description

Instrumentez !. Introduction. Instrumentation, by Wikipedia En sciences , l’ instrumentation est une technique de mise en œuvre d'appareils de mesures, d' actionneurs , de capteurs , de contrôleurs en vue de créer un système d'acquisition de données ou de commande . - PowerPoint PPT Presentation

Transcript of Instrumentez !

Page 1: Instrumentez !

Instrumentez !

Page 2: Instrumentez !

IntroductionInstrumentation, by Wikipedia

En sciences, l’instrumentation est une technique de mise en œuvre d'appareils de mesures, d'actionneurs, de capteurs, de contrôleurs en vue de créer un système d'acquisition de données ou de commande. En informatique ? « the ability to monitor a product's performance and to diagnose errors. »

Et pour nous ?

Page 3: Instrumentez !

Quelques buts de conception

Pour les développeursUne technique de débogage parmi d’autresUne aide au profiling

Pour les administrateursSuivi d’activité de la plateformeRecensement des composants installésRétroaction en cas de dysfonctionnement

Pour les utilisateursSuivi de l’activité métier

Page 4: Instrumentez !

MANAGEMENT

PRODUCTION

HELPDESK

ARCHITECTUREDEVELOPPEMENT

MAINTENANCECapacity planning

Diagnostic

Supervision

Reporting

Sécurité

Optimisation & tuningMaintenance évolutions

& debug

Support N2

Support N1

Business process management

MonitoringApplicatif

Page 5: Instrumentez !

Quelques problèmesQue faut-il mesurer ?Où faut-il envoyer l’information collectée ?Quels sont les pièges classiques à éviter ?Comment instrumenter un système réparti ?Quels sont les frameworks disponibles ?

Page 6: Instrumentez !

Que faut-il mesurer ?Les grandes familles de mesures

Par vous, pour vousPar vous, pour l’administrateurPar vous ou l’administrateur, pour l’utilisateur

Quelques grands principesLe principe de HeisenbergPas de nouvelles, bonnes nouvellesL’utilisateur n’est pas là pour déboguer votre codeVous n’êtes pas seul au monde – votre appli non plus

Page 7: Instrumentez !

Déboguer / Auditer / Appréhender

DéboguerComprendre les dysfonctionnements de l’application

Tâche du développeurVue post-mortem

Auditer Comprendre le fonctionnement de l’application dans son déroulement normal

Tâche de l’administrateurVue instantanée et vue historisée

Monitoring métierComprendre le reste du monde à travers des informations applicatives

Tâche de l’utilisateurVue répartie sur N systèmes, souvent appelé BAM

Page 8: Instrumentez !

Quelques pièges – « Debug »

En .Net, être en mode debug peut signifier

Demander au compilateur de fonctionner dans un mode spécifique, et d’extraire plus d’informations que d’habitude lors de la compilation

OUActiver un symbole lors de la compilation, sans forcément effectuer les opérations ci-dessus (par exemple pour effectuer de la compilation conditionnelle)

Page 9: Instrumentez !

Démo – premiers pasGénération ou non de la PdbUtilisation des symbolesCompilation conditionnelleLes symboles DEBUG et TRACELes méthodes associées

Page 10: Instrumentez !

OK, on peut le faire à la main

.. Mais il va nous rester un tas de choses à régler

Où envoyer les infos ?Comment rendre paramétrable ?Est-ce que mon implémentation est compatible avec celle du voisin ?Est-ce que je vais survivre aux évolutions du frameworl .Net

On se tourne la plupart du temps vers des frameworks pour les logs et l’instrumentation

Page 11: Instrumentez !

Les frameworks de log / instrumentation

Historiquement deux grands Frameworks

Log4NetPortage de Log4jRéintégré dans la fondation Apache depuis sa dernière version (1.2.10)

EntLibSuccesseur de EIF (Enterprise Instrumentation Framework)

Page 12: Instrumentez !

DemosEntLib – pas à pas d’instrumentationLog4Net – mise en œuvre

Page 13: Instrumentez !

Quel framework employer ?

Quels sont vos critères ?Richesse des appendersIntégration à la plateformePerformanceSimplicité d’installationPérimètre couvert par le frameworkQuelles version de .Net couvrez-vousDevez-vous instrumenter une application ou un système réparti ?

Page 14: Instrumentez !

Caching

Security

Data Access Logging

ExceptionHandling

Enterprise Library

Plug-inConfig

Helpers & Design

Instrumen-tation

ObjectBuilder

Cryptography

Core

Block Dependency Optional ProviderDependency

Page 15: Instrumentez !

InstrumentationEvent-Driven Architecture

InstrumentationProviderClass(es)

InstrumentationListenerClass(es)

Configuration de l’instrumentation

WMI

Compteurs de performances

EventLog

event

ObjectBuilder

injecte

Application or Blockappel

Page 16: Instrumentez !

Caching

Security

Data Access Logging

ExceptionHandling

Logging Application Block

Plug-inConfig

Helpers & Design

Instrumen-tation

ObjectBuilder

Cryptography

Core

Block Dependency Optional ProviderDependency

Page 17: Instrumentez !

EntLibUn lointain descendant des Application Blocks

Enterprise Instrumentation Framework – 2003EntLib pour .Net 1.1 – juin 2005EntLib pour .Net 2 – Janvier 2006EntLib 3 (.Net 2 et 3) – Avril 2007EntLib 3.1 – Mai 2007

Grandes forcesPérimètreWMI

Page 18: Instrumentez !

Log4NetUn lointain cousin de Log4J

Initialement portage directLog4Net : évolutions pour .Net natifApache foundation Log4Net

Grandes forcesSimplicité de mise en œuvreMulti plateformes

Page 19: Instrumentez !

WebographieInstrumentation et WCFhttp://www.microsoft.com/france/vision/WebcastMsdn.aspx?EID=87bcba47-6824-4e7c-aa29-d786536a100fInstrumentation et proxies dynamiqueshttp://www.dotnetguru.org/articles/dossiers/instrumentation/proxiesdynamiques.htmInstrumentation en .Net : workshopshttp://www.grimes.demon.co.uk/workshops/instrumentationWS.htmLa gestion des assertions en code managéhttp://msdn2.microsoft.com/en-us/library/ttcc4x86.aspxArticles MSDN sur l’instrumentationhttp://msdn2.microsoft.com/en-us/library/zs6s4h68.aspxIntroduction en français à EntLib (2005)http://www.dotnetguru.org/articles/dossiers/entlib1/FrameworkEnterpriseLibrary_1.htmHome page de Log4Nethttp://logging.apache.org/log4net/Home page de EntLibhttp://www.codeplex.com/entlib