2022-06-13 12:11:38 +03:00
---
2024-02-08 15:59:28 -07:00
title: Grafana OnCall open source guide
menuTitle: Open source
description: Installation and setup configuration details for open source Grafana OnCall
weight: 300
2022-06-13 12:11:38 +03:00
keywords:
2024-02-08 15:59:28 -07:00
- OnCall
- Open source
- OSS
- Install
canonical: https://grafana.com/docs/oncall/latest/set-up/open-source/
aliases:
- /docs/grafana-cloud/alerting-and-irm/oncall/set-up/open-source/
- /docs/grafana-cloud/alerting-and-irm/oncall/open-source/
- ../open-source/ # /docs/oncall/< ONCALL_VERSION > /open-source/
2024-07-29 15:13:24 +01:00
refs:
grafana-oncall-mobile-app:
- pattern: /docs/oncall/
destination: /docs/oncall/< ONCALL_VERSION > /manage/mobile-app/
- pattern: /docs/grafana-cloud/
destination: /docs/grafana-cloud/alerting-and-irm/oncall/manage/mobile-app/
inbound-email-integration:
- pattern: /docs/oncall/
destination: /docs/oncall/< ONCALL_VERSION > /configure/integrations/references/inbound-email/
- pattern: /docs/grafana-cloud/
destination: /docs/grafana-cloud/alerting-and-irm/oncall/configure/integrations/references/inbound-email/
2022-06-13 12:11:38 +03:00
---
2022-06-16 16:09:42 -06:00
# Grafana OnCall open source guide
2022-06-13 12:11:38 +03:00
2022-12-01 14:26:54 +01:00
Grafana OnCall is a developer-friendly incident response tool that's available to Grafana open source and Grafana Cloud
users. The OSS version of Grafana OnCall provides the same reliable on-call management solution along with the
flexibility of a self-managed environment.
2022-06-14 16:52:36 -06:00
2022-06-30 17:18:05 +03:00
This guide describes the necessary installation and configuration steps needed to configure OSS Grafana OnCall.
2022-06-14 16:52:36 -06:00
## Install Grafana OnCall OSS
There are three Grafana OnCall OSS environments available:
- **Hobby** playground environment for local usage: [README.md ](https://github.com/grafana/oncall#getting-started )
2022-11-07 16:34:43 +01:00
- **Development** environment for contributors: [development README.md ](https://github.com/grafana/oncall/blob/dev/dev/README.md )
2022-06-30 17:18:05 +03:00
- **Production** environment for reliable cloud installation using Helm: [Production Environment ](#production-environment )
## Production Environment
2022-06-14 16:52:36 -06:00
2022-12-01 14:26:54 +01:00
We suggest using our official helm chart for the reliable production deployment of Grafana OnCall. It will deploy
Grafana OnCall engine and celery workers, along with RabbitMQ cluster, Redis Cluster, and the database.
2022-08-17 01:56:04 -06:00
2022-12-01 14:26:54 +01:00
> **Note:** The Grafana OnCall engine currently supports one instance of the Grafana OnCall plugin at a time.
2022-06-14 16:52:36 -06:00
2022-12-01 14:26:54 +01:00
Check the [helm chart ](https://github.com/grafana/oncall/tree/dev/helm/oncall ) for more details.
We'll always be happy to provide assistance with production deployment in [our communities ](https://github.com/grafana/oncall#join-community )!
2022-06-14 16:52:36 -06:00
2022-07-18 14:05:03 +01:00
## Update Grafana OnCall OSS
2022-12-01 14:26:54 +01:00
2022-07-18 14:05:03 +01:00
To update an OSS installation of Grafana OnCall, please see the update docs:
2022-12-01 14:26:54 +01:00
2022-07-19 08:47:17 +01:00
- **Hobby** playground environment: [README.md ](https://github.com/grafana/oncall#update-version )
2022-07-18 14:05:03 +01:00
- **Production** Helm environment: [Helm update ](https://github.com/grafana/oncall/tree/dev/helm/oncall#update )
2022-06-30 17:18:05 +03:00
## Slack Setup
2022-06-13 15:33:56 +03:00
2022-12-01 14:26:54 +01:00
The Slack integration for Grafana OnCall leverages Slack API features to provide a customizable and useful integration.
Refer to the following steps to configure the Slack integration:
2022-06-14 16:52:36 -06:00
2023-06-12 19:35:21 +03:00
1. Ensure your Grafana OnCall environment is up and running
1. Set `FEATURE_SLACK_INTEGRATION_ENABLED` as True
2022-06-14 16:52:36 -06:00
2022-12-01 14:26:54 +01:00
1. Grafana OnCall must be accessible through HTTPS. For development purposes, use [localtunnel ](https://github.com/localtunnel/localtunnel ).
For production purposes, consider establishing a proper web server with HTTPS termination.
For localtunnel, refer to the following configuration:
2022-06-13 12:11:38 +03:00
```bash
# Choose the unique prefix instead of pretty-turkey-83
# Localtunnel will generate an url, e.g. https://pretty-turkey-83.loca.lt
# it is referred as <ONCALL_ENGINE_PUBLIC_URL> below
2022-06-14 09:14:45 -06:00
lt --port 8080 -s pretty-turkey-83 --print-requests
2022-06-13 12:11:38 +03:00
```
2022-06-16 16:09:42 -06:00
1. If using localtunnel, open your external URL and click **Continue** to allow requests to bypass the warning page.
2022-06-13 12:11:38 +03:00
2022-06-16 16:09:42 -06:00
1. [Create a Slack Workspace ](https://slack.com/create ) for development, or use your company workspace.
2022-06-13 12:11:38 +03:00
2022-12-01 14:26:54 +01:00
1. Go to < https: // api . slack . com / apps > and click **Create an App** .
2022-06-13 12:11:38 +03:00
2022-06-16 16:09:42 -06:00
1. Select `From an app manifest` option and select your workspace.
2022-06-13 12:11:38 +03:00
2022-12-01 14:26:54 +01:00
1. Replace the text with the following YAML code block . Be sure to replace `<YOUR_BOT_NAME>` and `<ONCALL_ENGINE_PUBLIC_URL>`
fields with the appropriate information.
```yaml
_metadata:
major_version: 1
minor_version: 1
display_information:
name: < YOUR_BOT_NAME >
features:
app_home:
2023-01-17 20:13:51 +00:00
home_tab_enabled: false
2022-12-01 14:26:54 +01:00
messages_tab_enabled: true
messages_tab_read_only_enabled: false
bot_user:
display_name: < YOUR_BOT_NAME >
always_online: true
shortcuts:
- name: Add to resolution note
type: message
callback_id: add_resolution_note
description: Add this message to resolution note
slash_commands:
2023-02-06 09:21:15 -03:00
- command: /escalate
url: < ONCALL_ENGINE_PUBLIC_URL > /slack/interactive_api_endpoint/
Add responders improvements (#3128)
# What this PR does
https://www.loom.com/share/c5e10b5ec51343d0954c6f41cfd6a5fb
## Summary of backend changes
- Add `AlertReceiveChannel.get_orgs_direct_paging_integrations` method
and `AlertReceiveChannel.is_contactable` property. These are needed to
be able to (optionally) filter down teams, in the `GET /teams` internal
API endpoint
([here](https://github.com/grafana/oncall/pull/3128/files#diff-a4bd76e557f7e11dafb28a52c1034c075028c693b3c12d702d53c07fc6f24c05R55-R63)),
to just teams that have a "contactable" Direct Paging integration
- `engine/apps/alerts/paging.py`
- update these functions to support new UX. In short `direct_paging` no
longer takes a list of `ScheduleNotifications` or an `EscalationChain`
object
- add `user_is_oncall` helper function
- add `_construct_title` helper function. In short if no `title` is
provided, which is the case for Direct Pages originating from OnCall
(either UI or Slack), then the format is `f"{from_user.username} is
paging <team.name (if team is specified> <comma separated list of
user.usernames> to join escalation"`
- `engine/apps/api/serializers/team.py` - add
`number_of_users_currently_oncall` attribute to response schema
([code](https://github.com/grafana/oncall/pull/3128/files#diff-26af48f796c9e987a76447586dd0f92349783d6ea6a0b6039a2f0f28bd58c2ebR45-R52))
- `engine/apps/api/serializers/user.py` - add `is_currently_oncall`
attribute to response schema
([code](https://github.com/grafana/oncall/pull/3128/files#diff-6744b5544ebb120437af98a996da5ad7d48ee1139a6112c7e3904010ab98f232R157-R162))
- `engine/apps/api/views/team.py` - add support for two new optional
query params `only_include_notifiable_teams` and `include_no_team`
([code](https://github.com/grafana/oncall/pull/3128/files#diff-a4bd76e557f7e11dafb28a52c1034c075028c693b3c12d702d53c07fc6f24c05R55-R70))
- `engine/apps/api/views/user.py`
- in the `GET /users` internal API endpoint, when specifying the
`search` query param now also search on `teams__name`
([code](https://github.com/grafana/oncall/pull/3128/files#diff-30309629484ad28e6fe09816e1bd226226d652ea977b6f3b6775976c729bf4b5R223);
this is a new UX requirement)
- add support for a new optional query param, `is_currently_oncall`, to
allow filtering users based on.. whether they are currently on call or
not
([code](https://github.com/grafana/oncall/pull/3128/files#diff-30309629484ad28e6fe09816e1bd226226d652ea977b6f3b6775976c729bf4b5R272-R282))
- remove `check_availability` endpoint (no longer used with new UX; also
removed references in frontend code)
- `engine/apps/slack/scenarios/paging.py` and
`engine/apps/slack/scenarios/manage_responders.py` - update Slack
workflows to support new UX. Schedules are no longer a concept here.
When creating a new alert group via `/escalate` the user either
specifies a team and/or user(s) (they must specify at least one of the
two and validation is done here to check this). When adding responders
to an existing alert group it's simply a list of users that they can
add, no more schedules.
- add `Organization.slack_is_configured` and
`Organization.telegram_is_configured` properties. These are needed to
support [this new functionality
](https://github.com/grafana/oncall/pull/3128/files#diff-9d96504027309f2bd1e95352bac1433b09b60eb4fafb611b52a6c15ed16cbc48R271-R272)
in the `AlertReceiveChannel` model.
## Summary of frontend changes
- Refactor/rename `EscalationVariants` component to `AddResponders` +
remove `grafana-plugin/src/containers/UserWarningModal` (no longer
needed with new UX)
- Remove `grafana-plugin/src/models/user.ts` as it seemed to be a
duplicate of `grafana-plugin/src/models/user/user.types.ts`
Related to https://github.com/grafana/incident/issues/4278
- Closes #3115
- Closes #3116
- Closes #3117
- Closes #3118
- Closes #3177
## TODO
- [x] make frontend changes
- [x] update Slack backend functionality
- [x] update public documentation
- [x] add/update e2e tests
## Post-deploy To-dos
- [ ] update dev/ops/production Slack bots to update `/escalate` command
description (should now say "Direct page a team or user(s)")
## Checklist
- [x] Unit, integration, and e2e (if applicable) tests updated
- [x] Documentation added (or `pr:no public docs` PR label added if not
required)
- [x] `CHANGELOG.md` updated (or `pr:no changelog` PR label added if not
required)
2023-10-27 12:12:07 -04:00
description: Direct page a team or user(s)
2022-12-01 14:26:54 +01:00
should_escape: false
oauth_config:
redirect_urls:
- < ONCALL_ENGINE_PUBLIC_URL > /api/internal/v1/complete/slack-install-free/
- < ONCALL_ENGINE_PUBLIC_URL > /api/internal/v1/complete/slack-login/
scopes:
user:
- channels:read
- identify
- users.profile:read
bot:
- app_mentions:read
- channels:history
- channels:read
- chat:write
- chat:write.customize
- chat:write.public
- commands
- files:write
- groups:history
- groups:read
- im:history
- im:read
- im:write
- mpim:history
- mpim:read
- mpim:write
- reactions:write
- team:read
- usergroups:read
- usergroups:write
- users.profile:read
- users:read
- users:read.email
- users:write
settings:
event_subscriptions:
request_url: < ONCALL_ENGINE_PUBLIC_URL > /slack/event_api_endpoint/
bot_events:
- app_home_opened
- app_mention
- channel_archive
- channel_created
- channel_deleted
- channel_rename
- channel_unarchive
- member_joined_channel
- message.channels
- message.im
- subteam_created
- subteam_members_changed
- subteam_updated
2023-05-15 17:32:06 +01:00
- user_profile_changed
2022-12-01 14:26:54 +01:00
interactivity:
is_enabled: true
request_url: < ONCALL_ENGINE_PUBLIC_URL > /slack/interactive_api_endpoint/
org_deploy_enabled: false
socket_mode_enabled: false
```
2022-06-13 12:11:38 +03:00
2022-06-16 16:09:42 -06:00
1. Set environment variables by navigating to your Grafana OnCall, then click **Env Variables** and set the following:
2022-12-01 14:26:54 +01:00
```text
SLACK_CLIENT_OAUTH_ID = Basic Information -> App Credentials -> Client ID
SLACK_CLIENT_OAUTH_SECRET = Basic Information -> App Credentials -> Client Secret
SLACK_SIGNING_SECRET = Basic Information -> App Credentials -> Signing Secret
SLACK_INSTALL_RETURN_REDIRECT_HOST = < < OnCall external URL > >
```
2022-06-13 12:11:38 +03:00
2022-06-16 16:09:42 -06:00
1. In OnCall, navigate to **ChatOps** , select Slack and click **Install Slack integration** .
2022-06-14 16:52:36 -06:00
2022-06-16 16:09:42 -06:00
1. Configure additional Slack settings.
2022-06-14 16:52:36 -06:00
2022-06-30 17:18:05 +03:00
## Telegram Setup
2022-06-14 16:52:36 -06:00
2023-06-12 19:35:21 +03:00
< iframe width = "560" height = "315" src = "https://www.youtube.com/embed/YMDFZP7Dxns" title = "YouTube video player"
frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture;
web-share" allowfullscreen>< / iframe >
2022-12-01 14:26:54 +01:00
The Telegram integration for Grafana OnCall is designed for collaborative team work and improved incident response.
2023-08-24 13:12:24 +06:00
It's available in two options: using Webhooks or Long Polling.
2022-12-01 14:26:54 +01:00
Refer to the following steps to configure the Telegram integration:
2022-06-14 16:52:36 -06:00
2022-12-01 14:26:54 +01:00
1. Ensure your Grafana OnCall environment is up and running.
2023-06-12 19:35:21 +03:00
2. Set `FEATURE_TELEGRAM_INTEGRATION_ENABLED` as "True"
2023-08-24 13:12:24 +06:00
3. (Long Polling only) Set `FEATURE_TELEGRAM_LONG_POLLING_ENABLED` as "True"
4. Create a Telegram bot using [BotFather ](https://t.me/BotFather ) and save the token provided by BotFather. Please make
2022-12-01 14:26:54 +01:00
sure to disable **Group Privacy** for the bot (Bot Settings -> Group Privacy -> Turn off).
2023-08-24 13:12:24 +06:00
5. Paste the token provided by BotFather to the `TELEGRAM_TOKEN` variable on the **Env Variables** page of your
2022-12-01 14:26:54 +01:00
Grafana OnCall instance.
2023-08-24 13:12:24 +06:00
6. (Webhook only) Set the `TELEGRAM_WEBHOOK_HOST` variable to the external address of your Grafana OnCall instance. Please note
2022-12-01 14:26:54 +01:00
that `TELEGRAM_WEBHOOK_HOST` must start with `https://` and be publicly available (meaning that it can be reached by
Telegram servers). If your host is private or local, consider using a reverse proxy (e.g. [ngrok ](https://ngrok.com )).
2023-08-24 13:12:24 +06:00
7. Now you can connect Telegram accounts on the **Users** page and receive alert groups to Telegram direct messages.
2022-12-01 14:26:54 +01:00
Alternatively, in case you want to connect Telegram channels to your Grafana OnCall environment, navigate
to the **ChatOps** tab.
2022-06-13 16:39:58 -06:00
2025-04-21 14:23:37 -03:00
## Mattermost Setup
2022-06-13 16:39:58 -06:00
2025-04-21 14:23:37 -03:00
The Mattermost integration of the Grafana OnCall is designed for collobarative team work and improved incident response.
Refer to the following steps to configure the Mattermost integration:
1. Ensure your Grafana OnCall environment is up and running.
2. Set `FEATURE_MATTERMOST_INTEGRATION_ENABLED` as "True".
3. Create a Mattermost bot account [Ref ](https://developers.mattermost.com/integrate/reference/bot-accounts/#bot-account-creation )
and save the token generated (NOTE: you may need to give the bot admin permissions
to make it possible for it to update alert group notifications).
4. Add the bot to the Mattermost team(s) owning the channels you want to connect to
(via Mattermost System console -> User Management -> Teams).
5. Set the token generated in the `MATTERMOST_BOT_TOKEN` variable on the **ENV Variables** page
of your Grafana OnCall instance.
6. [Create OAuth 2.0 Application In Mattermost ](https://developers.mattermost.com/integrate/apps/authentication/oauth2/#register-an-oauth-20-application ).
The callback url for the OAuth application should be,
```text
https://< ONCALL_ENGINE_PUBLIC_URL > /api/internal/v1/complete/mattermost-login/
```
This will allow users to connect their OnCall accounts with Mattermost. The OAuth credentials will be needed later.
7. Generate a JWT secret for authenticating the incoming event messages from Mattermost
and set it as the `MATTERMOST_SIGNING_SECRET` variable on the **ENV Variables** page of your Grafana OnCall instance.
8. Set the following environment variables too:
```text
MATTERMOST_CLIENT_OAUTH_ID = < < Integrations - > OAuth 2.0 Applications -> Client ID >>
MATTERMOST_CLIENT_OAUTH_SECRET = < < Integrations - > OAuth 2.0 Applications -> Client Secret >>
MATTERMOST_HOST = < < Mattermost server URL > >
MATTERMOST_LOGIN_RETURN_REDIRECT_HOST = < < OnCall external URL > >
```
2022-12-01 14:26:54 +01:00
2022-06-14 16:52:36 -06:00
- SMS for user notifications
- Phone calls for user notifications.
2022-06-13 16:39:58 -06:00
2023-11-07 11:08:39 +01:00
To connect to Grafana Cloud OnCall, refer to the **Cloud** page in your OSS Grafana OnCall instance.
2022-06-13 16:39:58 -06:00
2024-12-16 13:45:59 -03:00
Check the Settings page for the Grafana Cloud OnCall API URL. If it's not `https://oncall-prod-us-central-0.grafana.net/oncall` ,
2024-12-16 13:01:02 -03:00
you will need to set the `GRAFANA_CLOUD_ONCALL_API_URL` variable in your self-hosted OnCall, so that it can connect properly.
2023-07-05 08:55:53 +03:00
## Supported Phone Providers
2024-06-06 11:49:02 +05:30
### Exotel
Grafana OnCall supports Exotel phone call notifications delivery. To configure phone call notifications using Exotel,
complete the following steps:
1. Set `GRAFANA_CLOUD_NOTIFICATIONS_ENABLED` as **False** to ensure the Grafana OSS < - > Cloud connector is disabled.
2. Change `PHONE_PROVIDER` value to `exotel` .
3. `EXOTEL_ACCOUNT_SID` can be found under DEVELOPER SETTINGS->API Settings
4. `EXOTEL_API_KEY` and `EXOTEL_API_TOKEN` can also be found under DEVELOPER SETTINGS->API Settings
5. `EXOTEL_APP_ID` is the identifier of the flow (or applet) which can be found under MANAGE->App Bazaar (Installed apps)
6. `EXOTEL_CALLER_ID` is the Exophone / Exotel virtual number.
7. `EXOTEL_SMS_SENDER_ID` is the SMS Sender ID to use for sending verification SMS, which can be found under
SMS SETTINGS->Sender ID.
8. `EXOTEL_SMS_VERIFICATION_TEMPLATE` is the SMS text template to be used for sending verification SMS, add
$verification_code as a placeholder.
9. `EXOTEL_SMS_DLT_ENTITY_ID` is the DLT Entity ID registered with TRAI.
2023-07-05 08:55:53 +03:00
### Twilio
2022-06-13 16:39:58 -06:00
2022-12-01 14:26:54 +01:00
Grafana OnCall supports Twilio SMS and phone call notifications delivery. If you prefer to configure SMS and phone call
notifications using Twilio, complete the following steps:
2022-06-13 16:39:58 -06:00
2022-06-14 16:52:36 -06:00
1. Set `GRAFANA_CLOUD_NOTIFICATIONS_ENABLED` as **False** to ensure the Grafana OSS < - > Cloud connector is disabled.
2023-10-25 22:13:45 +03:00
2. From your **OnCall** environment, select **Env Variables** and configure all variables starting with `TWILIO_` .
2022-10-19 12:32:56 +01:00
2023-07-05 08:55:53 +03:00
### Zvonok.com
Grafana OnCall supports Zvonok.com phone call notifications delivery. To configure phone call notifications using
Zvonok.com, complete the following steps:
2023-10-25 22:13:45 +03:00
1. Set `GRAFANA_CLOUD_NOTIFICATIONS_ENABLED` as **False** to ensure the Grafana OSS < - > Cloud connector is disabled.
2. Change `PHONE_PROVIDER` value to `zvonok` .
3. Create a public API key on the Profile->Settings page, and assign its value to `ZVONOK_API_KEY` .
4. Create campaign and assign its ID value to `ZVONOK_CAMPAIGN_ID` .
5. If you are planning to use pre-recorded audio instead of a speech synthesizer, you can copy the ID of the audio clip
2023-07-13 11:22:59 +02:00
to the variable `ZVONOK_AUDIO_ID` (optional step).
2023-10-25 22:13:45 +03:00
6. To make a call with a specific voice, you can set the `ZVONOK_SPEAKER_ID` .
2023-07-13 11:22:59 +02:00
By default, the ID used is `Salli` (optional step).
2024-06-04 08:34:57 +03:00
7. Create phone number verification campaign with type `tellcode` and assign its ID value to `ZVONOK_VERIFICATION_CAMPAIGN_ID` .
2024-02-08 22:05:11 +03:00
8. To process the call status, it is required to add a postback with the GET/POST method on the side of the zvonok.com
2023-07-13 11:22:59 +02:00
service with the following format (optional step):
`${ONCALL_BASE_URL}/zvonok/call_status_events?campaign_id={ct_campaign_id}&call_id={ct_call_id}&status={ct_status}&user_choice={ct_user_choice}`
2023-07-05 08:55:53 +03:00
The names of the transmitted parameters can be redefined through environment variables:
- `ZVONOK_POSTBACK_CALL_ID` - call id (ct_call_id) query parameter name
- `ZVONOK_POSTBACK_CAMPAIGN_ID` - company id (ct_campaign_id) query parameter name
- `ZVONOK_POSTBACK_STATUS` - status (ct_status) query parameter name
- `ZVONOK_POSTBACK_USER_CHOICE` - user choice (ct_user_choice) query parameter name
- `ZVONOK_POSTBACK_USER_CHOICE_ACK` - user choice (ct_user_choice) query parameter value for acknowledge alert group
2022-10-19 12:32:56 +01:00
## Email Setup
2022-12-01 14:26:54 +01:00
Grafana OnCall is capable of sending emails using SMTP as a user notification step. To setup email notifications, populate
the following env variables with your SMTP server credentials:
2022-10-19 12:32:56 +01:00
- `EMAIL_HOST` - SMTP server host
- `EMAIL_HOST_USER` - SMTP server user
- `EMAIL_HOST_PASSWORD` - SMTP server password
- `EMAIL_PORT` (default is `587` ) - SMTP server port
2022-11-03 16:18:37 +00:00
- `EMAIL_USE_TLS` (default is `True` ) - To enable/disable TLS
- `EMAIL_FROM_ADDRESS` (optional) - Email address used to send emails. If not specified, `EMAIL_HOST_USER` will be used.
2022-10-19 12:32:56 +01:00
After enabling the email integration, it will be possible to use the `Notify by email` notification step in user settings.
2023-02-02 17:06:28 +02:00
2023-03-23 06:53:24 +00:00
## Inbound Email Setup
2024-07-29 15:13:24 +01:00
Grafana OnCall is capable of creating alert groups from the [Inbound email integration ](ref:inbound-email-integration ).
2023-03-16 05:59:21 +00:00
To configure Inbound Email integration for Grafana OnCall OSS populate env variables with your Email Service Provider data:
2023-03-23 06:53:24 +00:00
- `INBOUND_EMAIL_ESP` - Inbound email ESP name. Available options: `amazon_ses` , `mailgun` , `mailjet` , `mandrill` , `postal` , `postmark` , `sendgrid` , `sparkpost`
2023-03-16 05:59:21 +00:00
- `INBOUND_EMAIL_DOMAIN` - Inbound email domain
- `INBOUND_EMAIL_WEBHOOK_SECRET` - Inbound email webhook secret
2023-11-21 19:54:25 +01:00
Required secret syntax: `part1ofsecret:part2ofsecret` (The colon `:` is a mandatory delimiter separating both parts of your secret.)
You will also need to configure your ESP to forward messages to the following URL: `scheme://<INBOUND_EMAIL_WEBHOOK_SECRET>@<ONCALL_ENGINE_PUBLIC_URL>/integrations/v1/inbound_email_webhook` .
2023-03-23 06:53:24 +00:00
2023-03-07 14:48:05 +04:00
## Limits
By default, Grafana OnCall limits email and phone notifications (calls, SMS) to 200 per user per day.
The limit can be changed using env variables:
- `PHONE_NOTIFICATIONS_LIMIT` (default is `200` ) - phone notifications per user
- `EMAIL_NOTIFICATIONS_LIMIT` (default is `200` ) - emails per user
2023-02-02 17:06:28 +02:00
## Mobile application set up
Grafana OnCall OSS users can use the mobile app to receive push notifications from OnCall.
Grafana OnCall OSS relies on Grafana Cloud as on relay for push notifications.
You must first connect your Grafana OnCall OSS to Grafana Cloud for the mobile app to work.
2024-02-08 15:59:28 -07:00
Refer to [Install Grafana OnCall OSS ](#install-grafana-oncall-oss ) before continuing with the mobile app.
2023-02-02 17:06:28 +02:00
For Grafana OnCall OSS, the mobile app QR code includes an authentication token along with a backend URL.
Your Grafana OnCall OSS instance should be reachable from the same network as your mobile device, preferably from the internet.
2024-07-29 15:13:24 +01:00
For more information, refer to [Grafana OnCall mobile app ](ref:grafana-oncall-mobile-app ).
2023-03-17 11:14:08 +01:00
## Alert Group Escalation Auditor
Grafana OnCall has a periodic background task, which runs to check that all alert group escalations have finished
properly. This feature, if configured, can also ping an OnCall Webhook Integration's heartbeat URL, so that you can be
alerted, in the event that something goes wrong.
Logs originating from the celery worker, for the `apps.alerts.tasks.check_escalation_finished.check_escalation_finished_task`
task, that reference a `AlertGroupEscalationPolicyExecutionAuditException` exception
indicate that the auditor periodic task is failing check(s) on one or more alert groups. Logs for this task which
mention `.. passed the audit checks` indicate that there were no issues with with the escalation on the audited
alert groups.
To configure this feature as such:
1. Create a Webhook, or Formatted Webhook, Integration type.
1. Under the "Heartbeat" tab in the Integration modal, copy the unique heartbeat URL that is shown.
2023-07-17 07:38:04 +02:00
1. Set the heartbeat's expected time interval to 15 minutes (see note below regarding `ALERT_GROUP_ESCALATION_AUDITOR_CELERY_TASK_HEARTBEAT_INTERVAL` )
2023-03-17 11:14:08 +01:00
1. Configure the integration's escalation chain as necessary
1. Populate the following env variables:
- `ALERT_GROUP_ESCALATION_AUDITOR_CELERY_TASK_HEARTBEAT_URL` - integration's unique heartbeat URL
- `ALERT_GROUP_ESCALATION_AUDITOR_CELERY_TASK_HEARTBEAT_INTERVAL` - how often the auditor task should run. By default the
task runs every 13 minutes so we therefore recommend setting the heartbeat's expected time interval to 15 minutes. If you
would like to modify this, we recommend configuring this env variable to 1 or 2 minutes less than the value set for the
integration's heartbeat expected time interval.
2023-07-13 11:22:59 +02:00
Additionally, if you prefer to disable this feature, you can set the `ESCALATION_AUDITOR_ENABLED` environment variable
to `False` .
2025-04-21 14:23:37 -03:00
e`.