Вступить в клуб →
средняяpythonЛогирование: сбор, разбор и хранение логов

Медленные эндпоинты по 95-му перцентилю из JSON-логов

Приложение пишет JSON-логи, уже разобранные в словари: {"path": "/api/orders", "duration_ms": 120}.

Напишите slow_endpoints(records, threshold_ms).

  • Сгруппируйте записи по path и посчитайте p95 длительности методом ближайшего ранга: отсортируйте длительности пути по возрастанию, возьмите элемент с индексом (95 × n + 99) // 100 − 1, где n — число записей пути.
  • Записи без path или без duration_ms пропускайте.
  • Верните список пар (path, p95) для путей, где p95 строго больше threshold_ms, по убыванию p95; при равенстве — по path по алфавиту.

заготовка решения

def slow_endpoints(records, threshold_ms):
    # ваш код
    return None

🔒 Проверка ответа — для участников клуба

  • Автотесты прямо в браузере
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела