Grafana OnCall engine fork — self-hosted on-call scheduler and alert router
Find a file
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
.github run e2e tests against grafana 8.5.22 on CI job (#1729) 2023-04-12 12:56:14 +02:00
dev Fix documentation links (#1766) 2023-04-19 10:12:16 +01:00
docs Use centralized make-docs script from Writers' Toolkit (#1742) 2023-04-24 08:52:43 +00:00
engine Optimize duplicate queries occurring in AlertGroupFilter (#1809) 2023-04-26 06:16:29 +00:00
examples/terraform Terraform examples 2022-08-11 14:32:39 +05:00
grafana-plugin Add is_legacy column to handle webhook migration (#1813) 2023-04-25 11:22:56 -03:00
helm Extend twilio secrets (#1435) 2023-04-21 17:21:06 +03:00
tools Update PD migrator docs (#1777) 2023-04-18 12:44:00 +00:00
.drone.yml Update ci jobs to node:14.17.0-buster from node:14.17.0-stretch (#1812) 2023-04-25 15:44:08 +08:00
.gitignore ignore .http file extensions (#1762) 2023-04-17 10:52:03 +02:00
.markdownlint.json add precommit rules for markdown/json files (#915) 2022-12-01 14:26:54 +01:00
.markdownlintignore Add tracing support 2022-12-19 17:15:06 +08:00
.nvmrc One startup command to rule them all (#760) 2022-11-07 16:34:43 +01:00
.pre-commit-config.yaml fix failing lint github actions job due to issue w/ isort version (#1249) 2023-01-30 11:43:15 +01:00
CHANGELOG.md Optimize duplicate queries occurring in AlertGroupFilter (#1809) 2023-04-26 06:16:29 +00:00
CODE_OF_CONDUCT.md add precommit rules for markdown/json files (#915) 2022-12-01 14:26:54 +01:00
docker-compose-developer.yml Add new grafana topnav menu to developer docker-compose (#1590) 2023-03-22 01:47:54 +08:00
docker-compose-mysql-rabbitmq.yml Use latest Grafana Container Images (#1227) 2023-02-02 07:46:39 +01:00
docker-compose.yml Use latest Grafana Container Images (#1227) 2023-02-02 07:46:39 +01:00
GOVERNANCE.md add precommit rules for markdown/json files (#915) 2022-12-01 14:26:54 +01:00
LICENSE World, meet OnCall! 2022-06-03 08:09:47 -06:00
LICENSING.md add precommit rules for markdown/json files (#915) 2022-12-01 14:26:54 +01:00
MAINTAINERS.md add precommit rules for markdown/json files (#915) 2022-12-01 14:26:54 +01:00
Makefile Add "make help" command (#1583) 2023-03-21 08:12:13 +00:00
README.md Make screenshots bigger in README.md (#1799) 2023-04-20 13:26:12 +08:00
screenshot.png Merge dev to main (#54) 2022-06-13 16:39:58 -06:00
screenshot_mobile.png Readme updates 2023-04-11 15:43:52 +03:00
SECURITY.md add precommit rules for markdown/json files (#915) 2022-12-01 14:26:54 +01:00

Grafana OnCall

Latest Release License Docker Pulls Slack Discussion Build Status

Developer-friendly incident response with brilliant Slack integration.

  • Collect and analyze alerts from multiple monitoring systems
  • On-call rotations based on schedules
  • Automatic escalations
  • Phone calls, SMS, Slack, Telegram notifications

Getting Started

We prepared multiple environments:

  1. Download docker-compose.yml:

    curl -fsSL https://raw.githubusercontent.com/grafana/oncall/dev/docker-compose.yml -o docker-compose.yml
    
  2. Set variables:

    echo "DOMAIN=http://localhost:8080
    COMPOSE_PROFILES=with_grafana  # Remove this line if you want to use existing grafana
    SECRET_KEY=my_random_secret_must_be_more_than_32_characters_long" > .env
    
  3. Launch services:

    docker-compose pull && docker-compose up -d
    
  4. Go to OnCall Plugin Configuration, using log in credentials as defined above: admin/admin (or find OnCall plugin in configuration->plugins) and connect OnCall plugin with OnCall backend:

    OnCall backend URL: http://engine:8080
    
  5. Enjoy! Check our OSS docs if you want to set up Slack, Telegram, Twilio or SMS/calls through Grafana Cloud.

Update version

To update your Grafana OnCall hobby environment:

# Update Docker image
docker-compose pull engine

# Re-deploy
docker-compose up -d

After updating the engine, you'll also need to click the "Update" button on the plugin version page. See Grafana docs for more info on updating Grafana plugins.

Join community

Stargazers over time

Stargazers over time

Further Reading