> For the complete documentation index, see [llms.txt](https://docs.system-analyst-base.ru/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.system-analyst-base.ru/hard-skills/proektirovanie/monitoring/logirovanie.md).

# Логирование

{% hint style="info" %}
**Лог** — это запись или последовательность записей, которые отражают действия, произошедшие в операционной системе, программном обеспечении, сервере или другой аппаратной или программной системе. Лог обычно сохраняет различные виды сообщений, которые генерируются в ходе работы программы или операционной системы. Это могут быть ошибки, предупреждения, операции пользователя, информационные сообщения или диагностическая информация. На основе логов могут строиться метрики.
{% endhint %}

### Логирование

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

### Трейсинг

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

#### Структура трейсинга

Основные элементы трейсинга включают в себя **трейсы**, **спаны** и **контекст трейсинга**. Эти компоненты работают вместе, чтобы предоставить точную и детализированную информацию о выполнении операций в системе.

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

**Спан** — это базовая единица трейсинга. Каждый спан представляет собой отдельную операцию и включает в себя несколько обязательных полей и метаданных

**Контекст трейсинга** является важным элементом, который связывает отдельные спаны в единый трейс. Он передаётся между компонентами и сервисами системы, обеспечивая целостность и связанность записей трейсинга.
