django-silk показывает 0 раз для всех запросов

Использование django 2.2.14 и django-silk 3.0. Просто верните общее время, но все запросы равны нулю. Что-то не так с версией django-silk или django? Как я могу решить причудливую проблему.

Package Version Django 2.2.14 django-silk 3.0.2

[Шелковая выставка] введите описание изображения здесь

3 ответа

Быстрый ответ

Набор SILKY_PYTHON_PROFILER_RESULT_PATH в твоей settings.py Например:

      SILKY_PYTHON_PROFILER_RESULT_PATH = "/var/profiler"

Вы должны убедиться, что указанный каталог существует. В документации шелка говорится, что он должен использовать папку мультимедиа, если она не установлена, но почему-то не работает.

      # If this is not set, MEDIA_ROOT will be used.
SILKY_PYTHON_PROFILER_RESULT_PATH = '/path/to/profiles/'

Есть несколько вещей, которые вам нужно убедиться, что они установлены.

Основным важным является добавление следующих флагов env перед запуском приложения.

В вашей.envдобавлять:

      SILKY_PYTHON_PROFILER=True

Если у вас естьSILKY_INTERCEPT_FUNCметод в вашей гарантии, что он возвращает правильное логическое значение на основе запроса, например

      def SILKY_INTERCEPT_FUNC(request):
    """log only session has recording enabled."""
    return 'record_requests' in request.session

Кроме того, убедитесь, что вы добавляете промежуточное ПО шелка в правильном порядке.

Вsettings.pyдобавьте следующее:

      MIDDLEWARE = [
    ...
    'silk.middleware.SilkyMiddleware',
    ...
]

INSTALLED_APPS = (
    ...
    'silk'
)

Примечание. Размещение промежуточного программного обеспечения является конфиденциальным. Если промежуточное ПО, предшествующее silk.middleware.SilkyMiddleware, вернется из process_request, тогда SilkyMiddleware никогда не сможет выполниться. Поэтому вы должны убедиться, что любое промежуточное ПО, размещенное ранее, никогда ничего не возвращает из process_request. См. документы django для получения дополнительной информации об этом.

Ссылка: https://github.com/jazzband/django-silk#installation

У меня была аналогичная проблема с конечной точкой, которая загружалась долго. Заметил, чтоMySQLпрервано соединение сError 1153 - Got a packet bigger than 'max_allowed_packet' bytes

Чтобы это исправить, обновитеmy.cnfв/etc/mysql/

      net_buffer_length=1000000 
max_allowed_packet=1000000000

или запустите:

      set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000;
Другие вопросы по тегам