Встречается на собеседованиях • сегодня

Как отслеживать trace ID между сервисами

Для отслеживания trace_id между сервисами в распределённых системах используют корреляционные идентификаторы (correlation IDs). Вот основные подходы:

  1. HTTP-заголовки
    Добавляйте X-Request-ID или X-Correlation-ID в заголовки запросов между сервисами:
    python
    import requests
    from uuid import uuid4
    
    trace_id = str(uuid4())
    headers = {'X-Trace-ID': trace_id}
    response = requests.get('https://api.example.com', headers=headers)
  1. Контекст в логировании
    Используйте logging.Filter или контекстные переменные:

    python
    import logging
    from contextvars import ContextVar
    
    trace_id_var = ContextVar('trace_id', default=None)
    
    class TraceFilter(logging.Filter):
        def filter(self, record):
            record.trace_id = trace_id_var.get()
            return True
  2. Инструменты
    Готовые решения:

    • OpenTelemetry (распределённый трейсинг)
    • Flask/Django middleware для автоматической передачи ID
    • RabbitMQ/Kafka metadata для асинхронных взаимодействий

Ключевые принципы:

  • Генерируйте ID на entry-point (API gateway, первый сервис)
  • Пропагируйте через все уровни (HTTP, gRPC, очереди)
  • Включайте в логи и метрики
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы