Metadata-Version: 2.1
Name: production-request
Version: 0.4.2
Summary: Metric collector for production
Home-page: UNKNOWN
Author: Dmitriy Chernyshov
Author-email: dechernyshov@bars.group
License: BSD
Platform: UNKNOWN
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: django
Requires-Dist: m3-legacy
Requires-Dist: psutil
Requires-Dist: celery

production-request
===============================

author: BARS Group

Описание
--------

Позволяет логировать метрики запросов
(клиенсткое время, серверное время, время SQL) в production-средах


Установка
---------

Установка производится командой
-e git+https://stash.bars-open.ru/scm/budg/production_request.git@master#egg=production_request. 
При этом необходимо, чтобы при запуске *pip install* в качестве альтернативного 
index-url был указан http://pypi.bars-open.ru/simple/ 


Настройка
---------

Для подключения логирования необходимо:

1. В качестве *DATABASE_ENGINE* указать *production_request.DatabaseWrapper*
2. Добавить *ProductionRequestLoggingMiddleware* в перечень *MIDDLEWARE*
3. Подключить к рабочему столу *production_request_client.js* и *xhr_interceptor.js*
4. Зарегистрировать *ProductionRequestPack* в контроллере
5. Выполнить в инициализации шаблона рабочего стола функцию *startLogging*. 
Данная функция принимает на вход URL action'а *action_save_client_log* из предыдущего пункта
6. Если необходимо логировать celery-task, то в *CELERY_IMPORTS* нужно добавить *'production_request.celery_handlers'* 

## История изменений

**0.4.2**
- Исправлено логирование времени в разрезе типов SQL-операций

**0.4.1**
- Добавлена совместимость с middleware Django 2.*

**0.4.0**
- Добавлен декоратор production_request для работы с запросами, отличными от web
- Исправлен подсчет памяти при конвертации единиц измерения
- Добавлен подсчет времени SQL в разрезе операций
- Добавлены обработчики для логирования celery-задач
- Добавлено логирование длительности и количества транзакций

**0.0.3.4**
- Отключена транзакция на action сохранения результата клиенсткого лога

**0.0.3.3**
- Добавлена обработка отрицательных значений в c_total

**0.0.3.2**
- Добавлена обработка не HTTP-request'ов
- Добавлено логирование имени хоста, на котором производилась обработка запроса

**0.0.3.1**
- Исправлена ошибка с обработкой exception в middleware

**0.0.3**
- Убрана зависимость от BaseEnumerate
- Изменено пространство имен c Ext3 на Ext
- В типы операций SQL добавлены COMMIT и SAVEPOINT
- Изменен алгоритм генерации uuid для уменьшения размера лога
- Добавлен id пользователя в параметры логирования
- Добавлены метрики памяти процесса в параметры логирования (экспериментально)
- Добавлен pid процесса в параметры логирования
- Добавлено отдельное логирование моментов входа и выхода запроса с минимальным набором параметров
- Добавлен отдельный модуль для логирования метрки процессов (CPU и memory) по имени
- Добавлено сохранение логов в файлы в виде валидного JSON
- В типы операций SQL добавлены JOIN, DISTINCT и GROUP BY


**0.0.2**
- Добавлено логирование количества SQL-запросов в разрезе типов на клиенте
- Добавлен подсчет количества sql-запросов в разрезе типов (select, insert, update, delete)
- При отключенном логировании на стороне клиента - заголовки http больше не отправлюятся, чтобы сократить размер ответа
- В метрики добавлен подсчет количества SQL запросов
- В метрики добавлен подсчет времени работы приложения без учета sql запросов
- В подсчет времени sql добавлен учет времени commit
- Исправлена сборка статики при создании пакета
- Обновлена информация по пакете

