2010-01-04 6 views
1

Je souhaite créer un type de classe de métriques ASP.NET (C# 2.0) pour aider à surveiller les performances d'une application Web de production. Je suis un peu familier avec la surveillance de la santé 2.0 et ce n'est pas ce que je cherche (je ne pense pas de toute façon). Je préférerais avoir un tableau de bord qui me donne un instantané par opposition à un journal ou une liste d'événements. J'apprécierais tous les commentaires de la communauté. Donc, même si vous n'avez pas de réponse spécifique, n'hésitez pas à ajouter votre contribution à n'importe quelle partie et ne vous sentez pas obligé de donner votre avis sur le tout. Merci d'avance!C# Tableau de bord des métriques ASP.NET 2.0

Voici quelques-unes des choses que j'aimerais surveiller. Les valeurs doivent être spécifiques à l'application et non IIS.

  1. Nombre de sessions ouvertes
  2. Hits par heure
  3. session la plus ancienne
  4. quantité de mémoire allouée et l'utilisation
  5. ** temps d'exécution moyen passé dans chaque (ou donné) fonction.
  6. exception dernière (traitées ou non traitées)
  7. utilisation de la bande passante (est-ce possible au niveau de l'application?)

** Pour le numéro 5, je pensais à l'aide d'un certain type de classe chronomètre . Chaque fonction que je veux surveiller appelle start/stop au début et termine son exécution. Cependant cela me semble horriblement moche. Y at-il un moyen de le faire sans un cours de chronomètre? Quelque chose dans la classe Reflections peut-il aider à cela?

Est-ce que quelque chose comme ça existe déjà? J'ai fait beaucoup de googling mais je ne trouve pas exactement ce que je cherche.

Pouvez-vous recommander d'autres mesures que je devrais regarder?

+0

Merci @Greg pour le correctif typographique. –

Répondre

1

Il semble qu'une grande partie de ce que vous recherchez puisse être capturée avec les compteurs de performance Windows. Vous pouvez les lire depuis votre page de tableau de bord et les afficher en HTML.

Vous pouvez également créer des compteurs personnalisés pour toutes les données spécifiques à l'application. L'un de mes préférés est de mesurer la durée des appels de processus, et de compter le nombre de fois qu'ils dépassent un seuil prédéterminé, pour rechercher des problèmes de performances ou des régressions.

+0

+1 Je commencerai à regarder ça. J'ai trouvé quelque chose sur CodeProject. Faites-moi savoir si vous connaissez de meilleures ressources. Merci! http: // www.codeproject.com/KB/dotnet/perfcounter.aspx –

+0

Dans le cas où cela pourrait aider, je couvre les compteurs de performance personnalisés dans mon livre: Ultra-Fast ASP.NET. – RickNZ

+0

Merci. J'y jetterais un œil. Je suis sûr que mon entreprise sera prête à faire flotter les 30 $. –

1

Vous devriez pouvoir lire les compteurs de performance Windows pour obtenir la plupart de ces informations. L'utilisation de la bande passante est difficile au niveau de l'application. J'ai fini par construire une sorte de compteur dans mon application pour suivre la bande passante. Je suis sûr que cela pourrait être fait plus efficacement en descendant plus bas dans la pile, mais j'avais juste besoin de quelque chose de rapide et de sale de toute façon.

+0

+1 Je pensais que la bande passante serait un problème. Comment avez-vous fait? Comptez simplement le nombre d'octets de chaque réponse/requête? Savez-vous s'il existe un moyen de voir l'utilisation de la bande passante par répertoire virtuel? –

+1

Vous pouvez obtenir des statistiques de bande passante par site à partir du groupe de compteurs de performance Service Web (Octets envoyés/s, Octets reçus/s, Total d'octets/s). GET demandes/sec de ce groupe est également utile. – RickNZ

1

Essayez un produit (service?) Appelé NewRelic. Je ne suis pas affilié à eux d'aucune façon, mais leur service est vraiment génial et dispose d'un niveau gratuit que vous pouvez utiliser pour commencer.

Questions connexes