Вступить в клуб →
средняяpythonNginx и балансировка: прокси, TLS, таймауты

Сколько запросов nginx повторял на другой бэкенд

В access-лог nginx пишется $upstream_response_time. Будем считать, что поле принимает такие значения:

  • "0.512" — запрос обработал один бэкенд;
  • "3.001, 0.120" — первый бэкенд не ответил, nginx повторил запрос на следующий; времена попыток через запятую с пробелом;
  • "-" — запрос не проксировался (отдан кэшем, статикой или отбит лимитом).

Напишите upstream_stats(values).

Верните словарь:

  • "proxied" — число значений, кроме "-";
  • "retried" — число значений с двумя и более попытками;
  • "avg_time" — среднее суммарного времени всех попыток на проксированный запрос, округлённое до 3 знаков; если проксированных нет — 0.0.

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

def upstream_stats(values):
    # ваш код
    return None

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

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

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

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