oncall-engine/engine
Joey Orlando 52ff041066
Optimize duplicate queries occurring in AlertGroupFilter (#1809)
# What this PR does

In `AlertGroupFilter` we currently have 11 duplicate queries which add
~1-2secs of unecessary request latency to `GET
/api/internal/v1/alertgroups` calls.
![Screenshot 2023-04-20 at 17 57
49](https://user-images.githubusercontent.com/9406895/233589341-de5e53ca-f10b-4038-ad68-a857d1643bf2.png)



The queries originate from the `queryset` callable arguments on several
of the fields of the `AlertGroupFilter` class. These callables basically
filter down their respective querysets to include only objects that
belong to the currently authenticated user's organization.

The duplicate queries are
- 2 queries to fetch integrations
- 2 queries to fetch escalation chains
- 10 queries to fetch users

At the moment, this PR is still a draft and doesn't work as intended.
It's based off of [a suggestion from this
discussion](https://github.com/carltongibson/django-filter/discussions/1572#discussioncomment-5676042)
in the `django-filter` repo. See [this DjangoCon
talk](https://youtu.be/e52S1SjuUeM?t=841) for more context.

---------

Co-authored-by: Ildar Iskhakov <Ildar.iskhakov@grafana.com>
2023-04-26 06:16:29 +00:00
..
apps Optimize duplicate queries occurring in AlertGroupFilter (#1809) 2023-04-26 06:16:29 +00:00
common Add is_default fields to templates, remove WritableSerialiserMethodFi… (#1759) 2023-04-18 04:44:51 +00:00
config_integrations Inbound email integration (#837) 2023-03-16 13:59:21 +08:00
engine Specify celery worker queue in pyroscope tags 2023-03-28 13:26:03 +08:00
settings Fix documentation links (#1766) 2023-04-19 10:12:16 +01:00
static/images World, meet OnCall! 2022-06-03 08:09:47 -06:00
.dockerignore One startup command to rule them all (#760) 2022-11-07 16:34:43 +01:00
.gitignore modify push notification settings + use fcm-django library (#998) 2022-12-20 12:41:34 +01:00
celery_with_exporter.sh Add flag to debug logs (#912) 2022-11-29 11:16:42 +08:00
conftest.py Mobile app settings backend (#1571) 2023-03-22 14:47:18 +00:00
Dockerfile Add silk setting to store .prof files in the specific folder and share it between uwsgi workers (#1228) 2023-01-26 20:33:04 +08:00
manage.py World, meet OnCall! 2022-06-03 08:09:47 -06:00
pyproject.toml World, meet OnCall! 2022-06-03 08:09:47 -06:00
requirements.txt modify check_escalation_finished_task task (#1266) 2023-03-17 10:14:08 +00:00
tox.ini Add RBAC Support (#777) 2022-11-29 09:41:56 +01:00
uwsgi.ini Configure pyroscope (#1638) 2023-03-28 11:34:37 +08:00
wait_for_test_mysql_start.sh Revert "Revert "speed up ci builds from 15 to <7 minutes"" (#1643) 2023-03-28 09:34:03 +02:00