Jump to content

Трассировка (программное обеспечение)

(Перенаправлено из журнала событий )

Трассировка в разработке программного обеспечения относится к процессу сбора и записи информации о выполнении программы. Эта информация обычно используется программистами в целях отладки , а также, в зависимости от типа и детализации информации, содержащейся в журнале трассировки, опытными системными администраторами или персоналом службы технической поддержки , а также средствами мониторинга программного обеспечения для диагностики распространенных проблем с программным обеспечением. [ 1 ] Отслеживание является сквозной задачей .

Не всегда существует четкое различие между отслеживанием и другими формами ведения журнала , за исключением того, что термин «отслеживание» почти никогда не применяется к ведению журнала, которое является функциональным требованием программы (поэтому исключая регистрацию данных из внешнего источника, например, сбор данных в эксперимент по физике высоких энергий и упреждающая запись в журнал ). Журналы, в которых регистрируется использование программы (например, журнал сервера ) или события операционной системы, представляющие в первую очередь интерес для системного администратора (см., например, «Просмотр событий» ), попадают в терминологическую серую зону.

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

Отслеживание программного обеспечения

[ редактировать ]

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

  • Поскольку трассировка программного обеспечения является низкоуровневой, часто необходимо определить гораздо больше типов сообщений, многие из которых будут использоваться только в одном месте кода. Парадигма кода событий приводит к значительным затратам на разработку таких «однократных» сообщений.
  • Типы регистрируемых сообщений часто менее стабильны на протяжении цикла разработки, чем при регистрации событий.
  • Поскольку выходные данные трассировки предназначены для использования разработчиком, локализовать сообщения не требуется. Поэтому важно хранить отслеживаемые сообщения отдельно от других ресурсов, которые необходимо локализовать (например, сообщений о событиях).
  • Есть сообщения, которые никогда не следует видеть .
  • Сообщения трассировки следует хранить в коде, поскольку они могут повысить читаемость кода. Это не всегда возможно или осуществимо при использовании решений для регистрации событий.

Инструменты

[ редактировать ]

OpenTelemetry — это проект CNCF с открытым исходным кодом, который обеспечивает комплексную поддержку распределенной трассировки. [ 3 ] Некоторые поставщики, включая Datadog , New Relic , Splunk, также предлагают услуги SaaS по отслеживанию. [ 4 ]

Google и Meta разработали собственные системы отслеживания, а именно Dapper и Canopy. [ 2 ]

Трассировка для конкретного приложения

[ редактировать ]

Системная трассировка

[ редактировать ]

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

Linux предлагает возможности трассировки на уровне системы и пользователя с помощью маркеров ядра и LTTng . ftrace также поддерживает трассировку ядра Linux. syslog — еще один инструмент в различных операционных системах для регистрации и отслеживания системных сообщений.

FreeBSD и SmartOS используют DTrace для трассировки ядра и пользовательской среды.

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

Генерация и сбор трассировки

[ редактировать ]

Генерация трассировки вызовов методов может выполняться с помощью инструментирования исходного кода, сбора информации во время выполнения или под управлением отладчика. [ 7 ] макросы трассировки, аспектно-ориентированное программирование и соответствующие методы инструментирования Можно использовать .

Библиотеки, используемые в исходном коде, отправляют данные агенту или непосредственно компоненту сбора. [ 4 ]

Анализ трассировки

[ редактировать ]

Для моделирования деревьев выполнения ISVis преобразует корневое дерево в направленный ациклический граф, а Jinsight использует принцип кадра вызова для сбора и представления совокупной информации о трассировках. [ 7 ]

Основным методом визуализации является представление дорожки, примером которого являются такие инструменты, как Jaeger , и часто включает аннотации и атрибуты «ключ-значение». Несмотря на широкое использование, этому дизайну не хватает строгого обоснования, и пользователи часто сталкиваются с такими проблемами, как отсутствие функций и запутанная навигация. Существуют альтернативы представлениям «дорожки», такие как представление зависимостей служб Jaeger или представления «Список», «Дерево» и «Таблица» SkyWalking. Агрегированные визуализации также используются для анализа больших объемов трассировок: такие системы, как Canopy, предлагают запрашиваемые метрики, а Jaeger — функции сравнения трассировок. [ 8 ]

Проблемы и ограничения

[ редактировать ]

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

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

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

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

Безопасность и конфиденциальность

[ редактировать ]

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

См. также

[ редактировать ]
  1. ^ «Книга розыска» . Архивировано из оригинала 24 февраля 2009 г.
  2. ^ Jump up to: а б Ли, Боуэн; Пэн, Синь; Сян, Цилинь; Ван, Ханьчжан; Се, Тао; Вс, июнь; Лю, Сюаньчжэ (2022). «Наслаждайтесь своей наблюдательностью: промышленное исследование трассировки и анализа микросервисов» . Эмпирическая программная инженерия . 27 (1): 25. дои : 10.1007/s10664-021-10063-9 . ISSN   1382-3256 . ПМЦ   8629732 . ПМИД   34867075 .
  3. ^ Мандель, Майя (7 июня 2023 г.). «Сообщение Совета: Распределенная трассировка: ключ к наблюдаемости микросервисов» . Форбс . Проверено 12 января 2024 г.
  4. ^ Jump up to: а б Джейнс, Андреа; Ли, Сяочжоу; Ленардуцци, Валентина (2023). «Открытые инструменты трассировки: обзор и критическое сравнение» . Журнал систем и программного обеспечения . 204 . Elsevier BV: 111793. arXiv : 2207.06875 . дои : 10.1016/j.jss.2023.111793 . ISSN   0164-1212 .
  5. ^ «Точки трассировки (отладка с помощью GDB)» . исходное программное обеспечение.org . Проверено 24 июня 2022 г.
  6. ^ Крафт, Йохан; Уолл, Андерс; Кинле, Хольгер (2010), «Запись трассировки для встраиваемых систем: уроки, извлеченные из пяти промышленных проектов» , Проверка времени выполнения , Springer Berlin Heidelberg, стр. 315–329, doi : 10.1007/978-3-642-16612-9_24 , ISBN  9783642166112
  7. ^ Jump up to: а б Мерц, Джонни; Нуньес, Ингрид (2019). О практической возможности мониторинга программного обеспечения: основа для отслеживания выполнения с низким уровнем воздействия . CASCON '04: Материалы конференции Центра перспективных исследований по совместным исследованиям 2004 г. IEEE. стр. 169–180. дои : 10.1109/SEAMS.2019.00030 . ISBN  978-1-7281-3368-3 .
  8. ^ «Качественное интервью с визуализацией распределенной трассировки: характеристика проблем и возможностей» . IEEE Эксплор . 01 февраля 2023 г. Проверено 12 января 2024 г.
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 9bd65849916c24567eb16fabd0f5e3bd__1722011400
URL1:https://arc.ask3.ru/arc/aa/9b/bd/9bd65849916c24567eb16fabd0f5e3bd.html
Заголовок, (Title) документа по адресу, URL1:
Tracing (software) - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)