Repolode
jazzband

jazzband/django-silk

Профайлер и интерфейс для анализа Django, которые записывают запросы, SQL-запросы и блоки кода, помогая находить узкие места.

Звёзды
5,005
Форки
381
Открытые issues
132
Последний коммит
4 дня назад

Что это?

Silk — инструмент профилирования приложений на Django. Его middleware перехватывает каждый HTTP-запрос и ответ, а обёртка вокруг выполнения SQL записывает запросы к базе данных, которые вызываются при обработке каждого HTTP-запроса. Данные хранятся в настроенной базе данных и отображаются во встроенном веб-интерфейсе по адресу /silk/, где можно фильтровать запросы и смотреть время обработки, количество SQL-запросов, время их выполнения, заголовки и тела.

Для более глубокого анализа Silk может запускать Python cProfile для каждого запроса и показывать результаты в интерфейсе. При необходимости можно построить граф вызовов и скачать файл .prof для инструментов вроде snakeviz. Декоратор и контекстный менеджер позволяют профилировать отдельные функции или блоки кода, а динамическое профилирование — оборачивать функции в модулях, которые нельзя редактировать. Silk также генерирует код на curl и Python для повторного выполнения записанного запроса.

Доступ можно ограничить с помощью аутентификации и разрешений Django, а конфиденциальные данные, например пароли и токены, маскируются. Запись можно ограничить по проценту запросов, коду ответа или пути, а старые записи — удалять сборщиком мусора.

Ключевые возможности

  • 01Записывает запросы, ответы, заголовки и тела с помощью middleware Django.
  • 02Отслеживает SQL-запросы для каждого запроса, включая время выполнения и трассировки стека.
  • 03Запускает cProfile для каждого запроса и позволяет строить графы вызовов и скачивать файлы .prof.
  • 04Профилирует отдельные функции и блоки кода с помощью декоратора или контекстного менеджера.
  • 05Генерирует код на curl и Python для повторного выполнения записанных запросов.
  • 06Поддерживает аутентификацию, разрешения и маскировку конфиденциальных данных.

Сценарии использования

  • Поиск проблем с N+1 запросами в медленном представлении Django.
  • Профилирование отдельной функции или блока бизнес-логики в среде разработки или на стенде.
  • Разбор ошибок в production с записью только запросов, имеющих выбранные коды ответа.
  • Передача воспроизводимого запроса в виде команды curl или фрагмента Python-теста.

В подборках

Темы

Частые вопросы

Что такое django-silk?
Профайлер и интерфейс для анализа Django, которые записывают запросы, SQL-запросы и блоки кода, помогая находить узкие места. Silk — инструмент профилирования приложений на Django. Его middleware перехватывает каждый HTTP-запрос и ответ, а обёртка вокруг выполнения SQL записывает запросы к базе данных, которые вызываются при обработке каждого HTTP-запроса. Данные хранятся в настроенной базе данных и отображаются во встроенном веб-интерфейсе по адресу /silk/, где можно фильтровать запросы и смотреть время обработки, количество SQL-запросов, время их выполнения, заголовки и тела.
django-silk можно использовать бесплатно? Какая у него лицензия?
django-silk распространяется с открытым исходным кодом под лицензией MIT. Перед использованием в коммерческих продуктах проверьте условия лицензии.
django-silk всё ещё поддерживается?
Активно поддерживается. Последний коммит в django-silk — 3 нояб. 2026 г..
Для чего можно использовать django-silk?
Поиск проблем с N+1 запросами в медленном представлении Django. Профилирование отдельной функции или блока бизнес-логики в среде разработки или на стенде. Разбор ошибок в production с записью только запросов, имеющих выбранные коды ответа. Передача воспроизводимого запроса в виде команды curl или фрагмента Python-теста.
Где скачать django-silk?
Исходный код и инструкции по установке — на GitHub: https://github.com/jazzband/django-silk

Описание создано ИИ на основе README проекта. Статистика GitHub обновляется ежедневно.

Похожие проекты

Платформа непрерывного профилирования: собирает профили CPU, памяти и I/O работающих приложений и помогает найти медленный код вплоть до конкретной строки.

11,7 тыс.834GoAGPL-3.0Активно поддерживаетсяОбновлён 7 часов назад

Профилировщик памяти для Python: отслеживает выделения памяти в Python-коде, нативных расширениях и интерпретаторе и формирует отчёты нескольких типов.

15,4 тыс.+14 за неделю486PythonApache-2.0Активно поддерживаетсяОбновлён 4 дня назад