djangosampler jest aplikacja Django, który pozwala skosztować procent zapytań (SQL, Mongo, itp) i obejrzeć te, które są zajmują najwięcej czasu. Zapytania są pogrupowane gdzie pochodzi z w kodzie.
instalacji
Zainstaluj:
python setup.py install
Skonfiguruj:
- Dodaj djangosampler do INSTALLED_APPS
- Dodaj tabele (manage.py syncdb lub manage.py migracji jeśli używasz South)
- Dodaj poglądy:
& Nbsp; urlpatterns + = patterns ('',
& Nbsp; (r '^ sampler /' obejmują ('djangosampler.urls')),
& Nbsp;)
- Zestaw DJANGO_SAMPLER_FREQ na wartość inną niż 0
- Ustaw DJANGO_SAMPLER_PLUGINS do listy wtyczek. Za jedyne sensowne próbkowania SQL domyślny jest:
& Nbsp; DJANGO_SAMPLER_PLUGINS = (
& Nbsp; "djangosampler.plugins.sql.Sql",
& Nbsp; # Wtyczki stosowane są w takiej samej kolejności jak na tej liście
& Nbsp;)
- Istnieje kilka wtyczek dostępne i warto czytania przez nich, aby w pełni korzystać z tego narzędzia.
- Jeśli używasz pobierania próbek w oparciu kosztów ustaw DJANGO_SAMPLER_BASE_TIME do oczekiwanego czasu trwania normalnego kwerendy w sekundach. Domyślnie opcja ta jest ustawiona na 5 ms.
Wyświetlanie wyników
Po zakręcanie sampler na jakiś czas będzie można zobaczyć zapytania (pogrupowane według ich pochodzenia) na URL skonfigurowany.
Konfiguracja
DJANGO_SAMPLER_PLUGINS
Django Sampler ma architekturę wtyczek, pozwalające kontrolować, ile danych chcesz być gromadzone.
W settings.py dodać:
DJANGO_SAMPLER_PLUGINS = (
& Nbsp; "djangosampler.plugins.sql.Sql",
& Nbsp; # Wtyczki stosowane są w takiej samej kolejności jak na tej liście
)
Powyższy przykład doda wtyczki SQL.
Dostępnych wtyczek i ich ustawienia są opisane w sekcji Wtyczki poniżej.
DJANGO_SAMPLER_FREQ
DJANGO_SAMPLER_FREQ konfiguruje procent zapytań, które będą rejestrowane. Powinna ona wynosić pomiędzy 0,0 a 1,0.
Jeśli to nie jest to żadne wtyczki zostaną zainstalowane i Twój kod będzie działał normalnie.
DJANGO_SAMPLER_USE_COST
DJANGO_SAMPLER_USE_COST umożliwi pobieranie próbek kosztowej. To powoduje, że działają dla zapytania dawno mają być pobrane próbki częściej niż krótkich pytań.
Szansa, że zapytanie jest próbą jest mnożona przez całkowity czas zapytanie trwa. Jeśli zapytanie trwa 2 sekundy to będzie dwa razy częściej mają być pobrane próbki, jak kwerendy, która trwa 1 sekundę.
Koszt zapytania nastawia się uwagę na to, jak następuje:
Koszt = max (1.0, razem * DJANGO_SAMPLER_FREQ) / DJANGO_SAMPLER_FREQ
Wtyczki
Lista dostępnych wtyczek następująco. Możesz napisać własną wtyczkę i to jest opisane w sekcji "Pisanie własną Plugins".
Django SQL
Plugin klasy: djangosampler.plugins.sql.Sql
Wtyczka SQL sampler skosztować procent zapytań SQL, które występują w aplikacji. Próbki zostaną pogrupowane według zapytania i stosu śladów będą rejestrowane znaleźć gdzie pytania są pochodzące.
Wnioski Django
Plugin klasy: djangosampler.plugins.request.Request
Wtyczka wniosek instaluje Middleware, że będzie spróbować czasu potrzebnego wniosków.
Próbki kodu
To nie jest ściśle wtyczki. To kierownik kontekst, który pozwala zaznaczyć bloki kodu i spróbować, jak długo bloki podjąć, aby uruchomić. Np .:
z djangosampler.sampler pobierania próbek importu
z pobieraniem próbek ("my_code", "some_fn"):
& Nbsp; do_something_slow ()
Seler
Plugin klasy: djangosampler.plugins.celery_task.Celery
Wtyczka wykorzystuje sygnały Seler Seler do próby czasu potrzebnego do wykonania zadania.
MongoDB
Plugin klasy: djangosampler.plugins.mongo.Mongo
Wtyczka MongoDB będzie skosztować procent Mongo poleceń (kwerend, wkładki, itp), które pojawiają się w aplikacji. Próbki zostaną pogrupowane według polecenia i układać ślady będą rejestrowane znaleźć gdzie pytania są pochodzące
Wymagania .
- Python
- Django
Komentarze nie znaleziono