0Pricing
DevOps Bootcamp · Урок

Распределённая трассировка и события

Дополните набор инструментов наблюдаемости распределённой трассировкой потоков запросов и событиями Kubernetes для получения сигналов на уровне кластера.

«Распределённая трассировка и события» — бесплатный урок DevOps Bootcamp на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения DevOps Bootcamp, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс DevOps Bootcamp содержит 4 уроков всего.

Три основы наблюдаемости

Наблюдаемость опирается на три основы: журналы, метрики и трассировки. Вы уже познакомились с журналами и метриками; в этом уроке добавляются трассировки и события Kubernetes.

Что такое распределённая трассировка

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

Интервалы и трассировки

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

# A trace for one checkout request
# trace_id: abc123
#  span: api-gateway        (40ms)
#    span: order-service    (25ms)
#      span: db-query       (15ms)
#    span: payment-service  (10ms)

Передача контекста

Чтобы трассировка работала, службы передают контекст трассировки в заголовках запроса, поэтому каждый переход связывается с одной и той же трассировкой.

# W3C Trace Context header
traceparent: 00-abc123def456-00f067aa0ba902b7-01

OpenTelemetry

OpenTelemetry (OTel) — это стандарт инструментирования приложений и экспорта трассировок. Сборщик OTel может работать в кластере, принимая и передавая интервалы.

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

Интервалы отправляются в систему хранения, например Jaeger или Tempo, которая сохраняет и визуализирует трассировки, позволяя подробно исследовать медленные запросы.

# deploy a collector that exports to Jaeger
kubectl get pods -n observability -l app=otel-collector

События Kubernetes

Отдельно от трассировок приложений Kubernetes создаёт события, описывающие действия кластера: планирование, загрузку образов, сбои проверок и многое другое.

kubectl get events --sort-by=.lastTimestamp

Просмотр событий ресурса

kubectl describe показывает события, связанные с конкретным объектом. Часто это самый быстрый способ понять, почему под не может продолжить работу.

kubectl describe pod my-app
# Events:
#  Warning  FailedScheduling  no nodes available
#  Normal   Scheduled         assigned to node-2
#  Warning  BackOff           restarting failed container

События существуют недолго

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

Сопоставление сигналов

Настоящая сила проявляется при сопоставлении всех источников: всплеск метрики приводит Вас к трассировке, трассировка указывает на службу, а её журналы и события объясняют первопричину.

Когда стоит использовать трассировку

  • Запрос выполняется медленно, но Вы не знаете, какая служба виновата
  • Ошибки появляются глубоко в цепочке микрослужб
  • Вам нужно понять зависимости между службами

Быстрая проверка

Проверьте свои знания о трассировке.

Итоги

Вы добавили третью основу наблюдаемости: распределённая трассировка отслеживает запросы между службами с помощью интервалов и передачи контекста, часто через OpenTelemetry в Jaeger или Tempo. Вы также научились читать недолговечные события Kubernetes для диагностики на уровне кластера и сопоставлять журналы, метрики, трассировки и события.

Часто задаваемые вопросы

Урок «Распределённая трассировка и события» бесплатный?

Да — полный текст урока «Распределённая трассировка и события» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс DevOps Bootcamp, подпишись на CoddyKit PRO. Курс DevOps Bootcamp содержит 4 уроков всего.

Чему я научусь в уроке «Распределённая трассировка и события»?

Дополните набор инструментов наблюдаемости распределённой трассировкой потоков запросов и событиями Kubernetes для получения сигналов на уровне кластера. Ты практикуешь DevOps Bootcamp с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать DevOps Bootcamp?

Предыдущий опыт не требуется. DevOps Bootcamp на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Распределённая трассировка и события»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке DevOps Bootcamp?

Да. Каждый урок DevOps Bootcamp включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Журналирование с помощью kubectl logs
  2. Показатели с Prometheus и Grafana
  3. Проверки работоспособности: пробы активности и готовности
  4. Распределённая трассировка и события
← Назад к DevOps Bootcamp