Трейсинг и метрики приложений в Proto Observability Platform

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

Что такое трейсинг (tracing)?

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

Ключевые понятия Tracing

Trace – слепок пути запроса. Содержит набор связанных span’ов, представляющих все шаги обработки запроса.

Span – операция, выполняемая в процессе запроса. Например, вызов базы данных или HTTP-запрос к микросервису. Трейсер присваивает уникальный идентификатор (Span ID), временные метки (начало и конец выполнения), метки (tags) и логи (logs) для предоставления детальной информации об исполнении запроса.

Parent-Child Relationship – иерархическая связь между span’ами, показывающая последовательность выполнения операций (например, вызов одного микросервиса другим).

Идентификаторы

  • Trace ID – уникальный идентификатор, связывающий все span’ы в рамках одного trace.
  • Span ID – уникальный идентификатор конкретного span (операции).
  • Parent Span ID – идентификатор родительского span (для отображения вложенности).

Временные метки (Timestamps) – указывают время начала и завершения span’а, что помогает измерять задержки и длительность.

  • Start Time – время начала выполнения span.
  • End Time – время завершения выполнения span.
  • Duration – длительность выполнения span (рассчитывается на основе start и end time).

Метки (Tags) – это статические или динамические ключ-значения, описывающие контекст span’а. Часто используются для фильтрации и поиска операций. Пример: http.method=GET, db.statement=SELECT * FROM users.

Пользовательские данные – дополнительные поля, специфичные для приложения и содержащие информацию о пользователе. Пример: user.id=12345.

Состояние операции – статус span (например, status=success или status=error), HTTP или GRPC статус-коды (http.status_code=200).

Логи, записанные в процессе выполнения операции – это набор событий или сообщений, записанных во время исполнения span, которые дают дополнительную информацию о состоянии, ошибках или ключевых этапах. Они помогают понять, что именно происходило во время выполнения определенного шага запроса. Пример: error=true, exception=“TimeoutException: database query exceeded limit”, execution_time=45ms, result_size=128KB.

Подключение распределенного трейсинга от Proto Observability

Proto Observability Platform предоставляет автоматический, end-to-end распределенный трейсинг для приложений, написанных на всех популярных языках программирования.

Перед подключением трейсера от Proto Observability убедитесь, что у вас уже установлены агенты ProtoOBP.

Для подключения трейсера воспользуйтесь инструкциями ниже.


Мониторинг Java приложений с помощью Proto Observability

Подключение трейсинга и сбора метрик для Java приложений.

Мониторинг PHP приложений с помощью Proto Observability

Подключение трейсинга для PHP приложений.

Мониторинг Node.js приложений с помощью Proto Observability

Подключение трейсинга и сбора метрик для Node.js приложений.

Мониторинг Python приложений с помощью Proto Observability Platform

Подключение трейсинга и сбора метрик для Python приложений.

Мониторинг Go приложений с помощью Proto Observability

Подключение трейсинга и сбора метрик для Go приложений.

Мониторинг .NET приложений с помощью Proto Observability

Подключение трейсинга и сбора метрик для .NET приложений.

Подключение трейсинга Nginx в Proto Observability Platform

Подключение OpenTelemetry

Подключение трейсинга c помощью OpenTelemetry.

Расширенная конфигурация

Конвенция наименования тегов