Статьи

Развертывание интеллектуального управления ошибками и журналами Stackify

Stackify предоставляет облачные серверные приложения для управления производительностью и инструментами мониторинга и устранения неполадок, которые называются Smart Error и Log Management (SmartELM). В этом руководстве я собираюсь познакомить вас с его уникальными мощными функциями SmartELM, которые особенно полезны для профессиональных разработчиков, занимающихся мониторингом и устранением неполадок в рабочем коде после развертывания.

Для многих из нас журналы — пренебрегаемые пасынки кодирования; для профессиональных программистов они важны, но часто не соответствуют своей полезности. Stackify меняет это, предоставляя своего рода регистратор полета в кабине для вашего приложения.

Как только ваше приложение выйдет из производства, насколько доступными и полезными будут ваши файлы журналов? Там тонна данных. Вам нужно получить к нему доступ. Необходимые файлы могут быть распределены по нескольким серверам или границам служб. Это простые файлы, которые трудно найти и которые трудно прочитать. Им также часто не хватает контекста — например, какая учетная запись пользователя или метод связаны с записью в журнале. Тогда есть сложность управления файлами по мере их роста — позвоните системному администратору, верно? Хорошо, что вы были добры к ним в последнее время.

Интеллектуальное отслеживание ошибок и управление журналами Stackify решает многие из этих проблем.

Stackify - журналы мониторинга ошибок мониторинга производительности приложений

На высоком уровне Staelify SmartELM делает следующее:

  • Объединяет все данные журнала и исключений в одну службу.
  • Делает это доступным, мгновенно, всем в вашей команде.
  • Представляет временную шкалу регистрации всей вашей инфраструктуры стека, тестирования и производственного сервера.
  • Сильно проиндексирован, доступен для поиска и «умен».

Как только вы начнете регистрировать данные своего приложения в Stackify, вы можете сделать следующее:

  • Управление и поиск журналов по всем вашим приложениям и серверам.
  • Превратите необработанные ошибки в интеллектуальные ошибки, основанные на запросах.
  • Просмотр коллекций записей в журнале, связанных с конкретной ошибкой.
  • Получать оповещения на основе частоты ошибок и постоянных запросов журнала, таких как новые исключения, всплески ошибок и повторное появление разрешенных проблем.

В конечном итоге эти функции помогают быстрее находить и устранять проблемы приложений.

Вы можете запустить Мониторинг сервера и приложений Stackify вместе с Smart Logs и Error Management или вы можете запустить их независимо. Несмотря на то, что в этом руководстве основное внимание будет уделено SmartELM, я также познакомлю вас с основами службы мониторинга.

Вы можете найти документацию по установке для вашей платформы здесь . Я использую Stackify с Linux .

Stackify Установочные среды

Stackify обеспечивает поддержку мониторинга для Windows, Linux и Azure, а также регистрацию ошибок и ведение журнала для .NET и Java. Поддержка PHP, Node.js, Python и Ruby появится в ближайшее время.

Зайдите в меню настроек и прокрутите вниз, чтобы получить ключ активации:

Ключ активации Stackify для установки

Войдите на свой сервер и выполните следующие команды, чтобы установить агент за один шаг:

1
2
sudo -s
wget https://s1.stackify.com/Account/AgentDownload/Linux —output-document=stackify.tar.gz && tar -zxvf stackify.tar.gz stackify-agent-install-32bit && cd stackify-agent-install-32bit && ./agent-install.sh

Вам нужно будет вставить ключ активации сверху. Вы должны увидеть что-то вроде этого:

Stackify Установка с именем среды

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

Панель мониторинга Stackify дает вам представление о состоянии ваших серверов и приложений с помощью телеметрии на основе времени и выделения событий, которые вы должны исследовать.

Как только данные поступят, ваша панель мониторинга Stackify будет выглядеть примерно так:

Панель инструментов Stackify

Вот крупный план панели инструментов:

Панель инструментов Stackify

Стеки перечисляют приложения и службы, которые вы используете:

Stackify App Stacks

Мониторинг показывает, что происходит на определенных серверах:

Страница мониторинга Stackify

Вы также можете фильтровать между вашей средой разработки, тестирования и производства:

Фильтр Stackify по среде

Теперь, когда вы получили общее представление о среде Stackify, давайте углубимся в интеллектуальное отслеживание ошибок и управление журналами (SmartELM).

Существует несколько ключевых сценариев, для которых вы хотите использовать SmartELM, таких как идентификация и уведомление о:

  1. Новые исключения
  2. Повторное появление или повторение разрешенных проблем, для которых вы настроили фильтры
  3. Пики ошибок в последнюю минуту или последний час
  4. Более глубокий анализ ошибки и ее источника

Я расскажу вам, как Stackify помогает вам в этом. Но сначала давайте рассмотрим установку соответствующих приложений журнала.

Stackify создал приложения для ведения журналов для нескольких наиболее распространенных сред. Вы можете узнать больше об их установке из онлайн-документации: Руководства по установке логов и метрик . Я также предоставил отдельные ссылки ниже:

Если вы используете NuGet из Visual Studio, вы можете быстро и легко найти и интегрировать библиотеки журналов и конфигурации Stackify. Просто найдите Stackify, а затем установите соответствующий appender:

Установка приложений журнала с помощью NuGet из Visual Studio

Как только они будут установлены, Stackify начнет отслеживать и записывать ошибки и журналы.

Когда вы посещаете страницу панели ошибок, вы увидите что-то вроде этого:

Страница ошибок стекизации

