Вопрос проверяет знание инструментов для observability.
OpenTelemetry - open-source инструмент для сбора телеметрии (метрики, логи, трейсы). Помогает в мониторинге и диагностике.
Основные компоненты:
Трейсы - цепочки связанных событий
Метрики - числовые показатели
Логи - текстовые записи событий
Для чего используется:
Мониторинг производительности
Диагностика ошибок
Анализ зависимостей между сервисами
Оптимизация ресурсов
Как работает:
Инструментирование кода (авто или ручное)
Сбор данных агентами
Экспорт в бэкенды (Jaeger, Prometheus)
Визуализация (Grafana)
Пример на Go:
import (
"go.opentelemetry.io/otel"
"go.opentelemetry.io/otel/trace"
)
func main() {
tracer := otel.Tracer("my-app")
ctx, span := tracer.Start(context.Background(), "my-span")
defer span.End()
// Работа приложения
}Архитектура:
[Приложение] → [OTel Collector] → [Jaeger/Prometheus] → [Grafana]