www.machinelearningmastery.ru

Машинное обучение, нейронные сети, искусственный интеллект
Header decor

Home

Как объединить трассировку и журналы для более быстрого устранения неполадок

Дата публикации Oct 3, 2019

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

Другим ценным источником информации в этих ситуациях являются журналы. Каждая группа разработчиков использует что-то простое, например, вывод на консоль или одну из множества библиотек журналов, таких как log4j, Python logging, Serilog или Monolog, чтобы сообщать информацию во время выполнения кода. Они содержат огромное количество информации. К сожалению, большинство решений трассировки не обеспечивают интеграцию с файлами журналов. Вытащить информацию журнала трудно. И если не объединить, вы не получитевозможность наблюдениятебе нужно. Не должно ли быть лучшего способа?

Трассировка и пользовательская регистрация

Системы APM, как правило, поддерживают настраиваемое ведение журнала как отдельную структуру ведения журнала или API. Разработчики могут не только устанавливать простые точки трассировки, но и рассчитывать и сообщать пользовательскую информацию. Например, .NET предоставляет класс EventLog для создания источников событий и их регистрации как части среды отладки и трассировки.

Есть много способов, которыми настраиваемая регистрация может помочь диагностике проблем. Назвать несколько:

Сброс соответствующих переменных

Расчет и составление отчетов о показателях на лету, например, сколько раз была вызвана функция

Состояние ресурса, например, доступная память

Эта дополнительная информация может помочь идентифицировать причины проблем и привести к более быстрому решению проблем.

Многословие и видимость

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

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

Даже с такими инструментами текстового поиска, как grep, разработчикам и тестировщикам приходится тратить часы на извлечение соответствующих подсказок из журналов. Цель состоит в том, чтобы найти не только отдельные точки данных, но и шаблоны. Если проблема нерегулярна, уловка состоит в том, чтобы обнаружить разницу между временем, когда это происходит, и временем, когда это не происходит. Составление данных журнала, объясняющих такие ситуации, является сложной задачей.

Изобретая Бревно

Этот избыток данных является основной причиной обращения к пользовательским журналам трассировки. Надеюсь, что эти звонки предоставят необходимую информацию без особых помех. В любом конкретном случае 99,9% или более файлов журнала не имеют отношения к рассматриваемой проблеме.

Но пользовательская регистрация означает повторение работы, которая уже может быть там. Разработчики, которые уже знакомы со стандартными системами ведения журналов, должны приспособиться к особенностям ведения журналов APM. Попытка упростить проблему добавляет новое осложнение.

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

Это звучит великолепно в теории, но для написания пользовательских журналов требуется время. Что, если бы был способ - или решение, которое автоматически связывало следы с журналами?

Загрузка журналов в трассировки с помощью LogSense

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

Само по себе отслеживание говорит человеку, использующему его, «это то, что идет не так». Это важно, но что действительно необходимо, так это «это то, что идет не так». Дополнительные сведения из проанализированных данных журнала устраняют пробел, устраняя часы недоумения из-за неожиданного поведения кода.

Результаты

Когда проблему трудно решить, это часто потому, что вы смотрите не в том месте. Хорошо разработанные журналы предоставляют информацию с разных точек зрения. Они могут дать разработчикам доступ к подсказкам, в которых они не знали, что им нужно. Анализ их моделей выявляет как систематические события, так и отдельные события. Это особенно важно при периодически возникающих проблемах, где причина не всегда обнаруживается

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

Попробуйте LogSense сегодня с нашей бесплатной пробной версией - и соберите вместе ваши следы и журналы, чтобы помочь быстрее устранять неполадки в вашей среде.


Первоначально опубликовано наhttps://www.logsense.com,

Оригинальная статья

Footer decor

© www.machinelearningmastery.ru | Ссылки на оригиналы и авторов сохранены. | map