График в верхней части показывает нам визуальное представление частоты ошибок во времени. Резюме подробно описывают конкретные ошибки, возникающие в нашем коде. Stackify позволяет избежать дублирования сообщений об ошибках, поэтому вы просто видите уникальные события.

Этот вид может быть полностью настроен с помощью различных фильтров. Вы можете нажать « Активно» , « Разрешено» или « Регрессивно», чтобы увидеть проблемы, основанные на их известном состоянии. Вы можете установить фильтры по приложению , среде или серверу . И вы можете настроить набор полей, показанный в табличном представлении.

Допустим, вы хотите посмотреть на определенный временной интервал для события. Вы можете визуально выбрать этот временной диапазон на графике, чтобы ограничить запрос ошибок:

Визуализация стеков ошибок и журналов Визуальный фильтр выбора временного диапазона

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

Отслеживание частоты событий ошибок Stackify

Давайте увеличим первую ошибку, появляющуюся в Резюме . Эта ошибка произошла 172 раза в этом узком временном интервале, поэтому нам нужно исследовать ее подробнее:

Частота событий

Нажмите на описание ошибки, и вы увидите широкий спектр информации об ошибке. Вот верхняя строка информации:

Подробная информация об ошибке Stackify

Прокрутите вниз, и вы увидите контекстные данные, отображаемые в формате JSON. Ниже мы обсудим, как вы можете регистрировать события с большей детализацией и контекстом.

Подробная информация об ошибке Stackify Контекстуальные структурированные объекты JSON

Прокрутите дальше, и вы увидите серверные переменные с событием:

Подробная информация об ошибках

Теперь перейдем к странице « Журнал» (вы также можете сузить временной диапазон с помощью визуального выбора):

Stackify Logs View

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

Вы также можете выполнить полнотекстовый поиск по этим файлам журнала:

Stackify Logs Полнотекстовый поиск

И вы можете сохранить эти поиски, чтобы быстро отфильтровать конкретные проблемы в производстве:

Stackify Logs Сохраненные поиски

Значок ошибки связан с модальным отображением сведений об ошибке. Нажатие на синий начальный раздел гиперссылки JSON — это то, что показывает структурированные данные, которые были зарегистрированы.

Затем, нажимая на красные значки «жучков», я могу увеличить структурированные данные, которые я записал вместе с событием, такие как customerid, email и orderid:

Журналы Stackify Подробные структурированные контекстные ошибки

Stackify пытается побудить разработчиков переосмыслить логирование:

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

Другими словами, регистрируйте больше, регистрируйте больше в контексте — и Stackify будет управлять и помогать разобраться в данных для вас.

Как упоминалось ранее, Stackify создал приложения для ведения журналов для нескольких наиболее распространенных сред:

  • log4net
  • log4j
  • NLog
  • Logback
  • Elmah

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

log.Debug("Created a Foo", foo);

Создает подробный контекст в представлении Stackify файла журнала следующим образом:

Stackify Logs Подробные структурированные контекстные ошибки из вашего кода

Вы можете попросить Stackify отслеживать частоту появления ошибок в вашей среде, уведомляя вас о предупреждении или срочном пороговом значении:

Stackify Мониторинг частоты ошибок и уведомление

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

Вы также можете настроить группы уведомлений, чтобы нужные люди получали уведомления о нужных событиях:

Stackify группы уведомлений

Вы также можете измерить изменение частоты ошибок при перемещении кода из теста в производство. Например, если в ваших тестовых сценариях не отображаются те же ошибки и частоты ошибок, которые вы испытывали в процессе производства, Stackify может помочь вам определить области кода, требующие более автоматизированного тестирования.

Вы можете прочитать больше о SmartELM в действии в разделе «Умные ошибки и журналы: использование данных для работы» в блоге Stackify. Вы можете найти более подробную документацию по панели инструментов ошибок здесь и панели инструментов журналов здесь .

Я надеюсь, что вы впечатлены решениями Staelify SmartELM. Я многому научился, узнавая продукт.

Сложная облачная служба отслеживания ошибок и управления журналами Stackify позволяет:

  • Получать уведомления по электронной почте или тексту о новых и регрессивных ошибках и всплесках ошибок.
  • Перейти к журналам со структурированными данными контекста из вашего кода.
  • Проводите расширенный текстовый поиск по всем вашим ошибкам.
  • Фильтрация журналов по ошибке, по времени или по пользовательским переменным, например, по IP-адресу или идентификатору клиента.
  • Сохраняйте результаты поиска и отслеживайте результаты поиска.
  • Сообщите нужным членам команды точно в срок.

Stackify активно поощряет разработчиков изменить свое мышление на ведение журналов и предоставляет мощные функции, которые делают это целесообразным, например, ведение журнала, ведение журнала с Stackify; они будут управлять данными и показывать контекстные данные по проблеме, которую вы исследуете. Stackify также имеет инструмент мониторинга приложений, который полностью интегрирован с платформой SmartELM, представленной в этой статье, что позволяет разработчикам также отслеживать общую производительность приложений, удовлетворенность клиентов, серверы, базу данных, конкретные URL-адреса и пользовательские метрики.

Stackify — это инструмент для профессиональных разработчиков, которые хотят повысить производительность своей игры.

Зарегистрируйтесь на бесплатную пробную версию в Stackify ; Вы также можете получить доступ к их документам через сайт.

Пожалуйста, оставьте любые комментарии или дополнительные идеи ниже. Я стараюсь участвовать в дискуссиях. Дайте нам знать, если вы хотите узнать больше о Stackify. Вы можете просмотреть мои другие учебники Tuts + на моей странице автора или подписаться на меня в Twitter @reifman .