Атрибуты, события и статус интервалов
Научитесь обогащать интервалы значимыми атрибутами, записывать события с отметками времени и задавать статус интервала, чтобы трассировки помогали диагностировать проблемы, а не содержали лишь данные о времени.
«Атрибуты, события и статус интервалов» — бесплатный урок System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry), и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Beyond Timing
A span knows its duration automatically, but raw timing is rarely enough. Enriching spans with attributes, events, and status makes traces tell a story.
Span Attributes
Attributes are key-value pairs that add context to a span, like the route handled or the number of rows returned.
span.set_attribute("http.route", "/orders/:id")
span.set_attribute("db.rows", 42)Use Conventions
Prefer standard semantic-convention keys for common data so backends understand them. Use custom keys only for domain-specific context.
standard: http.response.status_code
custom: order.tierKeep Attributes Bounded
Like metric labels, avoid high-cardinality or huge values. Do not stuff entire payloads into an attribute.
- Good: order count, region
- Bad: full request body, raw stack trace as attribute
Span Events
An event is a timestamped annotation inside a span marking something that happened at a moment, like a retry or cache miss.
span.add_event("cache.miss", { "key": "user:42" })Recording Exceptions
Exceptions are recorded as a special event capturing the type, message, and stack, so failures show up in the trace timeline.
try:
do_work()
except Exception as e:
span.record_exception(e)Span Status
Status tells whether the operation succeeded. The default is Unset; set Error on failure so backends can highlight broken spans.
span.set_status(StatusCode.ERROR, "payment declined")Status vs Recording Exceptions
Recording an exception adds detail but does not by itself mark the span failed. Always also set the status to Error.
span.record_exception(e)
span.set_status(StatusCode.ERROR)Attributes vs Events
Use attributes for facts true for the whole span; use events for things that happen at a point in time within it.
Naming Spans Well
Span names should be low cardinality, describing the operation type, not the specific instance. Put the variable part in attributes.
name: "GET /orders/:id" (good)
name: "GET /orders/48213" (bad)A Well-Formed Span
A diagnostic span has a clean name, a few bounded attributes, events for notable moments, and an accurate status.
Quick Check
Pick the correct statement about span status.
Recap
You learned to enrich spans with bounded attributes (preferring semantic conventions), to mark point-in-time moments and failures with events and record_exception, and to set status to Error explicitly. Low-cardinality span names plus rich context turn traces into real diagnostics.
Часто задаваемые вопросы
Урок «Атрибуты, события и статус интервалов» бесплатный?
Да — полный текст урока «Атрибуты, события и статус интервалов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry), подпишись на CoddyKit PRO. Курс System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) содержит 4 уроков всего.
Чему я научусь в уроке «Атрибуты, события и статус интервалов»?
Научитесь обогащать интервалы значимыми атрибутами, записывать события с отметками времени и задавать статус интервала, чтобы трассировки помогали диагностировать проблемы, а не содержали лишь данные… Ты практикуешь System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)?
Предыдущий опыт не требуется. System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.
Сколько времени занимает урок «Атрибуты, события и статус интервалов»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry)?
Да. Каждый урок System Observability: Logging, Metrics & Tracing (ELK + OpenTelemetry) включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Методы автоматического инструментирования
- Лучшие практики ручного инструментирования
- Передача контекста и багаж
- Атрибуты, события и статус интервалов