Мониторинг приложений .NET ASP.NET - PullRequest
7 голосов
/ 06 января 2011

У меня есть несколько приложений, работающих поверх ASP.NET, которые я хочу отслеживать. Основные вещи, которые меня волнуют:

  • Исключения. В настоящее время мы используем специальный код, который будет отправлять нам электронное письмо в случае возникновения исключения. Если приложение сильно терпит неудачу, это разрушит наш взгляд ... Я знаю (и использую) elmah, который частично решает проблему, однако это все еще просто большая таблица исключений с симпатичным (ish) пользовательским интерфейсом. Я хочу что-то, что имеет смысл для всех этих исключений (например, групповые исключения, оповещения о появлении новых, говорит мне, какие распространенные, которые я должен исправить, и т. Д.)

  • Ведение журнала: В настоящее время мы регистрируем файлы, которые затем доступны через общую папку, которая называется grep & tail разработчика. Кто-нибудь знает лучшие способы представления этой информации. В идеальном мире я хочу связать это с исключениями.

  • Производительность: время запроса, использование памяти, процессор и т. Д. Независимо от статистики, которую я могу получить

Я предполагаю, что это, вероятно, будет решено рядом инструментов, у кого-нибудь есть какие-либо предложения?

Ответы [ 8 ]

3 голосов
/ 06 января 2011

Вам стоит взглянуть на Гибралтар Сам не пользовался, но выглядит очень хорошо!Также работает с nLog и log4net, так что если вы используете те, которые вам повезло !!

3 голосов
/ 06 января 2011

Ну, у нас точно такое же текущее решение. Письма на электронные письма засоряют мой почтовый ящик и в основном игнорируются. В праздничные дни ошибка приводила к тому, что каждый пользователь dev достигал лимита входящих сообщений;)

Так, куда мы направляемся с решением?

  1. Мы уже генерируем классы для всех наших исключений, они редко используются из более чем одного места. По сути, это был первый шаг, но мы начали кодовую базу таким образом.
  2. Мы изменили генератор для создания уникальных значений HRESULT для всех исключений.
  3. Мы снова добавили генератор для создания файла ресурсов сообщений .MC для каждого исключения.
  4. Теперь каждое исключение может записываться в журнал событий Windows, поэтому мы удаляли все электронные письма и т. Д. И полагались на журнал событий.
  5. Теперь с журналом событий, полным информации, включая уникальные коды сообщений и параметры для каждого исключения, мы можем использовать стандартные инструменты для агрегирования, мониторинга и оповещения.

Генератор исключений (до внесения изменений выше) находится здесь:

Он интегрируется с Visual Studio, заменив генератор ResX следующим:

Я еще не опубликовал генератор MC или поколение HRESULT; однако он будет доступен в указанных выше местах, когда я получу время.

- ОБНОВЛЕНИЕ -

Все инструменты и источники теперь доступны онлайн для этого. Так куда мне идти отсюда?

  1. Скачать исходный код или двоичные файлы из: http://code.google.com/p/csharptest-net/
  2. Посмотрите справку для CmdTool.exe Интеграция Visual Studio
  3. Затем просмотрите справку по Генераторам файлов ResX и MC , существует несколько способов создания файлов MC или создания DLL-файлов сообщений из файлов ResX. Выберите подход, который подходит вам лучше всего.
  4. Запустите CmdTool.exe REGISTER, чтобы зарегистрировать инструмент в Visual Studio
  5. Создайте файл ResX как обычно, затем измените пользовательский инструмент на CmdTool
  6. Вам нужно будет добавить несколько записей в файл resx. Как минимум, создайте следующее:
  7. Теперь у вас должен быть сгенерированный класс исключений, который записывает события журнала. Вам нужно будет собрать файл MC как действие до / после сборки, например:
    • CSharpTest.Net.Generators.exe RESXTOMESSAGEDLL /output=MyCustomMessages.dll /input=TheProjectWithAResX.csproj
  8. Наконец, вам нужно зарегистрировать его, запустить InstallUtil.exe MyCustomMessages.dll

Это должно начать вас, пока у меня не будет времени документировать все это.

1 голос
/ 06 января 2011

Я бы сначала пошел на log4net .SmtpAppender может дождаться накопления N исключений перед отправкой электронного письма и избежать сбоя Outlook.Кроме того, log4net также регистрирует файлы журналов, которые можно хранить на сетевых дисках, читать с помощью cat и grep и т. Д.

Что касается статистики, то вы можете регистрировать работоспособность / производительность с помощью тех же инструментов, т.е.порождает поток, который каждую минуту регистрирует загрузку процессора и т. д.

У меня нет конкретного ответа на первую часть вопроса, поскольку это подразумевает автоматический анализ журнала и объединение .В университете мы создали инструмент, предназначенный для выполнения некоторых из этих задач, но не применимый к вашему сценарию (но он двусторонне интегрирован с log4net).

1 голос
/ 06 января 2011

Одно предложение от Райанс Робертс Мне действительно нравится исключение , которое, по крайней мере, решает мои проблемы с исключениями.

1 голос
/ 06 января 2011

С точки зрения обработанных исключений или просто типичной регистрации, l4ndash стоит посмотреть. Я всегда настраиваю нашу log4net не только для записи текстовых файлов, но и для добавления в базу данных. Таким образом, l4ndash может легко это проанализировать. Он сгруппирует ваши ошибки, позволит вам увидеть, где часто происходят плохие вещи. Вы получаете одну бесплатную лицензию разработчика

С Элмой мы просто периодически сносим бревна. Он может экспортировать как CSV, тогда мы используем Excel сделать фильтр / сгруппировать данные. Это не идеально, но это работает. Было бы неплохо написать скрипт, чтобы автоматизировать это немного больше. Я не видел больше ничего для Эльмы.

0 голосов
/ 08 января 2011

Вы можете выбрать канал RSS из таблицы исключений (и других вещей).Тогда вы можете подписаться на RSS-канал в MS Outlook или на любом смартфоне.Я использую программу чтения RSS-каналов под названием NewsRob, потому что она предупреждает меня о появлении чего-то нового.

Я пишу о том, как это сделать ЗДЕСЬ.

Как связанный шагЯ нашел способ уведомить себя, когда что-то не произошло.Этот блог ЗДЕСЬ.

0 голосов
/ 06 января 2011

Мы создали простое приложение для мониторинга, которое находится на рабочем столе и мигает красным, когда в журнал событий одного из приложений на сервере записывается исключение или оно записывает ошибку в таблицу журнала ошибок набаза данных.Он также контролирует состояние базы данных, проверяет фрагментацию и тому подобное.

Единственная проблема, с которой мы сталкиваемся, заключается в том, что она может быть немного навязчивой на рабочем столе, так как она продолжает появляться с красным окном сообщения, если есть проблема.Тем не менее, это побуждает вас исправить это как можно скорее.

В настоящее время это работает на нескольких машинах разработчиков.Улучшение, о котором мы думаем, заключается в том, чтобы на сервере было запущено одно приложение для мониторинга, которое затем публикует RSS-канал, так что приложение проверяет только один раз в одном месте, но мы можем получать информацию из любого места, используя тот метод, который выберем в данный момент.(например, через наши телефоны, когда мы не в офисе).

0 голосов
/ 06 января 2011

Вы можете получить некоторые показатели по времени запроса (и все остальное, что было сохранено), запустив LogParser над журналами IIS.

...