Gate Django Silk behind ENABLE_SILK flag#103
Merged
Merged
Conversation
Silk was tied to DEBUG, which meant any local Docker run paid Silk's per-request overhead (extra DB writes, profiler hooks) whether or not profiling was actually wanted. Move the gate to a dedicated ENABLE_SILK env var (default False) so Silk only loads when explicitly opted in. Wired into docker-compose.local.yml for both web and worker. To profile locally: add ENABLE_SILK=True to .env, restart, hit /silk/.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
DEBUG=True, which meant every local Docker run paid Silk's per-request overhead (extra DB writes, profiler hooks) regardless of whether profiling was actually wanted.DEBUGgate with a dedicatedENABLE_SILKenv var (defaultFalse) insettings.pyandurls.py.ENABLE_SILK=${ENABLE_SILK:-False}into bothwebandworkerservices indocker-compose.local.yml, and documented the flag in.env.example.How to enable Silk
Add
ENABLE_SILK=Trueto.env, then:```bash
docker-compose -f docker-compose.local.yml up --build -d
Visit http://localhost:8000/silk/
```
Default is off, so day-to-day Docker runs no longer pay the Silk overhead.
Test plan
docker-compose -f docker-compose.local.yml up --build -dwith noENABLE_SILKin.env—/silk/should 404 andsilkshould not appear inINSTALLED_APPS.ENABLE_SILK=Trueto.env, rebuild —/silk/loads the Silk dashboard and middleware records requests.