Инструменты и методы для веб-приложений ASP.NET для мониторинга в реальном времени?
Я думаю, что многие разработчики знают, что неудобное чувство, когда пользователи говорят им, что "Приложение медленное (снова)".
В сложном веб-приложении может быть множество возможных причин для ухудшения (воспринимаемой) производительности: медленного ответа базы данных, проблем с пропускной способностью, плохого кэширования и т.д. Конечно, проблемы, которые никогда не будут возникать в среды разработки или промежуточного уровня.
Теперь мой вопрос:
Существует ли набор инструментов и/или методов, обеспечивающих всеобъемлющее "живое" состояние в производственной системе IIS/ASP.NET/SQL Server визуально (а не только счетчики производительности ):
- Текущие HTTP-запросы (например, последние n минут)
- Исключения/тайм-ауты
- Данные пропускной способности
- Количество открытых подключений к базе данных/вызовы базы данных
- ...
Основная цель состоит в том, чтобы сразу увидеть (или, если смотреть поближе), какую проблему вызывают проблемы с производительностью.
Ответы
Ответ 1
Я думаю, что категория программного обеспечения, которую вы ищете, это ".net profiler" или ".net tracer". Одним из таких инструментов, который можно было бы рассмотреть, является " dotTrace от JetBrains. Он дает вам трассировки стека времени выполнения и массив счетчиков, которые указывают на возможные узкие места.
Ответ 2
Ранее упомянутые инструменты, безусловно, будут работать. В нашем магазине нам нужна была более тонкая информация и было построено собственное решение (длинный рассказ: было проще кодировать, чем рассуждать о инструментах и извлекаемых данных).
Я использовал LogParser, чтобы перелистывать журналы IIS и создавать выходные отчеты этих журналов (например, сбой кода результата и т.д.).
Я использовал комбинацию счетчиков производительности и значений WMI, чтобы получить остальное - вы можете прочитать их с помощью довольно простого С# - это дает вам полный контроль над тем, чтобы вы могли сбрасывать на .csv и т.д. для просмотра/обработки в excel или if вы обновляете страницу в качестве центра управления.
Я бы также посмотрел на IIS.net как отличный ресурс для инструментов IIS, включая отладку, безопасность и т.д.
Ответ 3
Я следил за советом по urig и нашел это программное обеспечение под названием SmartInspect.
Кто-нибудь знает этот инструмент ведения журнала/мониторинга? Кажется, это комбинация консоли реального времени и библиотеки разработчиков.
Ответ 4
CLR 4.5 будет иметь некоторые новые возможности, которые помогут вам контролировать производительность ASP.NET вживую - без перезапуска вашего приложения. В принципе, вы можете повторно подключить свой код, чтобы включить в него некоторые контрольные крючки, а затем проверить время, проведенное в классах/методах и т.д.
Я уверен, что dotTrace и другие инструменты профилирования будут использовать это автоматически, но стоит проверить: C9 - Inside Re-JIT с Дэвидом Броманом