From 4a8011d236a1d9b66507fba37e0fc2330a073723 Mon Sep 17 00:00:00 2001 From: Ildar Iskhakov Date: Thu, 26 Jan 2023 20:33:04 +0800 Subject: [PATCH] Add silk setting to store .prof files in the specific folder and share it between uwsgi workers (#1228) # What this PR does ## Which issue(s) this PR fixes ## Checklist - [ ] Tests updated - [ ] Documentation added - [ ] `CHANGELOG.md` updated --- engine/Dockerfile | 4 ++++ engine/settings/base.py | 3 +++ 2 files changed, 7 insertions(+) diff --git a/engine/Dockerfile b/engine/Dockerfile index 15ff4503..d1fd5abf 100644 --- a/engine/Dockerfile +++ b/engine/Dockerfile @@ -23,6 +23,10 @@ RUN mkdir -p /var/lib/oncall RUN DJANGO_SETTINGS_MODULE=settings.prod_without_db DATABASE_TYPE=sqlite3 DATABASE_NAME=/var/lib/oncall/oncall.db SECRET_KEY="ThEmUsTSecretKEYforBUILDstage123" SILK_PROFILER_ENABLED="True" python manage.py collectstatic --no-input RUN chown -R 1000:2000 /var/lib/oncall +# This is required for silk profilers to sync between uwsgi workers +RUN mkdir -p /tmp/silk_profiles; +RUN chown -R 1000:2000 /tmp/silk_profiles + FROM base AS dev RUN apt-get install -y sqlite3 default-mysql-client postgresql-client diff --git a/engine/settings/base.py b/engine/settings/base.py index 343fc996..cd4e8237 100644 --- a/engine/settings/base.py +++ b/engine/settings/base.py @@ -477,6 +477,9 @@ if SILK_PROFILER_ENABLED: SILKY_PYTHON_PROFILER_BINARY = getenv_boolean("SILKY_PYTHON_PROFILER_BINARY", default=False) SILKY_MAX_RECORDED_REQUESTS = 10**4 SILKY_PYTHON_PROFILER = True + SILKY_IGNORE_PATHS = ["/health/", "/ready/"] + if "SILKY_PYTHON_PROFILER_RESULT_PATH" in os.environ: + SILKY_PYTHON_PROFILER_RESULT_PATH = os.environ.get("SILKY_PYTHON_PROFILER_RESULT_PATH") # get ONCALL_DJANGO_ADMIN_PATH from env and add trailing / to it ONCALL_DJANGO_ADMIN_PATH = os.environ.get("ONCALL_DJANGO_ADMIN_PATH", "django-admin") + "/"