Merge remote-tracking branch 'origin/dev'

# Conflicts:
#	CHANGELOG.md
#	engine/apps/twilioapp/phone_provider.py
This commit is contained in:
Innokentii Konstantinov 2023-05-25 11:42:02 +08:00
commit 6965aa10ae
41 changed files with 584 additions and 568 deletions

View file

@ -5,16 +5,19 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## v1.2.28 (2023-05-24)
## v1.2.29 (2023-05-25)
### Changed
- Phone provider refactoring [#1713](https://github.com/grafana/oncall/pull/1713)
## v1.2.28 (2023-05-24)
### Fixed
- Improve plugin authentication by @vadimkerr ([#1995](https://github.com/grafana/oncall/pull/1995))
- Fix MultipleObjectsReturned error on webhook endpoints by @vadimkerr ([#1996](https://github.com/grafana/oncall/pull/1996))
- Remove user defined time period from "you're going oncall" mobile push by @iskhakov ([#2001](https://github.com/grafana/oncall/pull/2001))
## v1.2.27 (2023-05-23)

View file

@ -1,24 +0,0 @@
---
aliases:
- /docs/oncall/latest/alert-behavior/
canonical: https://grafana.com/docs/oncall/latest/alert-behavior/
title: Configure alert behavior for Grafana OnCall
weight: 900
---
# Configure alert behavior for Grafana OnCall
The available alert configurations in Grafana OnCall allow you to define how certain alerts are handled and ensure that
alerts are routed, escalated, and grouped to fit your specific alerting needs. Grafana OnCall can receive alerts from
any monitoring system that sends alerts via webhook.
## About alert behavior
Once Grafana OnCall receives an alert, the following occurs, based on the alert content:
- Default or customized alert templates are applied to deliver the most useful alert fields with the most valuable information,
in a readable format.
- Alerts are grouped based on your alert grouping configurations, combining similar or related alerts to reduce alert noise.
- Alerts automatically resolve if an alert from the monitoring system matches the resolve condition for that alert.
{{< section >}}

View file

@ -1,64 +0,0 @@
---
title: On-call schedules
aliases:
- /docs/oncall/latest/calendar-schedules/
canonical: https://grafana.com/docs/oncall/latest/calendar-schedules/
description: "Learn more about on-call schedules"
keywords:
- Grafana
- oncall
- schedule
- calendar
weight: 1100
---
# On-call schedules
Grafana OnCall makes it easier to establish consistent and thoughtful on-call coverage while ensuring that alerts dont
go unnoticed. Use Grafana OnCall to:
- Define coverage needs and avoid gaps in coverage
- Automate alert escalation
- Configure on-call shift notifications
This section provides conceptual information about Grafana OnCall schedule options.
## About on-call schedules
An on-call schedule consist of one or more rotations that contain on-call shifts. A schedule must be referenced in the
corresponding escalation chain for alert notifications to be sent to an on-call user.
A fully configured on-call schedule consists of three main components:
- **Rotations**: A recurring schedule containing a set of on-call shifts that users rotate through.
- **On-call shifts**: The period of time that an individual user is on-call for a particular rotation
- **Escalation Chains**: Automated steps that determine who to notify of an alert group.
## Types of on-call schedules
On-call schedules look different for different organizations and even teams. Grafana OnCall offers three different
options for managing your on-call schedules, so you can choose the option that best fits your needs.
### Web-based schedule
Configure and manage on-call schedules directly in the Grafana OnCall plugin. Easily configure and preview rotations,
see teammates' time zones, and add overrides.
Learn more about [Web-based schedules]({{< relref "web-schedule" >}})
### iCal import
Use any calendar service that uses the iCal format to manage and customize on-call schedules - Import rotations and
shifts from your calendar app to Grafana OnCall for widely accessible scheduling. iCal imports appear in Grafana
OnCall as read-only schedules but can be leveraged similarly to a web-based schedule.
Learn more about [iCal import schedules]({{< relref "ical-schedules" >}})
### Terraform
Use the Grafana OnCall Terraform provider to manage schedules within your “as-code” workflow. Rotations configured
via Terraform are automatically added to your schedules in Grafana OnCall. Similar to the iCal import, these schedules
read-only and cannot be edited from the UI.
To learn more, read our [Get started with Grafana OnCall and Terraform](
<https://grafana.com/blog/2022/08/29/get-started-with-grafana-oncall-and-terraform/>) blog post.

View file

@ -1,74 +0,0 @@
---
title: Export on-call schedules
aliases:
- /docs/oncall/latest/calendar-schedules/web-schedule/calendar-export/
canonical: https://grafana.com/docs/oncall/latest/calendar-schedules/web-schedule/calendar-export/
description: "Learn how to export an on-call schedule from Grafana OnCall"
keywords:
- Grafana
- oncall
- on-call
- calendar
- iCal export
weight: 500
---
# Export on-call schedules
Export on-call schedules from Grafana OnCall to your preferred calendar app with a one-time secret iCal URL.
The schedule export allows you to add on-call schedules to your existing calendar to view on-call shifts alongside the
rest of your schedule.
There are two schedule export options available:
- **On-call schedule export** - Exports all on-call shifts for a particular schedule, including rotations, overrides,
and assigned users.
- **User-specific schedule export** - Exports assigned on-call shifts for a particular user. Use this export option to
add your assigned on-call shifts to your calendar.
> **Note:** Calendar exports include all scheduled shifts, including those which are lower priority or overridden.
## Export an on-call schedule
Use this export option to add all on-call shifts associated with a schedule to a calendar. Best for a team or shared
calendars.
To export a schedule from Grafana OnCall:
1. In Grafana OnCall, navigate to the **Schedules** tab.
1. Open the schedule youd like to export by clicking on the schedule name.
1. Click **Export** in the upper right corner, then click **+ Create iCal link** to generate a secret iCal URL.
1. Copy the iCal link and store it somewhere youll remember. Once you close the schedule export window, you won't be
able to access the iCal link.
1. Open your calendar settings to add a calendar from a URL (This step varies based on your calendar app).
## Export a user on-call schedule
Use this export option to add your assigned on-call shifts to your calendar. Best for personal calendars.
To export your on-call schedule:
1. In Grafana OnCall, navigate to the **Users** tab.
1. Click **View my profile** in the upper right corner.
1. From the **User Info** tab, navigate to the iCal link section.
1. Click **+ Create iCal link** to generate your secret iCal URL.
1. Copy the iCal link and store it somewhere youll remember. Once you close your user profile, you won't be able to
access the iCal link again.
1. Open your calendar settings to add a calendar from a URL (This step varies based on your calendar app).
## Revoke an iCal export link
iCal links are displayed upon creation, and users are advised to copy their link and store it for future reference.
To ensure the security of your and your teams' calendar data, after an iCal link is generated, the link is hidden and
cannot be accessed again.
If you need to revoke an iCal link, you can do so anytime. By doing so, any calendar that references the revoked link
will lose access to the calendar data.
To revoke an active iCal link:
1. Navigate to the schedule or user profile associated with the iCal link.
1. For schedules, click **Export** to open the Schedule export window.
1. For users, navigate to the iCal link section of the **User info** tab.
1. If there is an active iCal link, click **Revoke iCal link**.
1. Once revoked, you can generate a new iCal link by clicking **+ Create iCal link**.

View file

@ -1,77 +0,0 @@
---
title: Create on-call schedules
aliases:
- /docs/oncall/latest/calendar-schedules/web-schedule/create-schedule/
canonical: https://grafana.com/docs/oncall/latest/calendar-schedules/web-schedule/create-schedule/
description: "Create on-call schedules with Grafana OnCall"
keywords:
- Grafana
- oncall
- on-call
- schedule
- calendar
weight: 300
---
# Create on-call schedules in Grafana OnCall
Schedules allow you to map out recurring on-call coverage and automate the escalation of alert notifications to
currently on-call users. With Grafana OnCall, you can customize rotations with a live schedule preview to visualize
your schedule, add users, reorder users, and reference teammates' time zones.
To learn more, see [On-call schedules]({{< relref "../../../calendar-schedules" >}}) which provides the fundamental
concepts for this task.
>**Note:** User working hours are currently hardcoded and cannot be changed. Profile settings to configure this and other options will be added in a future release.
## Before you begin
- Users with Admin or Editor roles can create, edit and delete schedules.
- Users with Viewer role cannot receive alert notifications, therefore, cannot be on-call.
For more information about permissions, refer to
[Manage users and teams for Grafana OnCall]({{< relref "../../../configure-user-settings" >}})
## Create an on-call schedule
To create a new on-call schedule:
1. In Grafana OnCall, navigate to the **Schedules** tab and click **+ New schedule**
1. Navigate to **Set up on-call rotation schedule** and click **+ Create**
1. Provide a name and review available schedule settings
1. When youre done, click **Create Schedule**
>**Note:** You can edit your schedule settings at any time.
### Add a rotation to your on-call schedule
After creating your schedule, you can add rotations to build out your coverage needs.
Think of a rotation as a recurring schedule containing on-call shifts that users rotate through.
To add a rotation to an on-call schedule:
1. From your newly created schedule, click **+ Add rotation** and select **New Layer**.
1. Complete the rotation creation form according to your rotation parameters.
1. Add users to the rotation from the dropdown.
You can separate users into user groups to rotate through individual users per shift.
User groups that contain
multiple users results in all users in the group being included in corresponding shifts.
1. When youre satisfied with the rotation preview, click **Create**.
### Add an on-call schedule to escalation chains
Now that youve created your schedule, it must be referenced in the steps of an escalation chain for on-call users
to receive alert notifications.
To connect a schedule to an escalation chain:
1. In Grafana OnCall, go to the **Escalation Chains** tab.
1. Navigate to an existing escalation chain or click **+ New Escalation Chain**.
1. Select **Notify users from on-call schedule** from the **Add escalation step** dropdown.
1. Specify which notification policy to use and the appropriate schedule.
1. Click and drag the escalation steps to reorder, if needed.
Escalation chain steps are saved automatically.
For more information about Escalation Chains, refer to
[Configure and manage Escalation Chains]({{< relref "../../../escalation-policies/configure-escalation-chains" >}})

View file

@ -1,22 +1,40 @@
---
aliases:
- /docs/oncall/latest/escalation-policies/configure-routes/
canonical: https://grafana.com/docs/oncall/latest/escalation-policies/configure-routes/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- amixr
- oncall
- integrations
title: Configure and manage routes
weight: 300
- /docs/oncall/latest/escalation-chains-and-routes/
canonical: https://grafana.com/docs/oncall/latest/escalation-chains-and-routes/
title: Escalation Chains and Routes
weight: 600
---
# Configure and manage Routes
# Escalation Chains and Routes
Set up escalation chains and routes to configure escalation behavior for alert group notifications.
Escalation chains and routes for Grafana OnCall
Administrators can create escalation policies to automatically send alert group notifications to recipients.
These policies define how, where, and when to send notifications.
Escalation policies dictate how users and groups are notified when an alert notification is created. They can be very
simple, or very complex. You can define as many escalation configurations for an integration as you need, and you can
send notifications for certain alerts to a designated place when certain conditions are met, or not met.
Escalation policies have three main parts:
- User settings, where a user sets up their preferred or required notification method.
- An **escalation chain**, which can have one or more steps that are followed in order when a notification is triggered.
- A **route**, that allows administrators to manage notifications by flagging expressions in an alert payload.
## Escalation chains
An escalation chain can have many steps, or only one step. For example, steps can be configured to notify multiple users
in some order, notify users that are scheduled for on-call shifts, ping groups in Slack, use outgoing webhooks to
integrate with other services, such as JIRA, and do a number of other automated notification tasks.
## Routes
An escalation workflow can employ **routes** that administrators can configure to filter alerts by regular expressions
(outdated) or Jinja2 templates
in their payloads. Notifications for these alerts can be sent to individuals, or they can make use of a new
or existing escalation chain.
## Configure escalation chains
@ -59,14 +77,10 @@ specify using a Jinja template that matches content in the payload body of the f
specify where to send the notification for each route.
For example, you can send notifications for alerts with `{{ payload.severity == "critical" and payload.service ==
"database" }}` in the payload to an escalation chain called `Bob_OnCall`. You can create a different route for alerts
"database" }}` [(Check Jinja2 reference)]({{< relref "jinja2-templating" >}}) in the payload to an escalation chain
called `Bob_OnCall`. You can create a different route for alerts
with the payload `{{ "synthetic-monitoring-dev-" in payload.namespace }}` and select a escalation chain called
`NotifySecurity`.
Alternatively you can use regular expressions, e.g. `\"severity\": \"critical\"` or `\"namespace\" *:
*\"synthetic-monitoring-dev-.*\"`
You can set up escalation steps for each route in a chain.
> **NOTE:** When you modify an escalation chain or a route, it will modify that escalation chain across
> all integrations that use it.

View file

@ -1,18 +0,0 @@
---
aliases:
- /docs/oncall/latest/escalation-policies/
canonical: https://grafana.com/docs/oncall/latest/escalation-policies/
title: Escalation Chains and Routes
weight: 700
---
# Escalation Chains and Routes
Escalation chains and routes for Grafana OnCall
Administrators can create escalation policies to automatically send alert group notifications to recipients.
These policies define how, where, and when to send notifications.
See the following topics for more information:
{{< section >}}

View file

@ -1,39 +0,0 @@
---
aliases:
- /docs/oncall/latest/escalation-policies/configure-escalation-chains/
canonical: https://grafana.com/docs/oncall/latest/escalation-policies/configure-escalation-chains/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- amixr
- oncall
- integrations
title: Configure and manage Escalation Chains
weight: 100
---
# Configure and manage Escalation Chains
Escalation policies dictate how users and groups are notified when an alert notification is created. They can be very
simple, or very complex. You can define as many escalation configurations for an integration as you need, and you can
send notifications for certain alerts to a designated place when certain conditions are met, or not met.
Escalation policies have three main parts:
- User settings, where a user sets up their preferred or required notification method.
- An **escalation chain**, which can have one or more steps that are followed in order when a notification is triggered.
- A **route**, that allows administrators to manage notifications by flagging expressions in an alert payload.
## Escalation chains
An escalation chain can have many steps, or only one step. For example, steps can be configured to notify multiple users
in some order, notify users that are scheduled for on-call shifts, ping groups in Slack, use outgoing webhooks to
integrate with other services, such as JIRA, and do a number of other automated notification tasks.
## Routes
An escalation workflow can employ **routes** that administrators can configure to filter alerts by regular expressions
in their payloads. Notifications for these alerts can be sent to individuals, or they can make use of a new
or existing escalation chain.

View file

@ -24,7 +24,7 @@ The following diagram details an example alert workflow with Grafana OnCall:
<img src="/static/img/docs/oncall/oncall-alertworkflow.png" class="no-shadow" width="700px">
These procedures introduce you to initial Grafana OnCall configuration steps, including monitoring system integration,
how to set up escalation chains, and how to use your calendar service for on-call scheduling.
how to set up escalation chains, and how to set up calendar for on-call scheduling.
## Before you begin
@ -68,7 +68,7 @@ For more information on Grafana OnCall integrations and further configuration gu
### Learn Alert Flow
All Alerts in OnCall are grouped to Alert Groups ([read more about Grouping ID]({{< relref "../alert-behavior/alert-templates" >}})). Alert Group could have mutually
All Alerts in OnCall are grouped to Alert Groups ([read more about Grouping ID]({{< relref "jinja2-templating" >}})). Alert Group could have mutually
exclusive states:
- **Firing:** Once Alert Group is registered, Escalation Policy associated with it is getting started. Escalation policy will work while Alert Group is in this status.
@ -112,7 +112,7 @@ To configure Escalation Chains:
Alerts from this integration will now follow the escalation steps configured in your Escalation Chain.
For more information on Escalation Chains and more ways to customize them, refer to
[Configure and manage Escalation Chains]({{< relref "../escalation-policies/configure-escalation-chains" >}})
[Configure and manage Escalation Chains]({{< relref "escalation-chains-and-routes" >}})
## Get notified of an alert
@ -122,9 +122,9 @@ policies, chatops integrations, and on-call schedules allow you to automate how
### Configure personal notification policies
Personal notification policies determine how a user is notified for a certain type of alert. Get notified by SMS,
phone call, or Slack mentions. Administrators can configure how users receive notification for certain types of alerts.
phone call, Slack mentions, or mobile push notification. Administrators can configure how users receive notification for certain types of alerts.
For more information on personal notification policies, refer to
[Manage users and teams for Grafana OnCall]({{< relref "../configure-user-settings" >}})
[Manage users and teams for Grafana OnCall]({{< relref "user-and-team-management" >}})
To configure users personal notification policies:
@ -148,7 +148,9 @@ To configure Slack for Grafana OnCall:
6. Ensure users verify their Slack accounts in their user profile in Grafana OnCall.
For further instruction on connecting to your Slack workspace, refer to
[Slack integration for Grafana OnCall]({{< relref "../integrations/chatops-integrations/configure-slack/" >}})
[Slack integration for Grafana OnCall]({{< relref "../notify/slack/" >}})
Grafana OnCall also supports other ChatOps integration like [Microsoft Teams and Telegram]({{< relref "../notify" >}}).
### Add your on-call schedule
@ -159,8 +161,6 @@ To integrate your on-call calendar with Grafana OnCall:
1. In the **Schedules** tab of Grafana OnCall, click **+ Add team schedule for on-call rotation**.
2. Provide a schedule name.
3. Copy the iCal URL associated with your on-call calendar from your calendar integration settings.
4. Configure the rest of the schedule settings and click Create Schedule
3. Configure the rest of the schedule settings and click Create Schedule
For more information on on-call schedules, refer to
[Configure and manage on-call schedules]({{< relref "../calendar-schedules" >}})
[More information on on-call schedules.]({{< relref "on-call-schedules" >}})

View file

@ -0,0 +1,167 @@
---
canonical: https://grafana.com/docs/oncall/latest/insights-and-metrics/
keywords:
- Audit Logs
- Insight Logs
- Metrics
- Loki
- Prometheus
title: Insight Logs
weight: 1400
---
# Insight Logs
> **Note:** Grafana OnCall insight logs are available in Grafana Cloud only.
We're in the process of rolling out Insight Logs to all customers,
if you don't see insight logs in your Grafana Cloud stack, please reach out to support.
Grafana OnCall Insights Logs represents certain activities, such as when:
- A user creates, updates, or deletes a resource.
- A Maintenance mode is started or finished for an integration.
- A user configures a ChatOps integration.
This configuration is done for you in Grafana Cloud with [Usage Insights Loki data source](https://grafana.com/docs/grafana-cloud/billing-and-usage/usage-insights/#usage-insights-loki-data-source).
You can use this query to retrieve all logs related to your OnCall instance.
```logql
{instance_type="oncall"} | logfmt | __error__=``
```
## Resource insight logs
Logs are created each time a user modifies any resource in Grafana OnCall.
These logs will have `action_type=resource` field and can be retrieved with following query:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `resource`
```
### Format
Logs contain the following fields, where the fields followed by * are always available, and the others depend on the logged event:
| Field Name | Description |
|-----------------------|:----------------------------------------------------------------------------:|
| `action_name`* | Type of the resource action, which can be `created`, `updated` or `deleted`. |
| `action_type`* | Insight Log type. For resource insight logs it will be `resource`. |
| `author`* | Username of user who performed action. |
| `author_id`* | ID of user who performed action. |
| `prev_state` | JSON representation of resource before update. |
| `new_state` | JSON representation of resource after update. |
| `resource_id`* | ID of target resource. |
| `resource_name`* | Name of target resource. |
| `resource_type`* | Type of target resource (See available types below). |
| `team`* | Name of team to which resource belongs. |
| `team_id` | ID of team to which resource belongs. |
| `integration` | Name of integration to which resource belongs. |
| `integration_id` | ID of integration to which resource belongs. |
| `escalation_chain` | Name of team to which resource belongs. |
| `escalation_chain_id` | ID of team to which resource belongs. |
| `schedule` | Name of schedule to which resource belongs. |
| `schedule_id` | ID of schedule to which resource belongs . |
resource types are: `integration_heartbeat`, `escalation_chain`, `integration`, `outgoing_webhook`,
`escalation_policy`, `public_api_token`, `schedule_export_token`,`user_schedule_export_token`,
`oncall_shift`, `web_schedule`, `ical_schedule`, `calendar_schedule`, `organization`, `user`, `webhook`.
## Maintenance insight logs
Logs are created every time when a maintenance mode is started or finished for an integration.
These logs will have `action_type=maintenace` field and can be retrieved with following query:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `maintenance`
```
### Format
Logs of maintenance insights contain the following fields, where the fields followed by * are always available, and the others depend on the logged event:
| Field Name | Description |
|---------------------|:------------------------------------------------------------------------:|
| `action_name`* | Name of the maintenance action, which can be `started` or `finised`. |
| `action_type`* | Insight Log type. For Maintenance Insight logs it will be `maintenance`. |
| `author` | Username of user who performed action. |
| `author_id` | Grafana OnCall ID of user who performed action. |
| `maintenance_mode`* | Type of the maintenance, which can be `maintenance` or `debug` |
| `resource_id`* | ID of target integration. |
| `resource_name`* | Name of target integration. |
| `team`* | Name of team to which integration belongs. |
| `team_id` | ID of team to which integration belongs. |
## ChatOps insight logs
Logs are created when user modifies ChatOps settings.
These log lines will have `action_type=chat_ops` field and can be retrieved with following query:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `chat_ops`
```
### Format
Logs of chatops insight logs contain the following fields, where the fields followed by * are always available, and the others depend on the logged event:
| Field Name | Description |
|------------------|:--------------------------------------------------------------------------------:|
| `action_name`* | Name of the chatops action (See available names below). |
| `action_type`* | Insight Log type. For Chatops Insight logs it always will be `chat_ops`. |
| `author`* | Username of user who performed action |
| `author_id`* | Grafana OnCall ID of user who performed action |
| `сhat_ops_type`* | Type of chatops integration. Can be `telegram`, `slack`, `msteams`, `mobile_app` |
| `linked_user` | Username of user linked to chatops integration |
| `linked_user_id` | Grafana OnCall ID of user linked to chatops integration |
| `channel_name` | Name of the channel linked to chatops integration |
| `prev_channel` | Name of team to which resource belongs |
| `new_channel` | Grafana OnCall ID of team to which resource belongs |
chatops action names: `workspace_connected`, `workspace_disconnected`, `channel_connected`, `channel_disconnected`, `user_linked`, `used_unlinked`, `default_channel_changed`.
## Examples
Here is some examples of practical queries to Grafana OnCall insight logs.
LogQL is used to retrieve them. If you are not familiar with LogQL check this [documentation](https://grafana.com/docs/loki/latest/logql/).
Resource IDs are used a lot in insight logs. You can find them in web ui (example for integration):
1. Open Grafana OnCall.
2. Navigate to resource.
3. The URL looks like `https://<YOUR_STACK_SLUG>/a/grafana-oncall-app/integrations/C5VXMIFKKP67K`.
4. Integration ID is `C5VXMIFKKP67K`.
Alternatively you can find resource ID using public [API](https://grafana.com/docs/oncall/latest/oncall-api-reference/) or browser dev tools.
Actions performed by user:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `resource` and author="<username>"
```
Actions performed with all schedules:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `resource` and (resource_type=`web_schedule` or resource_type=`calendar_schedule` or resource_type=`ical_schedule`)
```
Changes of escalation policies for escalation chain:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `resource` and resource_type=`escalation_policy` and escalation_chain_id=`<ESCALATION_CHAIN_ID>`
```
Maintenance events for integration:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `maintenance` and resource_id=`CSA67IQW2NMVL`
```
Actions performed with slack chatops integration:
```logql
{instance_type="oncall"} | logfmt | __error__=`` | action_type = `chat_ops` and chat_ops_type=`slack`
```

View file

@ -1,7 +1,7 @@
---
aliases:
- /docs/oncall/latest/integrations/
canonical: https://grafana.com/docs/oncall/latest/integrations/
- /docs/oncall/latest/integration-with-alert-sources/
canonical: https://grafana.com/docs/oncall/latest/integration-with-alert-sources/
keywords:
- Grafana Cloud
- Alerts
@ -10,26 +10,35 @@ keywords:
- amixr
- oncall
- integrations
title: Grafana OnCall integrations
title: Integrations
weight: 500
---
# Grafana OnCall integrations
# Integrations
Integrations allow you to connect monitoring systems of your choice to send alerts to Grafana OnCall. Regardless of where
your alerts originate, you can configure alerts to be sent to Grafana OnCall for alert escalation and notification.
Grafana OnCall receives alerts in JSON format via a POST request, OnCall then parses alert data using preconfigured
alert templates to determine alert grouping, apply routes, and determine correct escalation.
"Integration" is a main entry point for alerts being consumed by OnCall. Rendering, grouping and routing are configured
within integrations.
There are many integrations that are directly supported by Grafana OnCall. Those that arent currently listed in the
Integrations menu can be connected using the webhook integration and configured alert templates.
"Integration" is a set of Jinja2 templates which is transforming alert payload to the format suitable to OnCall.
You could check pre-configured templates in the list of avaliable integrations (Integrations ->
"New integration to receive alerts"), create your own or adjust existing.
Read more about Jinja2 templating used in OnCall [here]({{< relref "jinja2-templating" >}}).
Alert flow within integration:
1. Alert is registered by unique integration url (or [e-mail]({{< relref "inbound-email" >}}) in case of inbound e-mail
integration)
2. If there is a non-resolved "alert group" with the same "grouping id", alert will be added to this "alert group".
3. If there is no non-resolved "alert group" with the same "grouping id", new "alert group" will be issued.
4. New "alert group" will be routed using routing engine and escalation chain will be started (TODO: link).
## Configure and manage integrations
You can configure and manage your integrations from the **Integrations** tab in Grafana OnCall. The following sections
describe how to configure and customize your integrations to ensure alerts are treated appropriately.
### Connect an integration to Grafana OnCall
### Connect an integration
To configure an integration for Grafana OnCall:
@ -38,40 +47,42 @@ To configure an integration for Grafana OnCall:
3. Follow the configuration steps on the integration settings page.
4. Complete any necessary configurations in your tool to send alerts to Grafana OnCall.
### Manage Grafana OnCall integrations
### Manage integrations
To manage existing integrations, navigate to the **Integrations** tab in Grafana OnCall and select the integration
you want to manage.
#### Customize alert templates and grouping
#### Manage integration behaviour and rendering
To customize the alert template for an integration:
"Integration templates" are Jinja2 templates which are applied to each alert to define it's rendering and behaviour.
For templates editor:
1. Select an integration from your list of enabled integrations in the **Integrations** tab.
2. Click **Change alert template and grouping**.
3. Select a template to edit from the **Edit template for** dropdown menu.
4. Edit alert templates as needed to customize the fields and content rendered for an alert.
1. Navigate to the **Integrations** tab, select an integration from the list.
2. Click the **gear icon** next to the integration name.
To customize alert grouping for an integration:
Here are a few templates responsible for alert group formation:
1. Click **Change alert template and grouping**.
2. Select **Alert Behavior** from the dropdown menu next to **Edit template for**.
3. Edit the **grouping id**, **acknowledge condition**, and **resolve condition** templates as needed to customize
your alert behavior.
- **Alert Behaviour, Grouping id** - defining how alerts will be grouped into alert groups. Alerts with the same result
- of executing of this template will be grouped together. For example:
For more information on alert templates, see
[Configure alerts templates]({{< relref "../alert-behavior/alert-templates" >}})
Alert 1 payload:`{"name": "CPU 90%", "cluster": "EU"}`
#### Add Routes
Alert 2 payload:`{"name": "CPU 90%", "cluster": "US"}`
To add a route to an integration using regular expression:
If we want to group them together by name, we could use template `{{ payload.name }}` which will result to the equal
grouping id "CPU 90%". If we want to group them by region and end up with 2 separate alert groups, we could use such a
template: `{{ payload.region }}}`
1. Select an integration from your list of enabled integrations in the **Integrations** tab.
2. Click **+ Add Route**.
3. Use python style regex to match on your alert content.
4. Click **Create Route**.
5. Select an escalation chain for “**IF** alert payload matches regex” and “**ELSE**” to specify where to route each
type of alert.
- **Alert Behaviour, Acknowledge Condition** - If this template will be rendered as "True" or "1", containing alert
- group will change it's state to "acknowledged".
- **Alert Behaviour, Resolve Condition** - Similar to Acknowledge Condition, will make alert group "resolved".
- **Alert Behaviour, Source Link** - result of rendering of this template will be used in various places of the UI.
Should point to the most specific place in the alert source related to the alert group. Also rendering result will be
available in other templates as a variable `{{ source_link }}`.
Read more about Jinja2 (TODO: link) in a specific section.
#### Edit integration name
@ -81,12 +92,4 @@ To edit the name of an integration:
2. Click the **pencil icon** next to the integration name.
3. Provide a new name and click **Update**.
#### Delete integration
To delete an integration:
1. Select an integration from your list of enabled integrations in the **Integrations** tab.
2. Click the **trash can** icon next to the selected integration.
3. Confirm by clicking **Delete**.
{{< section >}}

View file

@ -10,7 +10,7 @@ keywords:
- on-call
- Alertmanager
- Prometheus
title: Alertmanager integration for Grafana OnCall
title: Alertmanager
weight: 300
---
@ -69,4 +69,4 @@ Alertmanager offers three alert grouping options:
- Grafana OnCall groups alerts based on the first label of each alert.
- Grafana OnCall marks an alert group as resolved only when there are fewer than 500 grouped
alerts, and every `firing` alert with the same labels has a corresponding `resolved` alert
alerts, and every `firing` alert with the same labels has a corresponding `resolved` alert.

View file

@ -9,7 +9,7 @@ keywords:
- Notifications
- on-call
- AppDynamics
title: AppDynamics integration for Grafana OnCall
title: AppDynamics
weight: 500
---

View file

@ -1,30 +0,0 @@
---
aliases:
- /docs/oncall/latest/integrations/available-integrations/
canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- Alertmanager
- Prometheus
title: Currently available integrations for Grafana OnCall
weight: 100
---
# Available integrations
Grafana OnCall can connect directly to the monitoring services where your alerts originate. All currently available
integrations are listed in the Grafana OnCall **Create Integration** section.
If the integration you're looking for isn't currently listed, see
[Webhook integrations for Grafana OnCall]({{< relref "../available-integrations/configure-webhook" >}}) to integration
your monitoring system with Grafana OnCall.
> **Note:** Some integrations are available for Grafana Cloud instances only. See individual integration
> guides for more information.
The following integrations are currently available for Grafana OnCall and have documentation:
{{< section >}}

View file

@ -1,26 +0,0 @@
---
aliases:
- ../chat-options/
- /docs/oncall/latest/integrations/chatops-integrations/
canonical: https://grafana.com/docs/oncall/latest/integrations/chatops-integrations/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- amixr
- oncall
- slack
title: Available ChatOps integrations
weight: 300
---
# Available ChatOps integrations
Grafana OnCall directly supports the export of alert notifications to some popular messaging applications like Slack and
Telegram. You can use outgoing webhooks to applications that aren't directly supported. For information on configuring
outgoing webhooks, see [Send alert group notifications by webhook]({{< relref "../../alert-behavior/outgoing-webhooks/" >}}).
To configure supported messaging apps, see the following topics:
{{< section >}}

View file

@ -9,7 +9,7 @@ keywords:
- Notifications
- on-call
- Prometheus
title: Grafana Alerting integration for Grafana OnCall
title: Grafana Alerting
weight: 100
---

View file

@ -1,6 +1,6 @@
---
aliases:
- add-inbound-email/
- inbound-email/
- /docs/oncall/latest/integrations/available-integrations/configure-inbound-email/
canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/configure-inbound-email/
keywords:
@ -9,7 +9,7 @@ keywords:
- Notifications
- on-call
- Email
title: Inbound Email integration for Grafana OnCall
title: Inbound Email
weight: 500
---
@ -28,7 +28,7 @@ You must have an Admin role to create integrations in Grafana OnCall.
## Grouping and auto-resolve
Alert groups will be grouped by email subject and auto-resolved if the email message text equals "OK".
This behaviour can be modified via custom templates.
This behaviour can be modified via [custom templates]({{< relref "jinja2-templating" >}}).
Alerts from Inbound Email integration have followng payload:

View file

@ -1,6 +1,6 @@
---
aliases:
- add-jira/
- jira/
- /docs/oncall/latest/integrations/available-integrations/configure-jira/
canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/configure-jira/
keywords:
@ -9,7 +9,7 @@ keywords:
- Notifications
- on-call
- Jira
title: Jira integration for Grafana OnCall
title: Jira
weight: 500
---

View file

@ -0,0 +1,35 @@
---
aliases:
- /docs/oncall/latest/integrations/manual/
canonical: https://grafana.com/docs/oncall/latest/integrations/manual/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- Alertmanager
- Prometheus
title: Raising alerts manually
weight: 300
---
# Raising alerts manually
Sometimes you need to page a specific person (following their preferred notification policy), or need help from people
in some particular team. In that case you can trigger an alert group providing some context information as well as
defining who to notify about it, a user or the person on-call in a given team's schedule.
You can create a manual alert group using the "+ Manual alert group" button (in the Alert Groups page), and set
its escalation options to page a specific person or group of people.
> The same feature is also available as **/escalate** slack command.
- You need to define a title for your alert, an optional description, and select the responders which could be a
specific user in your team, a particular schedule, or multiple instances of those.
- When selecting a user, a few checks will be performed before adding them to the list of responders: user should have
a notification policy set, and ideally be on-call.
- If the user is not on-call at the time, you will get alternative users to choose instead from the OnCall schedules
that user is part of. You can still page the original user if you confirm that is what you want.
- When selecting a schedule, the user(s) on-call when the alert is triggered will be notified.
> **NOTE:** for each responder (user or schedule) you can choose the notification policy to use: default or important.

View file

@ -10,11 +10,11 @@ keywords:
- on-call
- Alertmanager
- Prometheus
title: Webhook integration for Grafana OnCall
title: Inbound Webhook
weight: 700
---
# Webhook integrations for Grafana OnCall
# Inbound Webhook integrations for Grafana OnCall
Grafana OnCall directly supports many integrations, those that arent currently listed in the Integrations menu can be
connected using the webhook integration and configured alert templates.
@ -46,19 +46,19 @@ To configure a webhook integration:
For example:
```json
curl -X POST \
https://a-prod-us-central-0.grafana.net/integrations/v1/formatted_webhook/m12xmIjOcgwH74UF8CN4dk0Dh/ \
-H 'Content-Type: Application/json' \
-d '{
"alert_uid": "08d6891a-835c-e661-39fa-96b6a9e26552",
"title": "The whole system is down",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/e/ee/Grumpy_Cat_by_Gage_Skidmore.jpg",
"state": "alerting",
"link_to_upstream_details": "https://en.wikipedia.org/wiki/Downtime",
"message": "Smth happened. Oh no!"
}'
```
```bash
curl -X POST \
https://a-prod-us-central-0.grafana.net/integrations/v1/formatted_webhook/m12xmIjOcgwH74UF8CN4dk0Dh/ \
-H 'Content-Type: Application/json' \
-d '{
"alert_uid": "08d6891a-835c-e661-39fa-96b6a9e26552",
"title": "The whole system is down",
"image_url": "https://upload.wikimedia.org/wikipedia/commons/e/ee/Grumpy_Cat_by_Gage_Skidmore.jpg",
"state": "alerting",
"link_to_upstream_details": "https://en.wikipedia.org/wiki/Downtime",
"message": "Smth happened. Oh no!"
}'
```
To learn how to use custom alert templates for formatted webhooks, see
[Configure alerts templates]({{< relref "../../../alert-behavior/alert-templates/" >}}).
[Configure alerts templates]({{< relref "jinja2-templating" >}}).

View file

@ -9,7 +9,7 @@ keywords:
- Notifications
- on-call
- Zabbix
title: Zabbix integration for Grafana OnCall
title: Zabbix
weight: 500
---

View file

@ -9,7 +9,7 @@ keywords:
- Notifications
- on-call
- Zendesk
title: Zendesk integration for Grafana OnCall
title: Zendesk
weight: 500
---

View file

@ -1,40 +1,26 @@
---
aliases:
- ../integrations/create-custom-templates/
- /docs/oncall/latest/alert-behavior/alert-templates/
canonical: https://grafana.com/docs/oncall/latest/alert-behavior/alert-templates/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- Jinja
title: Configure alert templates
weight: 300
- /docs/oncall/latest/jinja2-templating/
canonical: https://grafana.com/docs/oncall/latest/jinja2-templating/
title: Jinja2 templating
weight: 1000
---
# Configure alert templates
## Jinja2 templating
Grafana OnCall can integrate with any monitoring systems that can send alerts using webhooks with JSON payloads. By
default, webhooks deliver raw JSON payloads. When Grafana OnCall receives an alert and parses its payload, a default
pre configured alert template is applied to modify the alert payload to be more human readable. These alert templates
pre-configured alert template is applied to modify the alert payload to be more human-readable. These alert templates
are customizable for any integration.
See Format alerts with alert templates in this document to learn more about how to customize alert templates.
## Alert Behavior
Once Grafana OnCall receives an alert, the following occurs, based on the alert content:
- Default or customized alert templates are applied to deliver the most useful alert fields with the most valuable information,
in a readable format.
- Alerts are grouped based on your alert grouping configurations, combining similar or related alerts to reduce alert noise.
- Alerts automatically resolve if an alert from the monitoring system matches the resolve condition for that alert.
<iframe width="560" height="315" src="https://www.youtube.com/embed/S6Is8hhyCos" title="YouTube video player"
frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture;
web-share" allowfullscreen></iframe>
## Alert payload
Alerts received by Grafana OnCall contain metadata as keys and values in a JSON object. The following is an example of
an alert from Grafana OnCall:
an alert received by Grafana OnCall initiated by Grafana Alerting:
```json
{
@ -177,3 +163,5 @@ Built-in functions:
- `datetimeformat` - converts time from datetime to the given format (`%H:%M / %d-%m-%Y` by default)
- `regex_replace` - performs a regex find and replace
- `regex_match` - performs a regex match, returns `True` or `False`. Usage example: `{{ payload.ruleName | regex_match(".*") }}`
{{< section >}}

View file

@ -0,0 +1,18 @@
---
title: Migration from other tools
aliases:
- /docs/oncall/latest/migration-from-other-tools/
keywords:
- Mobile App
- oncall
- notification
- push notification
weight: 1400
---
# Migration from other tools
## Migration from PagerDuty to Grafana OnCall
Migration from PagerDuty to Grafana OnCall could be performed in automated way using
[OSS Migrator](https://github.com/grafana/oncall/tree/dev/tools/pagerduty-migrator).

View file

@ -1,5 +1,5 @@
---
title: Grafana OnCall mobile app
title: Mobile App
aliases:
- /docs/oncall/latest/mobile-app/
keywords:
@ -7,7 +7,7 @@ keywords:
- oncall
- notification
- push notification
weight: 1200
weight: 1100
---
# Grafana OnCall Mobile App
@ -99,5 +99,3 @@ To receive push notifications from the Grafana OnCall mobile app, you must add t
1. From Grafana OnCall, navigate to the **Users** tab and click **View my profile**
1. In your **User Info** tab, update your Default and Important notification policies to include Mobile push notifications.
For more information about Notification Policies, refer to [Manage users and teams for Grafana OnCall]({{< relref "../configure-user-settings" >}})

View file

@ -0,0 +1,51 @@
---
aliases:
- ../notify/
- /docs/oncall/latest/notify/
canonical: https://grafana.com/docs/oncall/latest/notify/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- amixr
- oncall
- slack
title: Notify people
weight: 800
---
# Notify people
Grafana OnCall directly supports the export of alert notifications to some popular messaging applications like Slack and
Telegram. You can use [outgoing webhooks]({{< relref "outgoing-webhooks" >}}) for applications that aren't directly
supported.
To configure supported messaging apps, see the following topics:
{{< section >}}
## Configure user notification policies
Notification policies are a configurable set of notification steps that determine how you're notified of alert in OnCall. Users with the Admin or Editor role are
able to receive notifications.
Users can verify phone numbers and email addresses in the **Users** tab of Grafana OnCall.
- **Default Notifications** dictate how a user is notified for most escalation thresholds.
- **Important Notifications** are labeled in escalation chains. If an escalation event is marked as an important notification,
it will bypass **Default Notification** settings and notify the user by the method specified.
> **NOTE**: You cannot add users or manage permissions in Grafana OnCall. User settings are found on the
> organizational level of your Grafana instance in **Configuration > Users**.
To configure a users notification policy:
1. Navigate to the **Users** tab of Grafana OnCall and search for or select a user.
1. Click **Edit** to the right of a user to open the **User Info** window.
1. Verify that there is a valid and verified phone number, along with ChatOps accounts in order to receive notifications via those methods.
1. Click **Add notification step** and use the dropdowns to specify the notification method and frequency. Notification steps will be followed in the order they
are listed.

View file

@ -0,0 +1,23 @@
---
aliases:
- ../../notify/mattermost
- /docs/oncall/latest/notify/mattermost/
canonical: https://grafana.com/docs/oncall/latest/notify/mattermost/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- amixr
- oncall
- slack
title: Mattermost
weight: 100
---
# Mattermost
Mattermost support is not implemented yet.
Please join [GitHub Issue](https://github.com/grafana/oncall/issues/96) or
check [PR](https://github.com/grafana/oncall/pull/606).

View file

@ -12,7 +12,7 @@ keywords:
- oncall
- MS Team
- Microsoft
title: Microsoft Teams integration for Grafana OnCall
title: Microsoft Teams
weight: 500
---
@ -37,10 +37,10 @@ The following is required to connect to Microsoft Teams to Grafana OnCall:
## Install Microsoft Teams integration for Grafana OnCall
1. From the **ChatOps** tab in Grafana OnCall, select **Microsoft Teams** in the side menu.
1. Click **+Connect Microsoft Teams channel**.
1. Navigate to **Settings** tab in Grafana OnCall.
1. From the **Chat Ops** tab, select **Microsoft Teams** in the side menu.
1. Follow the steps provided to connect to your Teams channels, then click **Done**.
1. To add additional teams and channels click **+Connect Microsoft Teams channel** again and repeat step 3 as needed.
1. To add additional teams and channels click **+Add MS Teams channel** again and repeat step 3 as needed.
## Post-install configuration for Microsoft Teams integration
@ -53,7 +53,7 @@ Configure the following settings to ensure Grafana OnCall alerts are routed to t
### Connect Microsoft Teams user to Grafana OnCall
1. From the **Users** tab in Grafana OnCall, click **View my profile**.
1. Navigate to **Microsoft Teams username**, click **Connect**.
1. In the **User Info** tab, navigate to **Microsoft Teams username**, click **Connect**.
1. Follow the steps provided to connect your Teams user.
1. Navigate back to your Grafana OnCall profile and verify that your Microsoft Teams account is linked to your Grafana
OnCall user.

View file

@ -0,0 +1,32 @@
---
aliases:
- ../../notify/phone-sms
- /docs/oncall/latest/notify/phone-sms/
canonical: https://grafana.com/docs/oncall/latest/notify/phone-sms/
keywords:
- Grafana Cloud
- Alerts
- Notifications
- on-call
- amixr
- oncall
- slack
title: Phone calls and SMS
weight: 100
---
# Phone Calls and SMS notifications
Grafana OnCall Cloud includes SMS and Phone notifications, OSS users [could leverage]({{< relref "open-source" >}}) Grafana Cloud as a relay or
configure other providers like Twilio.
## Is there a list of pre-defined phone numbers?
In order to learn the phone number used by OnCall, make a test call at the "Phone Verification" tab.
## Phone calls or SMS does not work for me
There are cases when OnCall is not able to make phone calls or send SMS to certain regions or specific phone numbers.
We're working hard to fix such cases, but kindly asking to test your personal notification chain to make sure OnCall
is able to notify you. Also we suggest to back up Phone Calls and SMS with other notification methods such as
[Mobile App]({{< relref "mobile-app" >}}).

View file

@ -11,7 +11,7 @@ keywords:
- amixr
- oncall
- slack
title: Slack integration for Grafana OnCall
title: Slack
weight: 100
---
@ -30,15 +30,16 @@ To install the Slack integration, you must have Admin permissions in your Grafan
that youd like to integrate with.
For Open Source Grafana OnCall Slack installation guidance, refer to
[Open Source Grafana OnCall]({{< relref "../../../open-source/" >}}).
[Open Source Grafana OnCall]({{< relref "open-source" >}}).
## Install Slack integration for Grafana OnCall
1. From the **ChatOps** tab in Grafana OnCall, select **Slack** in the side menu.
2. Click **Install Slack integration**.
3. Read the notice and agree to proceed to the Slack website.
4. Provide your Slack workspace URL and sign with your Slack credentials.
5. Click **Allow** to give Grafana OnCall permission to access your Slack workspace.
1. Navigate to **Settings** tab in Grafana OnCall.
1. From the **Chat Ops** tab, select **Slack** in the side menu.
1. Click **Install Slack integration**.
1. Read the notice and agree to proceed to the Slack website.
1. Provide your Slack workspace URL and sign with your Slack credentials.
1. Click **Allow** to give Grafana OnCall permission to access your Slack workspace.
## Post-install configuration for Slack integration
@ -51,6 +52,12 @@ and users:
amount of time.
3. Ensure all users verify their slack account in their Grafana OnCall **users info**.
### Connect Slack user to Grafana OnCall
1. From the **Users** tab in Grafana OnCall, click **View my profile**.
1. In the **User Info** tab, navigate to **Slack username**, click **Connect**.
1. Follow the instructions to verify your account.
### Configure Escalation Chains with Slack notifications
Once your Slack integration is configured you can configure Escalation Chains to notify via Slack messages for alerts
@ -105,7 +112,7 @@ a schedule.
Use message shortcuts to add resolution notes directly from Slack. Message shortcuts are available in the More actions menu from any message.
>**Note:** In order to associate the resolution note to an alert group, this message shortcut can only be applied to messages in the thread of an alert group.
> **Note:** In order to associate the resolution note to an alert group, this message shortcut can only be applied to messages in the thread of an alert group.
1. From an alert group thread, navigate to the Slack message that you wish to add as a resolution note.
1. Hover over the message and select **More actions** from the menu options.

View file

@ -11,7 +11,7 @@ keywords:
- amixr
- oncall
- telegram
title: Telegram integration for Grafana OnCall
title: Telegram
weight: 300
---

View file

@ -0,0 +1,46 @@
---
title: On-call schedules
aliases:
- /docs/oncall/latest/on-call-schedules/
canonical: https://grafana.com/docs/oncall/latest/on-call-schedules/
description: "Learn more about on-call schedules"
keywords:
- Grafana
- oncall
- on-call
- schedule
- calendar
weight: 700
---
## Before you begin
- Users with Admin or Editor roles can create, edit and delete schedules.
- Users with Viewer role cannot receive alert notifications, therefore, cannot be on-call.
For more information about permissions, refer to
[Manage users and teams for Grafana OnCall]({{< relref "user-and-team-management" >}})
### Web-based schedule
Configure and manage on-call schedules directly in the Grafana OnCall plugin. Easily configure and preview rotations,
see teammates' time zones, and add overrides.
Learn more about [Web-based schedules]({{< relref "web-schedule" >}})
### iCal import
Use any calendar service that uses the iCal format to manage and customize on-call schedules - Import rotations and
shifts from your calendar app to Grafana OnCall for widely accessible scheduling. iCal imports appear in Grafana
OnCall as read-only schedules but can be leveraged similarly to a web-based schedule.
Learn more about [iCal import schedules]({{< relref "ical-schedules" >}})
### Terraform
Use the Grafana OnCall Terraform provider to manage schedules within your “as-code” workflow. Rotations configured
via Terraform are automatically added to your schedules in Grafana OnCall. Similar to the iCal import, these schedules
read-only and cannot be edited from the UI.
To learn more, read our [Get started with Grafana OnCall and Terraform](
<https://grafana.com/blog/2022/08/29/get-started-with-grafana-oncall-and-terraform/>) blog post.

View file

@ -0,0 +1,21 @@
---
title: API & Terraform schedules
aliases:
- /docs/oncall/latest/on-call-schedules/api-terraform-schedules/
canonical: https://grafana.com/docs/oncall/latest/on-call-schedules/api-terraform-schedules/
keywords:
- Grafana
- oncall
- schedule
- calendar
weight: 100
---
# API & Terraform schedules
If your schedules became comprehensive, or you would like to distribute the same scheduling patterns through multiple
teams in the org, we suggest considering storing schedules as code.
- [Get started with Grafana OnCall and Terraform (blogpost)](https://grafana.com/blog/2022/08/29/get-started-with-grafana-oncall-and-terraform/)
- [Grafana Terraform provider reference (OnCall resources are managed using this provider)](https://registry.terraform.io/providers/grafana/grafana/latest/docs/resources/oncall_schedule)
- [OnCall API]({{< relref "oncall-api-reference" >}})

View file

@ -1,8 +1,8 @@
---
title: Import on-call schedules
title: iCal on-call schedules
aliases:
- /docs/oncall/latest/calendar-schedules/ical-schedules/
canonical: https://grafana.com/docs/oncall/latest/calendar-schedules/ical-schedules/
- /docs/oncall/latest/on-call-schedules/ical-schedules/
canonical: https://grafana.com/docs/oncall/latest/on-call-schedules/ical-schedules/
description: "Learn how to manage on-call schedules with iCal import"
keywords:
- Grafana
@ -18,6 +18,11 @@ Use your existing calendar app with iCal format to manage and customize on-call
from your calendar app to Grafana OnCall for widely accessible scheduling. iCal imported schedules appear in Grafana
OnCall as read-only schedules but can be leveraged similarly to a web-based schedule.
> Unfortunately there is a known limitation with Google Calendar import and export.
> Google may take up to 24h to import OnCall's calendar (OnCall -> Google) and sometimes our customers report delay in
> exporting (Google Calendar -> OnCall). If actual calendar is critical for you, we suggest checking
> [web-based scheduling]({{< relref "web-schedule" >}}).
## Before you begin
- Verify that your calendar app supports iCal format

View file

@ -1,8 +1,8 @@
---
title: Web-based schedules
title: Web-based on-call schedules
aliases:
- /docs/oncall/latest/calendar-schedules/web-schedule/
canonical: https://grafana.com/docs/oncall/latest/calendar-schedules/web-schedule/
- /docs/oncall/latest/on-call-schedules/web-schedule/
canonical: https://grafana.com/docs/oncall/latest/on-call-schedules/web-schedule/
description: "Learn more about Grafana OnCalls built in schedule tool"
keywords:
- Grafana
@ -12,19 +12,18 @@ keywords:
weight: 100
---
# About web-based schedules
# Web-based on-call schedules
Grafana OnCall allows you to map out recurring on-call coverage and automate the escalation of alert notifications to
on-call users. Configure and manage on-call schedules directly in the Grafana OnCall plugin to easily customize
rotations with a live schedule preview, reference teammates' time zones, and add overrides.
<iframe width="560" height="315" src="https://www.youtube.com/embed/ESkS26SesWk" title="YouTube video player"
frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture;
web-share" allowfullscreen></iframe>
This topic provides an overview of key components and features.
For information on how to create a schedule in Grafana OnCall, refer to
[Create an on-call schedule]({{< relref "create-schedule" >}})
>**Note**: User permissions determine which components of Grafana OnCall are available to you.
## Schedule settings
Schedule settings are initially configured when a new schedule is created and can be updated at any time by clicking
@ -86,6 +85,4 @@ A perfectly balanced schedule is considered ideal, so reducing this number will
## Schedule export
Export on-call schedules from Grafana OnCall to your preferred calendar app with a one-time secret iCal URL. The
schedule export allows you to view on-call shifts alongside the rest of your schedule.
For more information, refer to [Export on-call schedules]({{< relref "calendar-export" >}})
schedule export allows you to view on-call shifts alongside the rest of your schedule.

View file

@ -75,7 +75,7 @@ The above command returns JSON structured in the following way:
Integrations are sources of alerts and alert groups for Grafana OnCall.
For example, to learn how to integrate Grafana OnCall with Alertmanager see
[Alertmanager]({{< relref "../integrations/available-integrations/configure-alertmanager/" >}}).
[Alertmanager]({{< relref "../integrations/alertmanager" >}}).
**HTTP request**

View file

@ -4,7 +4,7 @@ aliases:
keywords:
- Open Source
title: Open Source
weight: 300
weight: 400
---
# Grafana OnCall open source guide
@ -227,7 +227,7 @@ After enabling the email integration, it will be possible to use the `Notify by
## Inbound Email Setup
Grafana OnCall is capable of creating alert groups from
[Inbound Email integration]({{< relref "../integrations/available-integrations/configure-inbound-email" >}}).
[Inbound Email integration]({{< relref "../integrations/inbound-email" >}}).
To configure Inbound Email integration for Grafana OnCall OSS populate env variables with your Email Service Provider data:

View file

@ -1,8 +1,8 @@
---
aliases:
- ../integrations/configure-outgoing-webhooks/
- /docs/oncall/latest/alert-behavior/outgoing-webhooks/
canonical: https://grafana.com/docs/oncall/latest/alert-behavior/outgoing-webhooks/
- ../outgoing-webhooks/
- /docs/oncall/latest/outgoing-webhooks/
canonical: https://grafana.com/docs/oncall/latest/outgoing-webhooks/
keywords:
- Grafana Cloud
- Alerts
@ -10,8 +10,8 @@ keywords:
- on-call
- amixr
- webhooks
title: Configure outgoing webhooks for Grafana OnCall
weight: 500
title: Outgoing Webhooks
weight: 900
---
# Configure outgoing webhooks for Grafana OnCall

View file

@ -1,15 +1,12 @@
---
title: User and team management
aliases:
- /docs/oncall/latest/configure-user-settings/
canonical: https://grafana.com/docs/oncall/latest/configure-user-setting/
- /docs/oncall/latest/user-and-team-management/
keywords:
- Grafana Cloud
- Permission
- Notifications
- RBAC
- amixr
- oncall
title: Manage users and teams for Grafana OnCall
- RBAC
- permissions
- notification
weight: 1300
---
@ -20,13 +17,13 @@ users, configure teams, and manage user permissions at [Grafana.com](https://gra
## User roles and permissions
>**Note:** User roles and teams cannot be managed directly from Grafana OnCall.
> **Note:** User roles and teams cannot be managed directly from Grafana OnCall.
User roles and permissions are assigned and managed at the Grafana organization or Cloud portal level. There are two ways to manage user roles and permissions
for Grafana OnCall:
1. Basic role authorization
By default, authorization within Grafana OnCall relies on the basic user roles configured at the organization level. All users are assigned a basic role by the
organization administrator. There are three available roles: `Viewer`, `Editor`, and `Admin`.
@ -73,42 +70,3 @@ team, set up multiple routes for the integration, and utilize escalation chains
and outgoing webhooks from other teams can also be included in the escalation chain. If a user only has access to the
first team and not others, they will be unable to view the resource, which will display as `🔒 Private resource`.
This feature enables the distribution of escalations across various teams.
## Configure user notification policies
Notification policies are a configurable set of notification steps that determine how you're notified of alert in OnCall. Users with the Admin or Editor role are
able to receive notifications.
Users can verify phone numbers and email addresses in the **Users** tab of Grafana OnCall.
- **Default Notifications** dictate how a user is notified for most escalation thresholds.
- **Important Notifications** are labeled in escalation chains. If an escalation event is marked as an important notification,
it will bypass **Default Notification** settings and notify the user by the method specified.
> **NOTE**: You cannot add users or manage permissions in Grafana OnCall. User settings are found on the
> organizational level of your Grafana instance in **Configuration > Users**.
To configure a users notification policy:
1. Navigate to the **Users** tab of Grafana OnCall and search for or select a user.
1. Click **Edit** to the right of a user to open the **User Info** window.
1. Verify that there is a valid and verified phone number, along with ChatOps accounts in order to receive notifications via those methods.
1. Click **Add notification step** and use the dropdowns to specify the notification method and frequency. Notification steps will be followed in the order they
are listed.
## Configure Telegram user settings in OnCall
1. In your profile, navigate to Telegram setting and click **Connect**.
1. Click **Connect automatically** for the bot to message you and to bring up your telegram account.
1. Click **Start** when the OnCall bot messages you.
To connect manually, you can click the URL provided and then **SEND MESSAGE**. In your Telegram account,
click **Start**.
## Configure Slack user settings in OnCall
1. In your profile, find the Slack setting and click **Connect**.
1. Follow the instructions to verify your account.

View file

@ -242,6 +242,9 @@ def _get_alert_group_escalation_fcm_message(
def _get_youre_going_oncall_fcm_message(
user: User, schedule: OnCallSchedule, device_to_notify: FCMDevice, seconds_until_going_oncall: int
) -> Message:
# avoid circular import
from apps.mobile_app.models import MobileAppUserSettings
thread_id = f"{schedule.public_primary_key}:{user.public_primary_key}:going-oncall"
mobile_app_user_settings, _ = MobileAppUserSettings.objects.get_or_create(user=user)
@ -444,7 +447,6 @@ def conditionally_send_going_oncall_push_notifications_for_schedule(schedule_pk)
device_to_notify = FCMDevice.objects.filter(user=user).first()
if not device_to_notify:
logger.info(f"User {user_pk} has no device set up")
continue
else:
device_cache[user_pk] = device_to_notify

View file

@ -249,8 +249,8 @@ class TwilioPhoneProvider(PhoneProvider):
def flags(self) -> ProviderFlags:
return ProviderFlags(
configured=not LiveSetting.objects.filter(name__startswith="TWILIO", error__isnull=False).exists(),
test_sms=True,
test_sms=False,
test_call=True,
verification_call=True,
verification_call=False,
verification_sms=True,
)