From 1ef192704086312ff8584c36cc00c9de2cd87df0 Mon Sep 17 00:00:00 2001 From: alyssa wada Date: Tue, 11 Oct 2022 16:20:19 -0600 Subject: [PATCH 01/23] Docs file restucture - Batch 1 --- docs/sources/{getting-started => get-started}/_index.md | 0 docs/sources/integrations/_index.md | 4 ++-- docs/sources/integrations/available-integrations/_index.md | 3 ++- .../index.md} | 7 ++++--- .../index.md} | 7 ++++--- .../configure-webhook/index.md} | 3 ++- .../{add-zabbix.md => configure-zabbix/index.md} | 7 ++++--- .../chatops-integrations}/_index.md | 7 ++++--- .../chatops-integrations/configure-slack/index.md} | 1 + .../chatops-integrations/configure-teams/index.md} | 1 + .../chatops-integrations/configure-telegram/index.md} | 1 + 11 files changed, 25 insertions(+), 16 deletions(-) rename docs/sources/{getting-started => get-started}/_index.md (100%) rename docs/sources/integrations/available-integrations/{add-alertmanager.md => configure-alertmanager/index.md} (91%) rename docs/sources/integrations/available-integrations/{add-grafana-alerting.md => configure-grafana-alerting/index.md} (93%) rename docs/sources/integrations/{add-webhook-integration.md => available-integrations/configure-webhook/index.md} (95%) rename docs/sources/integrations/available-integrations/{add-zabbix.md => configure-zabbix/index.md} (95%) rename docs/sources/{chat-options => integrations/chatops-integrations}/_index.md (82%) rename docs/sources/{chat-options/configure-slack.md => integrations/chatops-integrations/configure-slack/index.md} (98%) rename docs/sources/{chat-options/configure-teams.md => integrations/chatops-integrations/configure-teams/index.md} (97%) rename docs/sources/{chat-options/configure-telegram.md => integrations/chatops-integrations/configure-telegram/index.md} (97%) diff --git a/docs/sources/getting-started/_index.md b/docs/sources/get-started/_index.md similarity index 100% rename from docs/sources/getting-started/_index.md rename to docs/sources/get-started/_index.md diff --git a/docs/sources/integrations/_index.md b/docs/sources/integrations/_index.md index 354257a8..fde6b402 100644 --- a/docs/sources/integrations/_index.md +++ b/docs/sources/integrations/_index.md @@ -10,12 +10,12 @@ keywords: - amixr - oncall - integrations -title: Connect to Grafana OnCall +title: Grafana OnCall integrations canonical: "https://grafana.com/docs/oncall/latest/integrations/" weight: 500 --- -# Connect to Grafana OnCall +# Grafana OnCall 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. diff --git a/docs/sources/integrations/available-integrations/_index.md b/docs/sources/integrations/available-integrations/_index.md index c3127657..0f2c0b97 100644 --- a/docs/sources/integrations/available-integrations/_index.md +++ b/docs/sources/integrations/available-integrations/_index.md @@ -2,6 +2,7 @@ aliases: - /docs/grafana-cloud/oncall/integrations/add-integration/ - /docs/oncall/latest/integrations/available-integrations/ + - /docs/grafana-cloud/oncall/integrations/available-integration/ keywords: - Grafana Cloud - Alerts @@ -14,7 +15,7 @@ canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integr weight: 100 --- -# Currently available integrations +# 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. diff --git a/docs/sources/integrations/available-integrations/add-alertmanager.md b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md similarity index 91% rename from docs/sources/integrations/available-integrations/add-alertmanager.md rename to docs/sources/integrations/available-integrations/configure-alertmanager/index.md index e3a80c1c..5787ecc0 100644 --- a/docs/sources/integrations/available-integrations/add-alertmanager.md +++ b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md @@ -1,7 +1,8 @@ --- aliases: - /docs/grafana-cloud/oncall/available-integrations/add-alertmanager/ - - /docs/oncall/latest/integrations/available-integrations /add-alertmanager/ + - /docs/grafana-cloud/oncall/available-integrations/configure-alertmanager/ + - /docs/oncall/latest/integrations/available-integrations/add-alertmanager/ keywords: - Grafana Cloud - Alerts @@ -9,12 +10,12 @@ keywords: - on-call - Alertmanager - Prometheus -title: Connect Alert Manager to Grafana OnCall +title: AlertManager integration for Grafana OnCall canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-alertmanager/" weight: 300 --- -# Connect AlertManager to Grafana OnCall +# AlertManager integration for Grafana OnCall The AlertManager integration for Grafana OnCall handles alerts sent by client applications such as the Prometheus server. diff --git a/docs/sources/integrations/available-integrations/add-grafana-alerting.md b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md similarity index 93% rename from docs/sources/integrations/available-integrations/add-grafana-alerting.md rename to docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md index e3af0a90..4b18f530 100644 --- a/docs/sources/integrations/available-integrations/add-grafana-alerting.md +++ b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md @@ -1,19 +1,20 @@ --- aliases: - /docs/grafana-cloud/oncall/integrations/add-grafana-alerting/ - - /docs/oncall/latest/integrations/available-integrations /add-grafana-alerting/ + - /docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/ + - /docs/grafana-cloud/oncall/integrations/configure-grafana-alerting/ keywords: - Grafana Cloud - Alerts - Notifications - on-call - Prometheus -title: Connect Grafana Alerting to Grafana OnCall +title: Grafana Alerting integration for Grafana OnCall canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/" weight: 100 --- -# Connect Grafana Alerting to Grafana OnCall +# Grafana Alerting integration for Grafana OnCall Grafana Alerting for Grafana OnCall can be set up using two methods: diff --git a/docs/sources/integrations/add-webhook-integration.md b/docs/sources/integrations/available-integrations/configure-webhook/index.md similarity index 95% rename from docs/sources/integrations/add-webhook-integration.md rename to docs/sources/integrations/available-integrations/configure-webhook/index.md index f1d96eed..774d7ae0 100644 --- a/docs/sources/integrations/add-webhook-integration.md +++ b/docs/sources/integrations/available-integrations/configure-webhook/index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/integrations/add-webhook-integration/ + - /docs/oncall/latest/integrations/available-integrations/configure-webhook/ keywords: - Grafana Cloud - Alerts @@ -13,7 +14,7 @@ canonical: "https://grafana.com/docs/oncall/latest/integrations/add-webhook-inte weight: 700 --- -# Configure Webhook integrations for Grafana OnCall +# Webhook integrations for Grafana OnCall Grafana OnCall directly supports many integrations, those that aren’t currently listed in the Integrations menu can be connected using the webhook integration and configured alert templates. diff --git a/docs/sources/integrations/available-integrations/add-zabbix.md b/docs/sources/integrations/available-integrations/configure-zabbix/index.md similarity index 95% rename from docs/sources/integrations/available-integrations/add-zabbix.md rename to docs/sources/integrations/available-integrations/configure-zabbix/index.md index cfe663a1..cc03ca78 100644 --- a/docs/sources/integrations/available-integrations/add-zabbix.md +++ b/docs/sources/integrations/available-integrations/configure-zabbix/index.md @@ -1,18 +1,19 @@ --- aliases: - - /docs/oncall/latest/integrations/available-integrations /add-zabbix/ + - /docs/oncall/latest/integrations/available-integrations/add-zabbix/ + - /docs/oncall/latest/integrations/available-integrations/configure-zabbix/ keywords: - Grafana Cloud - Alerts - Notifications - on-call - Zabbix -title: Connect Zabbix to Grafana OnCall +title: Zabbix integration for Grafana OnCall canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-zabbix/" weight: 500 --- -# Connect Zabbix to Grafana OnCall +# Zabbix integration for Grafana OnCall Zabbix is an open-source monitoring software tool for diverse IT components, including networks, servers, virtual machines, and cloud services. Zabbix provides monitoring for metrics such as network utilization, CPU load, and disk space consumption. diff --git a/docs/sources/chat-options/_index.md b/docs/sources/integrations/chatops-integrations/_index.md similarity index 82% rename from docs/sources/chat-options/_index.md rename to docs/sources/integrations/chatops-integrations/_index.md index ed858e62..ee7de64b 100644 --- a/docs/sources/chat-options/_index.md +++ b/docs/sources/integrations/chatops-integrations/_index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/chat-options/ + - /docs/oncall/latest/integrations/chatops-integrations/ keywords: - Grafana Cloud - Alerts @@ -9,12 +10,12 @@ keywords: - amixr - oncall - slack -title: Connect ChatOps to Grafana OnCall +title: Available ChatOps integrations canonical: "https://grafana.com/docs/oncall/latest/chat-options/" -weight: 900 +weight: 300 --- -# Connect ChatOps to Grafana OnCall +# 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 "../integrations/configure-outgoing-webhooks.md" >}}). diff --git a/docs/sources/chat-options/configure-slack.md b/docs/sources/integrations/chatops-integrations/configure-slack/index.md similarity index 98% rename from docs/sources/chat-options/configure-slack.md rename to docs/sources/integrations/chatops-integrations/configure-slack/index.md index 77126bb9..0b0901a1 100644 --- a/docs/sources/chat-options/configure-slack.md +++ b/docs/sources/integrations/chatops-integrations/configure-slack/index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/chat-options/configure-slack/ + - /docs/oncall/latest/integrations/chatops-integrations/configure-slack/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/chat-options/configure-teams.md b/docs/sources/integrations/chatops-integrations/configure-teams/index.md similarity index 97% rename from docs/sources/chat-options/configure-teams.md rename to docs/sources/integrations/chatops-integrations/configure-teams/index.md index b17ca99d..7e8dc62e 100644 --- a/docs/sources/chat-options/configure-teams.md +++ b/docs/sources/integrations/chatops-integrations/configure-teams/index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/chat-options/configure-teams/ + - /docs/oncall/latest/integrations/chatops-integrations/configure-teams/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/chat-options/configure-telegram.md b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md similarity index 97% rename from docs/sources/chat-options/configure-telegram.md rename to docs/sources/integrations/chatops-integrations/configure-telegram/index.md index daef6ab6..0a8796b6 100644 --- a/docs/sources/chat-options/configure-telegram.md +++ b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/chat-options/configure-telegram/ + - /docs/oncall/latest/integrations/chatops-integrations/configure-telegram/ keywords: - Grafana Cloud - Alerts From 80c572ee23742c76cd6d4e839f47415789934d72 Mon Sep 17 00:00:00 2001 From: alyssa wada Date: Wed, 12 Oct 2022 14:20:19 -0600 Subject: [PATCH 02/23] relrefs for batch 1 --- docs/sources/get-started/_index.md | 4 ++-- docs/sources/integrations/available-integrations/_index.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/sources/get-started/_index.md b/docs/sources/get-started/_index.md index e84ffdd2..183b242d 100644 --- a/docs/sources/get-started/_index.md +++ b/docs/sources/get-started/_index.md @@ -59,7 +59,7 @@ Regardless of where your alerts originate, you can send them to Grafana OnCall v 2. Explore the alert by clicking on the title of the alert. 3. Acknowledge and resolve the test alert. -For more information on Grafana OnCall integrations and further configuration guidance, refer to, [Connect to Grafana OnCall]({{< relref "../integrations" >}}) +For more information on Grafana OnCall integrations and further configuration guidance, refer to, [Grafana OnCall integrations]({{< relref "/../../integrations/_index.md" >}}) ### Configure Escalation Chains @@ -105,7 +105,7 @@ To configure Slack for Grafana OnCall: 5. Click Allow to allow Grafana OnCall to access Slack. 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 [Connect Slack to Grafana OnCall]({{< relref "../chat-options/configure-slack" >}}) +For further instruction on connecting to your Slack workspace, refer to [Slack integration for Grafana OnCall]({{< relref "/../../integrations/chatops-integrations/configure-slack/index.md" >}}) ### Add your on-call schedule diff --git a/docs/sources/integrations/available-integrations/_index.md b/docs/sources/integrations/available-integrations/_index.md index 0f2c0b97..d333bcbb 100644 --- a/docs/sources/integrations/available-integrations/_index.md +++ b/docs/sources/integrations/available-integrations/_index.md @@ -19,7 +19,7 @@ weight: 100 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 [Configure Webhook integrations for Grafana OnCall]({{< relref "../add-webhook-integration/" >}}) to integration your monitoring system with Grafana OnCall. +If the integration you're looking for isn't currently listed, see [Webhook integrations for Grafana OnCall]({{< relref "/../configure-webhook/index.md" >}}) 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. From 7d5d205996b2d722ef896422919dc13ddc4da9a9 Mon Sep 17 00:00:00 2001 From: alyssa wada Date: Wed, 12 Oct 2022 15:40:52 -0600 Subject: [PATCH 03/23] restructure batch 2 --- docs/sources/alert-behavior/_index.md | 10 ++++++++++ .../alert-templates/index.md} | 6 ++++-- .../outgoing-webhooks/index.md} | 1 + docs/sources/escalation-policies/_index.md | 6 +++--- .../index.md} | 0 .../{configure-routes.md => configure-routes/index.md} | 2 +- 6 files changed, 19 insertions(+), 6 deletions(-) create mode 100644 docs/sources/alert-behavior/_index.md rename docs/sources/{integrations/create-custom-templates.md => alert-behavior/alert-templates/index.md} (97%) rename docs/sources/{integrations/configure-outgoing-webhooks.md => alert-behavior/outgoing-webhooks/index.md} (97%) rename docs/sources/escalation-policies/{configure-escalation-chains.md => configure-escalation-chains/index.md} (100%) rename docs/sources/escalation-policies/{configure-routes.md => configure-routes/index.md} (99%) diff --git a/docs/sources/alert-behavior/_index.md b/docs/sources/alert-behavior/_index.md new file mode 100644 index 00000000..5706f184 --- /dev/null +++ b/docs/sources/alert-behavior/_index.md @@ -0,0 +1,10 @@ +--- +title: Configure alert behavior for Grafana OnCall +weight: 900 +canonical: "https://grafana.com/docs/oncall/latest/alert-behavior/" +aliases: + - /docs/oncall/latest/alert-behavior/ +--- + +# Configure alert behavior for Grafana OnCall + diff --git a/docs/sources/integrations/create-custom-templates.md b/docs/sources/alert-behavior/alert-templates/index.md similarity index 97% rename from docs/sources/integrations/create-custom-templates.md rename to docs/sources/alert-behavior/alert-templates/index.md index d99cce17..35861520 100644 --- a/docs/sources/integrations/create-custom-templates.md +++ b/docs/sources/alert-behavior/alert-templates/index.md @@ -1,18 +1,20 @@ --- aliases: - /docs/oncall/latest/integrations/create-custom-templates/ + - /docs/oncall/latest/alert-behavior/alert-templates/ + - /docs/grafana-cloud/oncall/alert-behavior/alert-templates/ keywords: - Grafana Cloud - Alerts - Notifications - on-call - Jinja -title: Configure alerts in Grafana OnCall +title: Configure alert templates canonical: "https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/" weight: 300 --- -# Configure alerts in Grafana OnCall +# Configure alert templates 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 are customizable for any integration. diff --git a/docs/sources/integrations/configure-outgoing-webhooks.md b/docs/sources/alert-behavior/outgoing-webhooks/index.md similarity index 97% rename from docs/sources/integrations/configure-outgoing-webhooks.md rename to docs/sources/alert-behavior/outgoing-webhooks/index.md index bff8c74e..c02fd3a3 100644 --- a/docs/sources/integrations/configure-outgoing-webhooks.md +++ b/docs/sources/alert-behavior/outgoing-webhooks/index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/integrations/configure-outgoing-webhooks/ + - /docs/oncall/latest/alert-behavior/outgoing-webhooks/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/escalation-policies/_index.md b/docs/sources/escalation-policies/_index.md index 99326a51..5582eda8 100644 --- a/docs/sources/escalation-policies/_index.md +++ b/docs/sources/escalation-policies/_index.md @@ -1,13 +1,13 @@ --- -title: Configure escalation chains and routes for Grafana OnCall +title: Escalation Chains and Routes weight: 700 canonical: "https://grafana.com/docs/oncall/latest/escalation-policies/" aliases: - - /docs/oncall/latest/chat-options/escalation-policies/ + - /docs/oncall/latest/escalation-policies/ --- -# Configure escalation chains and routes for Grafana OnCall +# Escalation Chains and Routes Escalation chains and routes for Grafana OnCall diff --git a/docs/sources/escalation-policies/configure-escalation-chains.md b/docs/sources/escalation-policies/configure-escalation-chains/index.md similarity index 100% rename from docs/sources/escalation-policies/configure-escalation-chains.md rename to docs/sources/escalation-policies/configure-escalation-chains/index.md diff --git a/docs/sources/escalation-policies/configure-routes.md b/docs/sources/escalation-policies/configure-routes/index.md similarity index 99% rename from docs/sources/escalation-policies/configure-routes.md rename to docs/sources/escalation-policies/configure-routes/index.md index becaa109..e2b1da94 100644 --- a/docs/sources/escalation-policies/configure-routes.md +++ b/docs/sources/escalation-policies/configure-routes/index.md @@ -14,7 +14,7 @@ canonical: "https://grafana.com/docs/oncall/latest/escalation-policies/configure weight: 300 --- -# Configure and manage routes +# Configure and manage Routes Set up escalation chains and routes to configure escalation behavior for alert group notifications. From 8e2111782140904e0758a715a66a9f557963d144 Mon Sep 17 00:00:00 2001 From: alyssa wada Date: Wed, 12 Oct 2022 16:14:06 -0600 Subject: [PATCH 04/23] relref fixes --- docs/sources/get-started/_index.md | 4 ++-- docs/sources/integrations/_index.md | 2 +- docs/sources/integrations/available-integrations/_index.md | 2 +- .../available-integrations/configure-webhook/index.md | 2 +- docs/sources/integrations/chatops-integrations/_index.md | 2 +- 5 files changed, 6 insertions(+), 6 deletions(-) diff --git a/docs/sources/get-started/_index.md b/docs/sources/get-started/_index.md index 183b242d..8897e0a4 100644 --- a/docs/sources/get-started/_index.md +++ b/docs/sources/get-started/_index.md @@ -59,7 +59,7 @@ Regardless of where your alerts originate, you can send them to Grafana OnCall v 2. Explore the alert by clicking on the title of the alert. 3. Acknowledge and resolve the test alert. -For more information on Grafana OnCall integrations and further configuration guidance, refer to, [Grafana OnCall integrations]({{< relref "/../../integrations/_index.md" >}}) +For more information on Grafana OnCall integrations and further configuration guidance, refer to, [Grafana OnCall integrations]({{< relref "../integrations" >}}) ### Configure Escalation Chains @@ -105,7 +105,7 @@ To configure Slack for Grafana OnCall: 5. Click Allow to allow Grafana OnCall to access Slack. 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/index.md" >}}) +For further instruction on connecting to your Slack workspace, refer to [Slack integration for Grafana OnCall]({{< relref "../chatops-integrations/configure-slack" >}}) ### Add your on-call schedule diff --git a/docs/sources/integrations/_index.md b/docs/sources/integrations/_index.md index fde6b402..f310e621 100644 --- a/docs/sources/integrations/_index.md +++ b/docs/sources/integrations/_index.md @@ -53,7 +53,7 @@ To customize alert grouping for an integration: 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. -For more information on alert templates, see [Configure alerts in Grafana OnCall]({{< relref "create-custom-templates/" >}}) +For more information on alert templates, see [Configure alerts templates]({{< relref "../alert-behavior/alert-templates" >}}) #### Add Routes diff --git a/docs/sources/integrations/available-integrations/_index.md b/docs/sources/integrations/available-integrations/_index.md index d333bcbb..cf87cf4b 100644 --- a/docs/sources/integrations/available-integrations/_index.md +++ b/docs/sources/integrations/available-integrations/_index.md @@ -19,7 +19,7 @@ weight: 100 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 "/../configure-webhook/index.md" >}}) to integration your monitoring system with Grafana OnCall. +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. diff --git a/docs/sources/integrations/available-integrations/configure-webhook/index.md b/docs/sources/integrations/available-integrations/configure-webhook/index.md index 774d7ae0..e5c2deac 100644 --- a/docs/sources/integrations/available-integrations/configure-webhook/index.md +++ b/docs/sources/integrations/available-integrations/configure-webhook/index.md @@ -57,4 +57,4 @@ For example: }' ``` -To learn how to use custom alert templates for formatted webhooks, see [Configure alerts in Grafana OnCall]({{< relref "../integrations/create-custom-templates/" >}}). +To learn how to use custom alert templates for formatted webhooks, see [Configure alerts templates]({{< relref "../alert-behavior/alert-templates" >}}). diff --git a/docs/sources/integrations/chatops-integrations/_index.md b/docs/sources/integrations/chatops-integrations/_index.md index ee7de64b..d4afa57c 100644 --- a/docs/sources/integrations/chatops-integrations/_index.md +++ b/docs/sources/integrations/chatops-integrations/_index.md @@ -17,7 +17,7 @@ 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 "../integrations/configure-outgoing-webhooks.md" >}}). +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: From e5513d1275806b1a35edfe93f85868a6d10faf95 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Tue, 18 Oct 2022 14:41:22 -0400 Subject: [PATCH 05/23] Fix relref links Signed-off-by: Jack Baldry --- docs/sources/get-started/_index.md | 2 +- .../available-integrations/configure-webhook/index.md | 2 +- docs/sources/integrations/chatops-integrations/_index.md | 2 +- .../integrations/chatops-integrations/configure-slack/index.md | 2 +- docs/sources/oncall-api-reference/integrations.md | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/sources/get-started/_index.md b/docs/sources/get-started/_index.md index 8897e0a4..7cb44aaf 100644 --- a/docs/sources/get-started/_index.md +++ b/docs/sources/get-started/_index.md @@ -105,7 +105,7 @@ To configure Slack for Grafana OnCall: 5. Click Allow to allow Grafana OnCall to access Slack. 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 "../chatops-integrations/configure-slack" >}}) +For further instruction on connecting to your Slack workspace, refer to [Slack integration for Grafana OnCall]({{< relref "../integrations/chatops-integrations/configure-slack/" >}}) ### Add your on-call schedule diff --git a/docs/sources/integrations/available-integrations/configure-webhook/index.md b/docs/sources/integrations/available-integrations/configure-webhook/index.md index e5c2deac..4ba1ef8a 100644 --- a/docs/sources/integrations/available-integrations/configure-webhook/index.md +++ b/docs/sources/integrations/available-integrations/configure-webhook/index.md @@ -57,4 +57,4 @@ For example: }' ``` -To learn how to use custom alert templates for formatted webhooks, see [Configure alerts templates]({{< relref "../alert-behavior/alert-templates" >}}). +To learn how to use custom alert templates for formatted webhooks, see [Configure alerts templates]({{< relref "../../../alert-behavior/alert-templates/" >}}). diff --git a/docs/sources/integrations/chatops-integrations/_index.md b/docs/sources/integrations/chatops-integrations/_index.md index d4afa57c..3dbef161 100644 --- a/docs/sources/integrations/chatops-integrations/_index.md +++ b/docs/sources/integrations/chatops-integrations/_index.md @@ -17,7 +17,7 @@ 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" >}}). +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: diff --git a/docs/sources/integrations/chatops-integrations/configure-slack/index.md b/docs/sources/integrations/chatops-integrations/configure-slack/index.md index 0b0901a1..ffc0596e 100644 --- a/docs/sources/integrations/chatops-integrations/configure-slack/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-slack/index.md @@ -26,7 +26,7 @@ Integrating your Slack workspace with Grafana OnCall allows users and teams to b To install the Slack integration, you must have Admin permissions in your Grafana instance as well as the Slack workspace that you’d like to integrate with. -For Open Source Grafana OnCall Slack installation guidance, refer to [Open Source Grafana OnCall]({{< relref "../open-source" >}}). +For Open Source Grafana OnCall Slack installation guidance, refer to [Open Source Grafana OnCall]({{< relref "../../../open-source/" >}}). ## Install Slack integration for Grafana OnCall diff --git a/docs/sources/oncall-api-reference/integrations.md b/docs/sources/oncall-api-reference/integrations.md index 19e3edee..3ad4c725 100644 --- a/docs/sources/oncall-api-reference/integrations.md +++ b/docs/sources/oncall-api-reference/integrations.md @@ -68,7 +68,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/add-alertmanager/" >}}). +For example, to learn how to integrate Grafana OnCall with Alertmanager see [Alertmanager]({{< relref "../integrations/available-integrations/configure-alertmanager/" >}}). **HTTP request** From 037fa48b8f4f7e63d86b5201e3eac117508effc4 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Tue, 25 Oct 2022 10:39:05 -0400 Subject: [PATCH 06/23] Rewrite aliases to be relative Signed-off-by: Jack Baldry --- .../alert-behavior/alert-templates/index.md | 18 +++++++-------- .../alert-behavior/outgoing-webhooks/index.md | 18 +++++++-------- docs/sources/get-started/_index.md | 12 +++++----- .../configure-alertmanager/index.md | 20 ++++++++--------- .../configure-grafana-alerting/index.md | 18 +++++++-------- .../configure-webhook/index.md | 18 +++++++-------- .../configure-zabbix/index.md | 16 +++++++------- .../chatops-integrations/_index.md | 20 ++++++++--------- .../configure-slack/index.md | 20 ++++++++--------- .../configure-teams/index.md | 22 +++++++++---------- .../configure-telegram/index.md | 20 ++++++++--------- 11 files changed, 101 insertions(+), 101 deletions(-) diff --git a/docs/sources/alert-behavior/alert-templates/index.md b/docs/sources/alert-behavior/alert-templates/index.md index 35861520..ad1da511 100644 --- a/docs/sources/alert-behavior/alert-templates/index.md +++ b/docs/sources/alert-behavior/alert-templates/index.md @@ -1,16 +1,16 @@ --- aliases: - - /docs/oncall/latest/integrations/create-custom-templates/ - - /docs/oncall/latest/alert-behavior/alert-templates/ - - /docs/grafana-cloud/oncall/alert-behavior/alert-templates/ +- ../integrations/create-custom-templates/ +- /docs/oncall/latest/alert-behavior/alert-templates/ +- /docs/grafana-cloud/oncall/alert-behavior/alert-templates/ +canonical: https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - Jinja +- Grafana Cloud +- Alerts +- Notifications +- on-call +- Jinja title: Configure alert templates -canonical: "https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/" weight: 300 --- diff --git a/docs/sources/alert-behavior/outgoing-webhooks/index.md b/docs/sources/alert-behavior/outgoing-webhooks/index.md index c02fd3a3..5d4eaaca 100644 --- a/docs/sources/alert-behavior/outgoing-webhooks/index.md +++ b/docs/sources/alert-behavior/outgoing-webhooks/index.md @@ -1,16 +1,16 @@ --- aliases: - - /docs/oncall/latest/integrations/configure-outgoing-webhooks/ - - /docs/oncall/latest/alert-behavior/outgoing-webhooks/ +- ../integrations/configure-outgoing-webhooks/ +- /docs/oncall/latest/alert-behavior/outgoing-webhooks/ +canonical: https://grafana.com/docs/oncall/latest/integrations/configure-outgoing-webhooks/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - amixr - - webhooks +- Grafana Cloud +- Alerts +- Notifications +- on-call +- amixr +- webhooks title: Configure outgoing webhooks for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/integrations/configure-outgoing-webhooks/" weight: 500 --- diff --git a/docs/sources/get-started/_index.md b/docs/sources/get-started/_index.md index 7cb44aaf..64320e77 100644 --- a/docs/sources/get-started/_index.md +++ b/docs/sources/get-started/_index.md @@ -1,13 +1,13 @@ --- aliases: - - /docs/grafana-cloud/oncall/getting-started/ - - /docs/oncall/latest/getting-started/ +- /docs/grafana-cloud/oncall/getting-started/ +- getting-started/ +canonical: https://grafana.com/docs/oncall/latest/getting-started/ keywords: - - Get started - - On call - - Grafana Cloud +- Get started +- On call +- Grafana Cloud title: Get started with Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/getting-started/" weight: 300 --- diff --git a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md index 5787ecc0..b977af2b 100644 --- a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md +++ b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md @@ -1,17 +1,17 @@ --- aliases: - - /docs/grafana-cloud/oncall/available-integrations/add-alertmanager/ - - /docs/grafana-cloud/oncall/available-integrations/configure-alertmanager/ - - /docs/oncall/latest/integrations/available-integrations/add-alertmanager/ +- /docs/grafana-cloud/oncall/available-integrations/add-alertmanager/ +- /docs/grafana-cloud/oncall/available-integrations/configure-alertmanager/ +- add-alertmanager/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-alertmanager/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - Alertmanager - - Prometheus +- Grafana Cloud +- Alerts +- Notifications +- on-call +- Alertmanager +- Prometheus title: AlertManager integration for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-alertmanager/" weight: 300 --- diff --git a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md index 4b18f530..7ffd4cb6 100644 --- a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md +++ b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md @@ -1,16 +1,16 @@ --- aliases: - - /docs/grafana-cloud/oncall/integrations/add-grafana-alerting/ - - /docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/ - - /docs/grafana-cloud/oncall/integrations/configure-grafana-alerting/ +- /docs/grafana-cloud/oncall/integrations/add-grafana-alerting/ +- add-grafana-alerting/ +- /docs/grafana-cloud/oncall/integrations/configure-grafana-alerting/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - Prometheus +- Grafana Cloud +- Alerts +- Notifications +- on-call +- Prometheus title: Grafana Alerting integration for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/" weight: 100 --- diff --git a/docs/sources/integrations/available-integrations/configure-webhook/index.md b/docs/sources/integrations/available-integrations/configure-webhook/index.md index 4ba1ef8a..c70b7df2 100644 --- a/docs/sources/integrations/available-integrations/configure-webhook/index.md +++ b/docs/sources/integrations/available-integrations/configure-webhook/index.md @@ -1,16 +1,16 @@ --- aliases: - - /docs/oncall/latest/integrations/add-webhook-integration/ - - /docs/oncall/latest/integrations/available-integrations/configure-webhook/ +- ../add-webhook-integration/ +- /docs/oncall/latest/integrations/available-integrations/configure-webhook/ +canonical: https://grafana.com/docs/oncall/latest/integrations/add-webhook-integration/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - Alertmanager - - Prometheus +- Grafana Cloud +- Alerts +- Notifications +- on-call +- Alertmanager +- Prometheus title: Webhook integration for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/integrations/add-webhook-integration/" weight: 700 --- diff --git a/docs/sources/integrations/available-integrations/configure-zabbix/index.md b/docs/sources/integrations/available-integrations/configure-zabbix/index.md index cc03ca78..c3e8e47b 100644 --- a/docs/sources/integrations/available-integrations/configure-zabbix/index.md +++ b/docs/sources/integrations/available-integrations/configure-zabbix/index.md @@ -1,15 +1,15 @@ --- aliases: - - /docs/oncall/latest/integrations/available-integrations/add-zabbix/ - - /docs/oncall/latest/integrations/available-integrations/configure-zabbix/ +- add-zabbix/ +- /docs/oncall/latest/integrations/available-integrations/configure-zabbix/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-zabbix/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - Zabbix +- Grafana Cloud +- Alerts +- Notifications +- on-call +- Zabbix title: Zabbix integration for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-zabbix/" weight: 500 --- diff --git a/docs/sources/integrations/chatops-integrations/_index.md b/docs/sources/integrations/chatops-integrations/_index.md index 3dbef161..092425d0 100644 --- a/docs/sources/integrations/chatops-integrations/_index.md +++ b/docs/sources/integrations/chatops-integrations/_index.md @@ -1,17 +1,17 @@ --- aliases: - - /docs/oncall/latest/chat-options/ - - /docs/oncall/latest/integrations/chatops-integrations/ +- ../chat-options/ +- /docs/oncall/latest/integrations/chatops-integrations/ +canonical: https://grafana.com/docs/oncall/latest/chat-options/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - amixr - - oncall - - slack +- Grafana Cloud +- Alerts +- Notifications +- on-call +- amixr +- oncall +- slack title: Available ChatOps integrations -canonical: "https://grafana.com/docs/oncall/latest/chat-options/" weight: 300 --- diff --git a/docs/sources/integrations/chatops-integrations/configure-slack/index.md b/docs/sources/integrations/chatops-integrations/configure-slack/index.md index ffc0596e..e3ffdf0a 100644 --- a/docs/sources/integrations/chatops-integrations/configure-slack/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-slack/index.md @@ -1,17 +1,17 @@ --- aliases: - - /docs/oncall/latest/chat-options/configure-slack/ - - /docs/oncall/latest/integrations/chatops-integrations/configure-slack/ +- ../../chat-options/configure-slack/ +- /docs/oncall/latest/integrations/chatops-integrations/configure-slack/ +canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-slack/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - amixr - - oncall - - slack +- Grafana Cloud +- Alerts +- Notifications +- on-call +- amixr +- oncall +- slack title: Slack integration for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/chat-options/configure-slack/" weight: 100 --- diff --git a/docs/sources/integrations/chatops-integrations/configure-teams/index.md b/docs/sources/integrations/chatops-integrations/configure-teams/index.md index 7e8dc62e..5aaff91b 100644 --- a/docs/sources/integrations/chatops-integrations/configure-teams/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-teams/index.md @@ -1,18 +1,18 @@ --- aliases: - - /docs/oncall/latest/chat-options/configure-teams/ - - /docs/oncall/latest/integrations/chatops-integrations/configure-teams/ +- ../../chat-options/configure-teams/ +- /docs/oncall/latest/integrations/chatops-integrations/configure-teams/ +canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-teams/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - amixr - - oncall - - MS Team - - Microsoft +- Grafana Cloud +- Alerts +- Notifications +- on-call +- amixr +- oncall +- MS Team +- Microsoft title: Microsoft Teams integration for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/chat-options/configure-teams/" weight: 500 --- diff --git a/docs/sources/integrations/chatops-integrations/configure-telegram/index.md b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md index 0a8796b6..b1e38b7b 100644 --- a/docs/sources/integrations/chatops-integrations/configure-telegram/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md @@ -1,17 +1,17 @@ --- aliases: - - /docs/oncall/latest/chat-options/configure-telegram/ - - /docs/oncall/latest/integrations/chatops-integrations/configure-telegram/ +- ../../chat-options/configure-telegram/ +- /docs/oncall/latest/integrations/chatops-integrations/configure-telegram/ +canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-telegram/ keywords: - - Grafana Cloud - - Alerts - - Notifications - - on-call - - amixr - - oncall - - telegram +- Grafana Cloud +- Alerts +- Notifications +- on-call +- amixr +- oncall +- telegram title: Telegram integration for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/chat-options/configure-telegram/" weight: 300 --- From f9b9096fa066315d39bcb78dbe4834b9939a17b8 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Tue, 25 Oct 2022 10:41:01 -0400 Subject: [PATCH 07/23] Run prettier on modified files front matter Signed-off-by: Jack Baldry --- .../alert-behavior/alert-templates/index.md | 16 +++++++-------- .../alert-behavior/outgoing-webhooks/index.md | 16 +++++++-------- docs/sources/get-started/_index.md | 10 +++++----- .../configure-alertmanager/index.md | 18 ++++++++--------- .../configure-grafana-alerting/index.md | 16 +++++++-------- .../configure-webhook/index.md | 16 +++++++-------- .../configure-zabbix/index.md | 14 ++++++------- .../chatops-integrations/_index.md | 18 ++++++++--------- .../configure-slack/index.md | 18 ++++++++--------- .../configure-teams/index.md | 20 +++++++++---------- .../configure-telegram/index.md | 18 ++++++++--------- 11 files changed, 90 insertions(+), 90 deletions(-) diff --git a/docs/sources/alert-behavior/alert-templates/index.md b/docs/sources/alert-behavior/alert-templates/index.md index ad1da511..ceb0b1e3 100644 --- a/docs/sources/alert-behavior/alert-templates/index.md +++ b/docs/sources/alert-behavior/alert-templates/index.md @@ -1,15 +1,15 @@ --- aliases: -- ../integrations/create-custom-templates/ -- /docs/oncall/latest/alert-behavior/alert-templates/ -- /docs/grafana-cloud/oncall/alert-behavior/alert-templates/ + - ../integrations/create-custom-templates/ + - /docs/oncall/latest/alert-behavior/alert-templates/ + - /docs/grafana-cloud/oncall/alert-behavior/alert-templates/ canonical: https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- Jinja + - Grafana Cloud + - Alerts + - Notifications + - on-call + - Jinja title: Configure alert templates weight: 300 --- diff --git a/docs/sources/alert-behavior/outgoing-webhooks/index.md b/docs/sources/alert-behavior/outgoing-webhooks/index.md index 5d4eaaca..98629cce 100644 --- a/docs/sources/alert-behavior/outgoing-webhooks/index.md +++ b/docs/sources/alert-behavior/outgoing-webhooks/index.md @@ -1,15 +1,15 @@ --- aliases: -- ../integrations/configure-outgoing-webhooks/ -- /docs/oncall/latest/alert-behavior/outgoing-webhooks/ + - ../integrations/configure-outgoing-webhooks/ + - /docs/oncall/latest/alert-behavior/outgoing-webhooks/ canonical: https://grafana.com/docs/oncall/latest/integrations/configure-outgoing-webhooks/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- amixr -- webhooks + - Grafana Cloud + - Alerts + - Notifications + - on-call + - amixr + - webhooks title: Configure outgoing webhooks for Grafana OnCall weight: 500 --- diff --git a/docs/sources/get-started/_index.md b/docs/sources/get-started/_index.md index 64320e77..edd752ed 100644 --- a/docs/sources/get-started/_index.md +++ b/docs/sources/get-started/_index.md @@ -1,12 +1,12 @@ --- aliases: -- /docs/grafana-cloud/oncall/getting-started/ -- getting-started/ + - /docs/grafana-cloud/oncall/getting-started/ + - getting-started/ canonical: https://grafana.com/docs/oncall/latest/getting-started/ keywords: -- Get started -- On call -- Grafana Cloud + - Get started + - On call + - Grafana Cloud title: Get started with Grafana OnCall weight: 300 --- diff --git a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md index b977af2b..ff111678 100644 --- a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md +++ b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md @@ -1,16 +1,16 @@ --- aliases: -- /docs/grafana-cloud/oncall/available-integrations/add-alertmanager/ -- /docs/grafana-cloud/oncall/available-integrations/configure-alertmanager/ -- add-alertmanager/ + - /docs/grafana-cloud/oncall/available-integrations/add-alertmanager/ + - /docs/grafana-cloud/oncall/available-integrations/configure-alertmanager/ + - add-alertmanager/ canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-alertmanager/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- Alertmanager -- Prometheus + - Grafana Cloud + - Alerts + - Notifications + - on-call + - Alertmanager + - Prometheus title: AlertManager integration for Grafana OnCall weight: 300 --- diff --git a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md index 7ffd4cb6..8828a761 100644 --- a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md +++ b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md @@ -1,15 +1,15 @@ --- aliases: -- /docs/grafana-cloud/oncall/integrations/add-grafana-alerting/ -- add-grafana-alerting/ -- /docs/grafana-cloud/oncall/integrations/configure-grafana-alerting/ + - /docs/grafana-cloud/oncall/integrations/add-grafana-alerting/ + - add-grafana-alerting/ + - /docs/grafana-cloud/oncall/integrations/configure-grafana-alerting/ canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- Prometheus + - Grafana Cloud + - Alerts + - Notifications + - on-call + - Prometheus title: Grafana Alerting integration for Grafana OnCall weight: 100 --- diff --git a/docs/sources/integrations/available-integrations/configure-webhook/index.md b/docs/sources/integrations/available-integrations/configure-webhook/index.md index c70b7df2..0958279b 100644 --- a/docs/sources/integrations/available-integrations/configure-webhook/index.md +++ b/docs/sources/integrations/available-integrations/configure-webhook/index.md @@ -1,15 +1,15 @@ --- aliases: -- ../add-webhook-integration/ -- /docs/oncall/latest/integrations/available-integrations/configure-webhook/ + - ../add-webhook-integration/ + - /docs/oncall/latest/integrations/available-integrations/configure-webhook/ canonical: https://grafana.com/docs/oncall/latest/integrations/add-webhook-integration/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- Alertmanager -- Prometheus + - Grafana Cloud + - Alerts + - Notifications + - on-call + - Alertmanager + - Prometheus title: Webhook integration for Grafana OnCall weight: 700 --- diff --git a/docs/sources/integrations/available-integrations/configure-zabbix/index.md b/docs/sources/integrations/available-integrations/configure-zabbix/index.md index c3e8e47b..f0110edc 100644 --- a/docs/sources/integrations/available-integrations/configure-zabbix/index.md +++ b/docs/sources/integrations/available-integrations/configure-zabbix/index.md @@ -1,14 +1,14 @@ --- aliases: -- add-zabbix/ -- /docs/oncall/latest/integrations/available-integrations/configure-zabbix/ + - add-zabbix/ + - /docs/oncall/latest/integrations/available-integrations/configure-zabbix/ canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-zabbix/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- Zabbix + - Grafana Cloud + - Alerts + - Notifications + - on-call + - Zabbix title: Zabbix integration for Grafana OnCall weight: 500 --- diff --git a/docs/sources/integrations/chatops-integrations/_index.md b/docs/sources/integrations/chatops-integrations/_index.md index 092425d0..b8d1fd76 100644 --- a/docs/sources/integrations/chatops-integrations/_index.md +++ b/docs/sources/integrations/chatops-integrations/_index.md @@ -1,16 +1,16 @@ --- aliases: -- ../chat-options/ -- /docs/oncall/latest/integrations/chatops-integrations/ + - ../chat-options/ + - /docs/oncall/latest/integrations/chatops-integrations/ canonical: https://grafana.com/docs/oncall/latest/chat-options/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- amixr -- oncall -- slack + - Grafana Cloud + - Alerts + - Notifications + - on-call + - amixr + - oncall + - slack title: Available ChatOps integrations weight: 300 --- diff --git a/docs/sources/integrations/chatops-integrations/configure-slack/index.md b/docs/sources/integrations/chatops-integrations/configure-slack/index.md index e3ffdf0a..57dfe60c 100644 --- a/docs/sources/integrations/chatops-integrations/configure-slack/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-slack/index.md @@ -1,16 +1,16 @@ --- aliases: -- ../../chat-options/configure-slack/ -- /docs/oncall/latest/integrations/chatops-integrations/configure-slack/ + - ../../chat-options/configure-slack/ + - /docs/oncall/latest/integrations/chatops-integrations/configure-slack/ canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-slack/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- amixr -- oncall -- slack + - Grafana Cloud + - Alerts + - Notifications + - on-call + - amixr + - oncall + - slack title: Slack integration for Grafana OnCall weight: 100 --- diff --git a/docs/sources/integrations/chatops-integrations/configure-teams/index.md b/docs/sources/integrations/chatops-integrations/configure-teams/index.md index 5aaff91b..76178c87 100644 --- a/docs/sources/integrations/chatops-integrations/configure-teams/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-teams/index.md @@ -1,17 +1,17 @@ --- aliases: -- ../../chat-options/configure-teams/ -- /docs/oncall/latest/integrations/chatops-integrations/configure-teams/ + - ../../chat-options/configure-teams/ + - /docs/oncall/latest/integrations/chatops-integrations/configure-teams/ canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-teams/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- amixr -- oncall -- MS Team -- Microsoft + - Grafana Cloud + - Alerts + - Notifications + - on-call + - amixr + - oncall + - MS Team + - Microsoft title: Microsoft Teams integration for Grafana OnCall weight: 500 --- diff --git a/docs/sources/integrations/chatops-integrations/configure-telegram/index.md b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md index b1e38b7b..0720e56b 100644 --- a/docs/sources/integrations/chatops-integrations/configure-telegram/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md @@ -1,16 +1,16 @@ --- aliases: -- ../../chat-options/configure-telegram/ -- /docs/oncall/latest/integrations/chatops-integrations/configure-telegram/ + - ../../chat-options/configure-telegram/ + - /docs/oncall/latest/integrations/chatops-integrations/configure-telegram/ canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-telegram/ keywords: -- Grafana Cloud -- Alerts -- Notifications -- on-call -- amixr -- oncall -- telegram + - Grafana Cloud + - Alerts + - Notifications + - on-call + - amixr + - oncall + - telegram title: Telegram integration for Grafana OnCall weight: 300 --- From 9d82521a749aea79641288727d94cd475ae23bd6 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Wed, 26 Oct 2022 11:49:19 -0400 Subject: [PATCH 08/23] Build grafana-cloud docs with oncall content locally Signed-off-by: Jack Baldry --- docs/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile b/docs/Makefile index e66f1c1c..3762a58d 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -8,4 +8,4 @@ pull: .PHONY: docs docs: pull - docker run -v '$(shell pwd)/sources:$(CONTENT_PATH):Z' -p $(PORT) --rm -it $(IMAGE) + docker run -v '$(shell pwd)/sources:$(CONTENT_PATH):Z' -v '$(shell pwd)/sources:/jugo/content/docs/grafana-cloud/oncall:Z' -p $(PORT) --rm -it $(IMAGE) From 7a22410bf61972ed0d8650a145bc5735bd71ba00 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Wed, 26 Oct 2022 12:21:59 -0400 Subject: [PATCH 09/23] Remove grafana-cloud absolute aliases They will only redirect to oncall docs and not to grafana-cloud docs. Relative aliases will correctly redirect within the grafana-cloud docs. Signed-off-by: Jack Baldry --- docs/sources/_index.md | 1 - docs/sources/alert-behavior/alert-templates/index.md | 1 - docs/sources/get-started/_index.md | 1 - docs/sources/integrations/_index.md | 1 - docs/sources/integrations/available-integrations/_index.md | 2 -- .../available-integrations/configure-alertmanager/index.md | 2 -- .../available-integrations/configure-grafana-alerting/index.md | 2 -- docs/sources/oncall-api-reference/alertgroups.md | 1 - docs/sources/oncall-api-reference/alerts.md | 1 - docs/sources/oncall-api-reference/escalation_chains.md | 1 - docs/sources/oncall-api-reference/escalation_policies.md | 1 - docs/sources/oncall-api-reference/integrations.md | 1 - docs/sources/oncall-api-reference/on_call_shifts.md | 1 - docs/sources/oncall-api-reference/outgoing_webhooks.md | 1 - .../sources/oncall-api-reference/personal_notification_rules.md | 1 - docs/sources/oncall-api-reference/postmortem_messages.md | 1 - docs/sources/oncall-api-reference/postmortems.md | 1 - docs/sources/oncall-api-reference/routes.md | 1 - docs/sources/oncall-api-reference/schedules.md | 1 - docs/sources/oncall-api-reference/slack_channels.md | 1 - docs/sources/oncall-api-reference/user_groups.md | 1 - docs/sources/oncall-api-reference/users.md | 1 - docs/sources/open-source/_index.md | 1 - 23 files changed, 26 deletions(-) diff --git a/docs/sources/_index.md b/docs/sources/_index.md index 29928422..c978cb37 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/ - /docs/oncall/latest/ keywords: - Grafana Cloud diff --git a/docs/sources/alert-behavior/alert-templates/index.md b/docs/sources/alert-behavior/alert-templates/index.md index ceb0b1e3..66b53d6f 100644 --- a/docs/sources/alert-behavior/alert-templates/index.md +++ b/docs/sources/alert-behavior/alert-templates/index.md @@ -2,7 +2,6 @@ aliases: - ../integrations/create-custom-templates/ - /docs/oncall/latest/alert-behavior/alert-templates/ - - /docs/grafana-cloud/oncall/alert-behavior/alert-templates/ canonical: https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/ keywords: - Grafana Cloud diff --git a/docs/sources/get-started/_index.md b/docs/sources/get-started/_index.md index edd752ed..06e190a7 100644 --- a/docs/sources/get-started/_index.md +++ b/docs/sources/get-started/_index.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/getting-started/ - getting-started/ canonical: https://grafana.com/docs/oncall/latest/getting-started/ keywords: diff --git a/docs/sources/integrations/_index.md b/docs/sources/integrations/_index.md index f310e621..061e4445 100644 --- a/docs/sources/integrations/_index.md +++ b/docs/sources/integrations/_index.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/integrations/ - /docs/oncall/latest/integrations/ keywords: - Grafana Cloud diff --git a/docs/sources/integrations/available-integrations/_index.md b/docs/sources/integrations/available-integrations/_index.md index cf87cf4b..61d02ae0 100644 --- a/docs/sources/integrations/available-integrations/_index.md +++ b/docs/sources/integrations/available-integrations/_index.md @@ -1,8 +1,6 @@ --- aliases: - - /docs/grafana-cloud/oncall/integrations/add-integration/ - /docs/oncall/latest/integrations/available-integrations/ - - /docs/grafana-cloud/oncall/integrations/available-integration/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md index ff111678..1a0a6d7a 100644 --- a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md +++ b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md @@ -1,7 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/available-integrations/add-alertmanager/ - - /docs/grafana-cloud/oncall/available-integrations/configure-alertmanager/ - add-alertmanager/ canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-alertmanager/ keywords: diff --git a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md index 8828a761..608c4228 100644 --- a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md +++ b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md @@ -1,8 +1,6 @@ --- aliases: - - /docs/grafana-cloud/oncall/integrations/add-grafana-alerting/ - add-grafana-alerting/ - - /docs/grafana-cloud/oncall/integrations/configure-grafana-alerting/ canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/ keywords: - Grafana Cloud diff --git a/docs/sources/oncall-api-reference/alertgroups.md b/docs/sources/oncall-api-reference/alertgroups.md index 8e90f6d3..76be1aca 100644 --- a/docs/sources/oncall-api-reference/alertgroups.md +++ b/docs/sources/oncall-api-reference/alertgroups.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/alertgroups/ - /docs/oncall/latest/oncall-api-reference/alertgroups/ title: Alert groups HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/alertgroups/" diff --git a/docs/sources/oncall-api-reference/alerts.md b/docs/sources/oncall-api-reference/alerts.md index 8a062581..be215ed8 100644 --- a/docs/sources/oncall-api-reference/alerts.md +++ b/docs/sources/oncall-api-reference/alerts.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/alerts/ - /docs/oncall/latest/oncall-api-reference/alerts/ title: Alerts HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/alerts/" diff --git a/docs/sources/oncall-api-reference/escalation_chains.md b/docs/sources/oncall-api-reference/escalation_chains.md index 8723b6a6..29638dbd 100644 --- a/docs/sources/oncall-api-reference/escalation_chains.md +++ b/docs/sources/oncall-api-reference/escalation_chains.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/escalation_chains/ - /docs/oncall/latest/oncall-api-reference/escalation_chains/ title: Escalation Chains HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/escalation_chains/" diff --git a/docs/sources/oncall-api-reference/escalation_policies.md b/docs/sources/oncall-api-reference/escalation_policies.md index 76d253f3..06e366fb 100644 --- a/docs/sources/oncall-api-reference/escalation_policies.md +++ b/docs/sources/oncall-api-reference/escalation_policies.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/escalation_policies/ - /docs/oncall/latest/oncall-api-reference/escalation_policies/ title: Escalation Policies HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/escalation_policies/" diff --git a/docs/sources/oncall-api-reference/integrations.md b/docs/sources/oncall-api-reference/integrations.md index 3ad4c725..0f7af01d 100644 --- a/docs/sources/oncall-api-reference/integrations.md +++ b/docs/sources/oncall-api-reference/integrations.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/integrations/ - /docs/oncall/latest/oncall-api-reference/integrations/ title: Integrations HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/integrations/" diff --git a/docs/sources/oncall-api-reference/on_call_shifts.md b/docs/sources/oncall-api-reference/on_call_shifts.md index 8f43975d..37bc19b2 100644 --- a/docs/sources/oncall-api-reference/on_call_shifts.md +++ b/docs/sources/oncall-api-reference/on_call_shifts.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/on_call_shifts/ - /docs/oncall/latest/oncall-api-reference/on_call_shifts/ title: OnCall shifts HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/on_call_shifts/" diff --git a/docs/sources/oncall-api-reference/outgoing_webhooks.md b/docs/sources/oncall-api-reference/outgoing_webhooks.md index 0e26f012..a9d7fec1 100644 --- a/docs/sources/oncall-api-reference/outgoing_webhooks.md +++ b/docs/sources/oncall-api-reference/outgoing_webhooks.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/outgoing_webhooks/ - /docs/oncall/latest/oncall-api-reference/outgoing_webhooks/ title: Outgoing webhooks HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/outgoing_webhooks/" diff --git a/docs/sources/oncall-api-reference/personal_notification_rules.md b/docs/sources/oncall-api-reference/personal_notification_rules.md index dc6e8562..2165d1c3 100644 --- a/docs/sources/oncall-api-reference/personal_notification_rules.md +++ b/docs/sources/oncall-api-reference/personal_notification_rules.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/personal_notification_rules/ - /docs/oncall/latest/oncall-api-reference/personal_notification_rules/ title: Personal Notification Rules HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/" diff --git a/docs/sources/oncall-api-reference/postmortem_messages.md b/docs/sources/oncall-api-reference/postmortem_messages.md index b2fefa19..4046b11f 100644 --- a/docs/sources/oncall-api-reference/postmortem_messages.md +++ b/docs/sources/oncall-api-reference/postmortem_messages.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/postmortem_messages/ - /docs/oncall/latest/oncall-api-reference/postmortem_messages/ draft: true title: Postmortem Messages HTTP API diff --git a/docs/sources/oncall-api-reference/postmortems.md b/docs/sources/oncall-api-reference/postmortems.md index c98026ae..7393201d 100644 --- a/docs/sources/oncall-api-reference/postmortems.md +++ b/docs/sources/oncall-api-reference/postmortems.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/postmortems/ - /docs/oncall/latest/oncall-api-reference/postmortems/ draft: true title: Postmortem HTTP API diff --git a/docs/sources/oncall-api-reference/routes.md b/docs/sources/oncall-api-reference/routes.md index 78eb387f..bff5d3d0 100644 --- a/docs/sources/oncall-api-reference/routes.md +++ b/docs/sources/oncall-api-reference/routes.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/routes/ - /docs/oncall/latest/oncall-api-reference/routes/ title: Routes HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/routes/" diff --git a/docs/sources/oncall-api-reference/schedules.md b/docs/sources/oncall-api-reference/schedules.md index d7ec9273..c42f6bce 100644 --- a/docs/sources/oncall-api-reference/schedules.md +++ b/docs/sources/oncall-api-reference/schedules.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/schedules/ - /docs/oncall/latest/oncall-api-reference/schedules/ title: Schedule HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/schedules/" diff --git a/docs/sources/oncall-api-reference/slack_channels.md b/docs/sources/oncall-api-reference/slack_channels.md index 6c7d09c3..887db569 100644 --- a/docs/sources/oncall-api-reference/slack_channels.md +++ b/docs/sources/oncall-api-reference/slack_channels.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/slack_channels/ - /docs/oncall/latest/oncall-api-reference/slack_channels/ title: Slack Channels HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/slack_channels/" diff --git a/docs/sources/oncall-api-reference/user_groups.md b/docs/sources/oncall-api-reference/user_groups.md index e2021770..5a8815d3 100644 --- a/docs/sources/oncall-api-reference/user_groups.md +++ b/docs/sources/oncall-api-reference/user_groups.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/user_groups/ - /docs/oncall/latest/oncall-api-reference/user_groups/ title: OnCall User Groups HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/user_groups/" diff --git a/docs/sources/oncall-api-reference/users.md b/docs/sources/oncall-api-reference/users.md index ca6d01df..c601cb42 100644 --- a/docs/sources/oncall-api-reference/users.md +++ b/docs/sources/oncall-api-reference/users.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/oncall-api-reference/users/ - /docs/oncall/latest/oncall-api-reference/users/ title: Grafana OnCall Users HTTP API canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/users/" diff --git a/docs/sources/open-source/_index.md b/docs/sources/open-source/_index.md index b2e6c1df..1dee4845 100644 --- a/docs/sources/open-source/_index.md +++ b/docs/sources/open-source/_index.md @@ -1,6 +1,5 @@ --- aliases: - - /docs/grafana-cloud/oncall/open-source/ - /docs/oncall/latest/open-source/ keywords: - Open Source From 87d0a50e03dde9f67b1254977b2c80ef85dc4f4c Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Wed, 26 Oct 2022 12:32:47 -0400 Subject: [PATCH 10/23] Ensure canonical URLs match the new page locations Signed-off-by: Jack Baldry --- docs/sources/_index.md | 2 +- docs/sources/alert-behavior/_index.md | 7 +++---- docs/sources/alert-behavior/alert-templates/index.md | 2 +- docs/sources/alert-behavior/outgoing-webhooks/index.md | 2 +- docs/sources/calendar-schedules/_index.md | 2 +- docs/sources/configure-user-settings/_index.md | 2 +- docs/sources/escalation-policies/_index.md | 7 +++---- .../configure-escalation-chains/index.md | 2 +- docs/sources/escalation-policies/configure-routes/index.md | 2 +- docs/sources/get-started/_index.md | 5 +++-- docs/sources/integrations/_index.md | 2 +- docs/sources/integrations/available-integrations/_index.md | 2 +- .../available-integrations/configure-alertmanager/index.md | 3 ++- .../configure-grafana-alerting/index.md | 3 ++- .../available-integrations/configure-webhook/index.md | 2 +- .../available-integrations/configure-zabbix/index.md | 2 +- docs/sources/integrations/chatops-integrations/_index.md | 2 +- .../chatops-integrations/configure-slack/index.md | 2 +- .../chatops-integrations/configure-teams/index.md | 2 +- .../chatops-integrations/configure-telegram/index.md | 2 +- docs/sources/oncall-api-reference/_index.md | 2 +- docs/sources/oncall-api-reference/alertgroups.md | 2 +- docs/sources/oncall-api-reference/alerts.md | 2 +- docs/sources/oncall-api-reference/escalation_chains.md | 2 +- docs/sources/oncall-api-reference/escalation_policies.md | 2 +- docs/sources/oncall-api-reference/integrations.md | 2 +- docs/sources/oncall-api-reference/on_call_shifts.md | 2 +- docs/sources/oncall-api-reference/outgoing_webhooks.md | 2 +- .../oncall-api-reference/personal_notification_rules.md | 2 +- docs/sources/oncall-api-reference/postmortem_messages.md | 2 +- docs/sources/oncall-api-reference/postmortems.md | 2 +- docs/sources/oncall-api-reference/routes.md | 2 +- docs/sources/oncall-api-reference/schedules.md | 2 +- docs/sources/oncall-api-reference/slack_channels.md | 2 +- docs/sources/oncall-api-reference/user_groups.md | 2 +- docs/sources/oncall-api-reference/users.md | 2 +- 36 files changed, 44 insertions(+), 43 deletions(-) diff --git a/docs/sources/_index.md b/docs/sources/_index.md index c978cb37..92f9d004 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/ +canonical: https://grafana.com/docs/oncall/latest/ keywords: - Grafana Cloud - Alerts @@ -10,7 +11,6 @@ keywords: - OnCall - irm title: Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/" weight: 1000 --- diff --git a/docs/sources/alert-behavior/_index.md b/docs/sources/alert-behavior/_index.md index 5706f184..ae8829bd 100644 --- a/docs/sources/alert-behavior/_index.md +++ b/docs/sources/alert-behavior/_index.md @@ -1,10 +1,9 @@ --- -title: Configure alert behavior for Grafana OnCall -weight: 900 -canonical: "https://grafana.com/docs/oncall/latest/alert-behavior/" 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 - diff --git a/docs/sources/alert-behavior/alert-templates/index.md b/docs/sources/alert-behavior/alert-templates/index.md index 66b53d6f..5bc4321c 100644 --- a/docs/sources/alert-behavior/alert-templates/index.md +++ b/docs/sources/alert-behavior/alert-templates/index.md @@ -2,7 +2,7 @@ aliases: - ../integrations/create-custom-templates/ - /docs/oncall/latest/alert-behavior/alert-templates/ -canonical: https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/ +canonical: https://grafana.com/docs/oncall/latest/alert-behavior/alert-templates/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/alert-behavior/outgoing-webhooks/index.md b/docs/sources/alert-behavior/outgoing-webhooks/index.md index 98629cce..a88ccbf9 100644 --- a/docs/sources/alert-behavior/outgoing-webhooks/index.md +++ b/docs/sources/alert-behavior/outgoing-webhooks/index.md @@ -2,7 +2,7 @@ aliases: - ../integrations/configure-outgoing-webhooks/ - /docs/oncall/latest/alert-behavior/outgoing-webhooks/ -canonical: https://grafana.com/docs/oncall/latest/integrations/configure-outgoing-webhooks/ +canonical: https://grafana.com/docs/oncall/latest/alert-behavior/outgoing-webhooks/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/calendar-schedules/_index.md b/docs/sources/calendar-schedules/_index.md index ca3bf92b..c4838c5d 100644 --- a/docs/sources/calendar-schedules/_index.md +++ b/docs/sources/calendar-schedules/_index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/calendar-schedules/ +canonical: https://grafana.com/docs/oncall/latest/calendar-schedules/ description: "" keywords: - Grafana @@ -8,7 +9,6 @@ keywords: - on-call - calendar title: Configure and manage on-call schedules -canonical: "https://grafana.com/docs/oncall/latest/calendar-schedules/" weight: 1100 --- diff --git a/docs/sources/configure-user-settings/_index.md b/docs/sources/configure-user-settings/_index.md index 287adf8e..afcefb69 100644 --- a/docs/sources/configure-user-settings/_index.md +++ b/docs/sources/configure-user-settings/_index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/configure-user-settings/ +canonical: https://grafana.com/docs/oncall/latest/configure-user-setting/ keywords: - Grafana Cloud - Alerts @@ -10,7 +11,6 @@ keywords: - oncall - integrations title: Manage users and teams for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/configure-user-setting/" weight: 1300 --- diff --git a/docs/sources/escalation-policies/_index.md b/docs/sources/escalation-policies/_index.md index 5582eda8..ceb70476 100644 --- a/docs/sources/escalation-policies/_index.md +++ b/docs/sources/escalation-policies/_index.md @@ -1,12 +1,11 @@ --- -title: Escalation Chains and Routes -weight: 700 -canonical: "https://grafana.com/docs/oncall/latest/escalation-policies/" 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 diff --git a/docs/sources/escalation-policies/configure-escalation-chains/index.md b/docs/sources/escalation-policies/configure-escalation-chains/index.md index 8c244f15..9c19414b 100644 --- a/docs/sources/escalation-policies/configure-escalation-chains/index.md +++ b/docs/sources/escalation-policies/configure-escalation-chains/index.md @@ -1,6 +1,7 @@ --- 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 @@ -10,7 +11,6 @@ keywords: - oncall - integrations title: Configure and manage Escalation Chains -canonical: "https://grafana.com/docs/oncall/latest/escalation-policies/configure-escalation-chains/" weight: 100 --- diff --git a/docs/sources/escalation-policies/configure-routes/index.md b/docs/sources/escalation-policies/configure-routes/index.md index e2b1da94..5de0a1a4 100644 --- a/docs/sources/escalation-policies/configure-routes/index.md +++ b/docs/sources/escalation-policies/configure-routes/index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/escalation-policies/configure-routes/ +canonical: https://grafana.com/docs/oncall/latest/escalation-policies/configure-routes/ keywords: - Grafana Cloud - Alerts @@ -10,7 +11,6 @@ keywords: - oncall - integrations title: Configure and manage routes -canonical: "https://grafana.com/docs/oncall/latest/escalation-policies/configure-routes/" weight: 300 --- diff --git a/docs/sources/get-started/_index.md b/docs/sources/get-started/_index.md index 06e190a7..677b203e 100644 --- a/docs/sources/get-started/_index.md +++ b/docs/sources/get-started/_index.md @@ -1,7 +1,8 @@ --- aliases: - - getting-started/ -canonical: https://grafana.com/docs/oncall/latest/getting-started/ + - /docs/oncall/latest/get-started/ + - /getting-started/ +canonical: https://grafana.com/docs/oncall/latest/get-started/ keywords: - Get started - On call diff --git a/docs/sources/integrations/_index.md b/docs/sources/integrations/_index.md index 061e4445..a49e7496 100644 --- a/docs/sources/integrations/_index.md +++ b/docs/sources/integrations/_index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/integrations/ +canonical: https://grafana.com/docs/oncall/latest/integrations/ keywords: - Grafana Cloud - Alerts @@ -10,7 +11,6 @@ keywords: - oncall - integrations title: Grafana OnCall integrations -canonical: "https://grafana.com/docs/oncall/latest/integrations/" weight: 500 --- diff --git a/docs/sources/integrations/available-integrations/_index.md b/docs/sources/integrations/available-integrations/_index.md index 61d02ae0..3d02ba76 100644 --- a/docs/sources/integrations/available-integrations/_index.md +++ b/docs/sources/integrations/available-integrations/_index.md @@ -1,6 +1,7 @@ --- aliases: - /docs/oncall/latest/integrations/available-integrations/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/ keywords: - Grafana Cloud - Alerts @@ -9,7 +10,6 @@ keywords: - Alertmanager - Prometheus title: Currently available integrations for Grafana OnCall -canonical: "https://grafana.com/docs/oncall/latest/integrations/available-integrations/" weight: 100 --- diff --git a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md index 1a0a6d7a..259d9e8d 100644 --- a/docs/sources/integrations/available-integrations/configure-alertmanager/index.md +++ b/docs/sources/integrations/available-integrations/configure-alertmanager/index.md @@ -1,7 +1,8 @@ --- aliases: - add-alertmanager/ -canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-alertmanager/ + - /docs/oncall/latest/integrations/available-integrations/configure-alertmanager/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/configure-alertmanager/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md index 608c4228..c3197649 100644 --- a/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md +++ b/docs/sources/integrations/available-integrations/configure-grafana-alerting/index.md @@ -1,7 +1,8 @@ --- aliases: - add-grafana-alerting/ -canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-grafana-alerting/ + - /docs/oncall/latest/integrations/available-integrations/configure-grafana-alerting/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/configure-grafana-alerting/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/available-integrations/configure-webhook/index.md b/docs/sources/integrations/available-integrations/configure-webhook/index.md index 0958279b..a762f006 100644 --- a/docs/sources/integrations/available-integrations/configure-webhook/index.md +++ b/docs/sources/integrations/available-integrations/configure-webhook/index.md @@ -2,7 +2,7 @@ aliases: - ../add-webhook-integration/ - /docs/oncall/latest/integrations/available-integrations/configure-webhook/ -canonical: https://grafana.com/docs/oncall/latest/integrations/add-webhook-integration/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/configure-webhook/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/available-integrations/configure-zabbix/index.md b/docs/sources/integrations/available-integrations/configure-zabbix/index.md index f0110edc..7fc0bb8e 100644 --- a/docs/sources/integrations/available-integrations/configure-zabbix/index.md +++ b/docs/sources/integrations/available-integrations/configure-zabbix/index.md @@ -2,7 +2,7 @@ aliases: - add-zabbix/ - /docs/oncall/latest/integrations/available-integrations/configure-zabbix/ -canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/add-zabbix/ +canonical: https://grafana.com/docs/oncall/latest/integrations/available-integrations/configure-zabbix/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/chatops-integrations/_index.md b/docs/sources/integrations/chatops-integrations/_index.md index b8d1fd76..c96e8d6e 100644 --- a/docs/sources/integrations/chatops-integrations/_index.md +++ b/docs/sources/integrations/chatops-integrations/_index.md @@ -2,7 +2,7 @@ aliases: - ../chat-options/ - /docs/oncall/latest/integrations/chatops-integrations/ -canonical: https://grafana.com/docs/oncall/latest/chat-options/ +canonical: https://grafana.com/docs/oncall/latest/integrations/chatops-integrations/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/chatops-integrations/configure-slack/index.md b/docs/sources/integrations/chatops-integrations/configure-slack/index.md index 57dfe60c..33d29016 100644 --- a/docs/sources/integrations/chatops-integrations/configure-slack/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-slack/index.md @@ -2,7 +2,7 @@ aliases: - ../../chat-options/configure-slack/ - /docs/oncall/latest/integrations/chatops-integrations/configure-slack/ -canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-slack/ +canonical: https://grafana.com/docs/oncall/latest/integrations/chatops-integrations/configure-slack/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/chatops-integrations/configure-teams/index.md b/docs/sources/integrations/chatops-integrations/configure-teams/index.md index 76178c87..b4f42450 100644 --- a/docs/sources/integrations/chatops-integrations/configure-teams/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-teams/index.md @@ -2,7 +2,7 @@ aliases: - ../../chat-options/configure-teams/ - /docs/oncall/latest/integrations/chatops-integrations/configure-teams/ -canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-teams/ +canonical: https://grafana.com/docs/oncall/latest/integrations/chatops-integrations/configure-teams/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/integrations/chatops-integrations/configure-telegram/index.md b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md index 0720e56b..fd510340 100644 --- a/docs/sources/integrations/chatops-integrations/configure-telegram/index.md +++ b/docs/sources/integrations/chatops-integrations/configure-telegram/index.md @@ -2,7 +2,7 @@ aliases: - ../../chat-options/configure-telegram/ - /docs/oncall/latest/integrations/chatops-integrations/configure-telegram/ -canonical: https://grafana.com/docs/oncall/latest/chat-options/configure-telegram/ +canonical: https://grafana.com/docs/oncall/latest/integrations/chatops-integrations/configure-telegram/ keywords: - Grafana Cloud - Alerts diff --git a/docs/sources/oncall-api-reference/_index.md b/docs/sources/oncall-api-reference/_index.md index 9f998e59..cc453fec 100644 --- a/docs/sources/oncall-api-reference/_index.md +++ b/docs/sources/oncall-api-reference/_index.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/ title: Grafana OnCall HTTP API reference -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/" weight: 1500 --- diff --git a/docs/sources/oncall-api-reference/alertgroups.md b/docs/sources/oncall-api-reference/alertgroups.md index 76be1aca..e578644d 100644 --- a/docs/sources/oncall-api-reference/alertgroups.md +++ b/docs/sources/oncall-api-reference/alertgroups.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/alertgroups/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/alertgroups/ title: Alert groups HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/alertgroups/" weight: 400 --- diff --git a/docs/sources/oncall-api-reference/alerts.md b/docs/sources/oncall-api-reference/alerts.md index be215ed8..d67f8e14 100644 --- a/docs/sources/oncall-api-reference/alerts.md +++ b/docs/sources/oncall-api-reference/alerts.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/alerts/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/alerts/ title: Alerts HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/alerts/" weight: 100 --- diff --git a/docs/sources/oncall-api-reference/escalation_chains.md b/docs/sources/oncall-api-reference/escalation_chains.md index 29638dbd..f88b8d71 100644 --- a/docs/sources/oncall-api-reference/escalation_chains.md +++ b/docs/sources/oncall-api-reference/escalation_chains.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/escalation_chains/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/escalation_chains/ title: Escalation Chains HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/escalation_chains/" weight: 200 --- diff --git a/docs/sources/oncall-api-reference/escalation_policies.md b/docs/sources/oncall-api-reference/escalation_policies.md index 06e366fb..26c8a470 100644 --- a/docs/sources/oncall-api-reference/escalation_policies.md +++ b/docs/sources/oncall-api-reference/escalation_policies.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/escalation_policies/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/escalation_policies/ title: Escalation Policies HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/escalation_policies/" weight: 300 --- diff --git a/docs/sources/oncall-api-reference/integrations.md b/docs/sources/oncall-api-reference/integrations.md index 0f7af01d..282e39df 100644 --- a/docs/sources/oncall-api-reference/integrations.md +++ b/docs/sources/oncall-api-reference/integrations.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/integrations/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/integrations/ title: Integrations HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/integrations/" weight: 500 --- diff --git a/docs/sources/oncall-api-reference/on_call_shifts.md b/docs/sources/oncall-api-reference/on_call_shifts.md index 37bc19b2..f06a8d12 100644 --- a/docs/sources/oncall-api-reference/on_call_shifts.md +++ b/docs/sources/oncall-api-reference/on_call_shifts.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/on_call_shifts/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/on_call_shifts/ title: OnCall shifts HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/on_call_shifts/" weight: 600 --- diff --git a/docs/sources/oncall-api-reference/outgoing_webhooks.md b/docs/sources/oncall-api-reference/outgoing_webhooks.md index a9d7fec1..deb26150 100644 --- a/docs/sources/oncall-api-reference/outgoing_webhooks.md +++ b/docs/sources/oncall-api-reference/outgoing_webhooks.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/outgoing_webhooks/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/outgoing_webhooks/ title: Outgoing webhooks HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/outgoing_webhooks/" weight: 700 --- diff --git a/docs/sources/oncall-api-reference/personal_notification_rules.md b/docs/sources/oncall-api-reference/personal_notification_rules.md index 2165d1c3..fdf92646 100644 --- a/docs/sources/oncall-api-reference/personal_notification_rules.md +++ b/docs/sources/oncall-api-reference/personal_notification_rules.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/personal_notification_rules/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/ title: Personal Notification Rules HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/personal_notification_rules/" weight: 800 --- diff --git a/docs/sources/oncall-api-reference/postmortem_messages.md b/docs/sources/oncall-api-reference/postmortem_messages.md index 4046b11f..f3f5aff8 100644 --- a/docs/sources/oncall-api-reference/postmortem_messages.md +++ b/docs/sources/oncall-api-reference/postmortem_messages.md @@ -1,9 +1,9 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/postmortem_messages/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/postmortem_messages/ draft: true title: Postmortem Messages HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/postmortem_messages/" weight: 900 --- diff --git a/docs/sources/oncall-api-reference/postmortems.md b/docs/sources/oncall-api-reference/postmortems.md index 7393201d..91797f74 100644 --- a/docs/sources/oncall-api-reference/postmortems.md +++ b/docs/sources/oncall-api-reference/postmortems.md @@ -1,9 +1,9 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/postmortems/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/postmortems/ draft: true title: Postmortem HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/postmortems/" weight: 1000 --- diff --git a/docs/sources/oncall-api-reference/routes.md b/docs/sources/oncall-api-reference/routes.md index bff5d3d0..5f92e79a 100644 --- a/docs/sources/oncall-api-reference/routes.md +++ b/docs/sources/oncall-api-reference/routes.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/routes/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/routes/ title: Routes HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/routes/" weight: 1100 --- diff --git a/docs/sources/oncall-api-reference/schedules.md b/docs/sources/oncall-api-reference/schedules.md index c42f6bce..53b19f81 100644 --- a/docs/sources/oncall-api-reference/schedules.md +++ b/docs/sources/oncall-api-reference/schedules.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/schedules/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/schedules/ title: Schedule HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/schedules/" weight: 1200 --- diff --git a/docs/sources/oncall-api-reference/slack_channels.md b/docs/sources/oncall-api-reference/slack_channels.md index 887db569..f5516688 100644 --- a/docs/sources/oncall-api-reference/slack_channels.md +++ b/docs/sources/oncall-api-reference/slack_channels.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/slack_channels/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/slack_channels/ title: Slack Channels HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/slack_channels/" weight: 1300 --- diff --git a/docs/sources/oncall-api-reference/user_groups.md b/docs/sources/oncall-api-reference/user_groups.md index 5a8815d3..c078eb13 100644 --- a/docs/sources/oncall-api-reference/user_groups.md +++ b/docs/sources/oncall-api-reference/user_groups.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/user_groups/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/user_groups/ title: OnCall User Groups HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/user_groups/" weight: 1400 --- diff --git a/docs/sources/oncall-api-reference/users.md b/docs/sources/oncall-api-reference/users.md index c601cb42..4c520eeb 100644 --- a/docs/sources/oncall-api-reference/users.md +++ b/docs/sources/oncall-api-reference/users.md @@ -1,8 +1,8 @@ --- aliases: - /docs/oncall/latest/oncall-api-reference/users/ +canonical: https://grafana.com/docs/oncall/latest/oncall-api-reference/users/ title: Grafana OnCall Users HTTP API -canonical: "https://grafana.com/docs/oncall/latest/oncall-api-reference/users/" weight: 1500 --- From 78025c2a604d1eb8335780bf2d8ff90d8ffd4693 Mon Sep 17 00:00:00 2001 From: Jack Baldry Date: Thu, 27 Oct 2022 14:01:07 -0400 Subject: [PATCH 11/23] Fix spelling of Alertmanager Signed-off-by: Jack Baldry --- docs/sources/_index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/sources/_index.md b/docs/sources/_index.md index 92f9d004..04026cb9 100644 --- a/docs/sources/_index.md +++ b/docs/sources/_index.md @@ -21,7 +21,7 @@ weight: 1000 Grafana OnCall is an open source incident response management tool built to help teams improve their collaboration and resolve incidents faster. Some of the core strengths of Grafana OnCall include: -- **Support for a broad set of monitoring systems:** Grafana OnCall supports integrations with many monitoring systems, including Grafana, Prometheus, AlertManager, Zabbix, and more. +- **Support for a broad set of monitoring systems:** Grafana OnCall supports integrations with many monitoring systems, including Grafana, Prometheus, Alertmanager, Zabbix, and more. - **Reduce alert noise:** Automatic alert grouping helps avoid alert storms and reduce noise during incidents. Auto-resolve settings can resolve without human intervention when the resolve conditions are met, enabling you to control alert noise and reduce alert fatigue. - **Automatic escalation to on-call rotations:** Grafana OnCall’s flexible calendar integration allows you to define your on-call rotations while managing on-call schedules in your preferred calendar application with iCal format. Configurable alert escalation automatically escalates alerts to on-call team members, notifies slack channels, and more. - **ChatOps focused:** Grafana OnCall integrates closely with your slack workspace to deliver alert notifications to individuals and groups, making daily alerts more visible and easier to manage. From 85d94d342e93f44068069112f1d3b8faddf9825d Mon Sep 17 00:00:00 2001 From: Matvey Kukuy Date: Wed, 2 Nov 2022 16:58:47 +0200 Subject: [PATCH 12/23] Readme about how to add Integrations and Zabbix Integration (#653) * Readme and zabbix * Typos * Linking --- DEVELOPER.md | 2 + README.md | 1 + engine/config_integrations/README.md | 21 ++++++++++ engine/config_integrations/zabbix.py | 62 ++++++++++++++++++++++++++++ engine/settings/base.py | 1 + 5 files changed, 87 insertions(+) create mode 100644 engine/config_integrations/README.md create mode 100644 engine/config_integrations/zabbix.py diff --git a/DEVELOPER.md b/DEVELOPER.md index e65f186a..f85cf648 100644 --- a/DEVELOPER.md +++ b/DEVELOPER.md @@ -20,6 +20,8 @@ ## Developer quickstart +Related: [How to develop integrations](/engine/config_integrations/README.md) + ### Code style - [isort](https://github.com/PyCQA/isort), [black](https://github.com/psf/black) and [flake8](https://github.com/PyCQA/flake8) are used to format backend code diff --git a/README.md b/README.md index 08019328..96455f6e 100644 --- a/README.md +++ b/README.md @@ -87,5 +87,6 @@ See [Grafana docs](https://grafana.com/docs/grafana/latest/administration/plugin - _Migration from the PagerDuty_ - [Migrator](https://github.com/grafana/oncall/tree/dev/tools/pagerduty-migrator) - _Documentation_ - [Grafana OnCall](https://grafana.com/docs/grafana-cloud/oncall/) +- _How To Add Integration_ - [How to Add Integration](https://github.com/grafana/oncall/tree/dev/engine/config_integrations/README.md) - _Blog Post_ - [Announcing Grafana OnCall, the easiest way to do on-call management](https://grafana.com/blog/2021/11/09/announcing-grafana-oncall/) - _Presentation_ - [Deep dive into the Grafana, Prometheus, and Alertmanager stack for alerting and on-call management](https://grafana.com/go/observabilitycon/2021/alerting/?pg=blog) diff --git a/engine/config_integrations/README.md b/engine/config_integrations/README.md new file mode 100644 index 00000000..13c7189d --- /dev/null +++ b/engine/config_integrations/README.md @@ -0,0 +1,21 @@ +# Contribute the new Integration to OnCall + +Related: [DEVELOPER.md](/DEVELOPER.md) + +"Integration" in OnCall is a pre-configured webhook for alert consumption from alert sources. Usually, alert sources are monitoring systems such as Grafana or Zabbix. + +Integration is a set of "templates" which are dumped from the integration config once the integration is created. Further changes to "templates" don't reflect on the integration config. Read more about templates [here](https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/). + +This instruction is supposed to help you to build templates to integrate OnCall with a new source of alerts. If you don't want to contribute to OnCall and are looking for a help integrating with custom alert source as a user, refer to [this](https://grafana.com/docs/oncall/latest/integrations/create-custom-templates/) instruction. + +# Files related to Integrations +0. Refer to "Grafana" integration as the most complete example. +1. Each integration should have a `{{integration_name_in_snake_case}}.py` file in `/engine/config_integrations`. There you'll find Templates that will be copied to the Integration Templates once the integration is created by the user in the OnCall UI; Example Payload; and Tests which should match the result of the rendering of Example Payload as using Templates. The best way to build such a file is to create Webhook Integration, write & debug templates in the UI first and copy-paste them to the file after. +2. Each integration should be listed in the `/engine/settings/base.py` file, section `INSTALLED_ONCALL_INTEGRATIONS`. +3. Each integration should have "How to connect" instruction stored as `integration_{{integration_name_in_snake_case}}.html` in the `engine/apps/integrations/html` folder. `.py` file has a `slug` field that is used to locate `.html` file. + +# What do we expect from high-quality integration? + +1. User-friendly integration instruction. +2. Proper grouping following source's logics. If source generates multiple alerts per "detection" it would be nice to provide suitable grouping & resolving configuration in the templates. +3. Awesome rendering. We all love when alerts look good in Slack, SMS and all other rendering destinations. diff --git a/engine/config_integrations/zabbix.py b/engine/config_integrations/zabbix.py new file mode 100644 index 00000000..63b3e3b5 --- /dev/null +++ b/engine/config_integrations/zabbix.py @@ -0,0 +1,62 @@ +# Main +enabled = True +title = "Zabbix" +slug = "zabbix" +short_description = None +description = None +is_displayed_on_web = True +is_featured = False +is_able_to_autoresolve = True +is_demo_alert_enabled = True + +description = None + +# Default templates +slack_title = """\ +*<{{ grafana_oncall_link }}|#{{ grafana_oncall_incident_id }} {{ payload.get("title", "Title undefined (check Slack Title Template)") }}>* via {{ integration_name }} +{% if source_link %} + (*<{{ source_link }}|source>*) +{%- endif %}""" + +slack_message = '{{ payload.get("message", "") }}' + +slack_image_url = '{{ payload.get("image_url", "") }}' + +web_title = '{{ payload.get("title", "Title undefined (check Web Title Template)") }}' + +web_message = slack_message + +web_image_url = slack_image_url + +sms_title = web_title + +phone_call_title = sms_title + +email_title = web_title + +email_message = web_message + +telegram_title = sms_title + +telegram_message = slack_message + +telegram_image_url = slack_image_url + +source_link = "{{ payload.link_to_upstream_details }}" + +grouping_id = '{{ payload.get("alert_uid", "")}}' + +resolve_condition = '{{ payload.get("state", "").upper() == "OK" }}' + +acknowledge_condition = None + +group_verbose_name = web_title + +example_payload = { + "alert_uid": "08d6891a-835c-e661-39fa-96b6a9e26552", + "title": "TestAlert: 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": "This alert was sent by user for the demonstration purposes\nSmth happened. Oh no!", +} diff --git a/engine/settings/base.py b/engine/settings/base.py index e701ea24..b95a389c 100644 --- a/engine/settings/base.py +++ b/engine/settings/base.py @@ -586,6 +586,7 @@ INSTALLED_ONCALL_INTEGRATIONS = [ "config_integrations.maintenance", "config_integrations.manual", "config_integrations.slack_channel", + "config_integrations.zabbix", ] if OSS_INSTALLATION: From c2546460f369e6817c77d539a9359acd3b8ebc2c Mon Sep 17 00:00:00 2001 From: Michael Derynck Date: Wed, 2 Nov 2022 10:36:12 -0600 Subject: [PATCH 13/23] Add user and org id to log to make troubleshooting easier --- engine/engine/middlewares.py | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/engine/engine/middlewares.py b/engine/engine/middlewares.py index 90c1e130..367bf69c 100644 --- a/engine/engine/middlewares.py +++ b/engine/engine/middlewares.py @@ -23,19 +23,21 @@ class RequestTimeLoggingMiddleware(MiddlewareMixin): seconds = (dt - request._logging_start_dt).total_seconds() status_code = 0 if response is None else response.status_code content_length = request.headers.get("content-length", default=0) - integration_type = "N/A" - integration_token = "N/A" + message = ( + "inbound " + f"latency={str(seconds)} status={status_code} method={request.method} path={request.path} " + f"content-length={content_length} slow={int(seconds > settings.SLOW_THRESHOLD_SECONDS)} " + ) + if request.user and request.user.id: + user_id = request.user.id + org_id = request.user.organization_id + message += f"user_id={user_id} org_id={org_id} " if request.path.startswith("/integrations/v1"): split_path = request.path.split("/") integration_type = split_path[3] integration_token = split_path[4] - logging.info( - "inbound " - f"latency={str(seconds)} status={status_code} method={request.method} path={request.path} " - f"content-length={content_length} slow={int(seconds > settings.SLOW_THRESHOLD_SECONDS)} " - f"integration_type={integration_type} " - f"integration_token={integration_token}" - ) + message += f"integration_type={integration_type} integration_token={integration_token} " + logging.info(message) def process_request(self, request): self.log_message(request, None, "request") From 538e28e739e612587f1775d3742ea371c3e59102 Mon Sep 17 00:00:00 2001 From: Michael Derynck Date: Wed, 2 Nov 2022 10:47:26 -0600 Subject: [PATCH 14/23] Check user attribute --- engine/engine/middlewares.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/engine/middlewares.py b/engine/engine/middlewares.py index 367bf69c..cf5878ad 100644 --- a/engine/engine/middlewares.py +++ b/engine/engine/middlewares.py @@ -28,7 +28,7 @@ class RequestTimeLoggingMiddleware(MiddlewareMixin): f"latency={str(seconds)} status={status_code} method={request.method} path={request.path} " f"content-length={content_length} slow={int(seconds > settings.SLOW_THRESHOLD_SECONDS)} " ) - if request.user and request.user.id: + if hasattr(request, "user") and request.user and request.user.id: user_id = request.user.id org_id = request.user.organization_id message += f"user_id={user_id} org_id={org_id} " From 3e2d52ad517db90312527ae36d43fbc43a4364b6 Mon Sep 17 00:00:00 2001 From: Matias Bordese Date: Mon, 31 Oct 2022 14:10:26 -0300 Subject: [PATCH 15/23] Update web schedule events to return all-day as datetimes --- engine/apps/api/views/schedule.py | 8 ++++- .../apps/schedules/models/on_call_schedule.py | 28 +++++++++++---- .../schedules/tests/test_on_call_schedule.py | 36 +++++++++++++++---- 3 files changed, 59 insertions(+), 13 deletions(-) diff --git a/engine/apps/api/views/schedule.py b/engine/apps/api/views/schedule.py index 04de4393..7ecebaf4 100644 --- a/engine/apps/api/views/schedule.py +++ b/engine/apps/api/views/schedule.py @@ -264,7 +264,13 @@ class ScheduleView( if filter_by is not None and filter_by != EVENTS_FILTER_BY_FINAL: filter_by = OnCallSchedule.PRIMARY if filter_by == EVENTS_FILTER_BY_ROTATION else OnCallSchedule.OVERRIDES events = schedule.filter_events( - user_tz, starting_date, days=days, with_empty=True, with_gap=resolve_schedule, filter_by=filter_by + user_tz, + starting_date, + days=days, + with_empty=True, + with_gap=resolve_schedule, + filter_by=filter_by, + all_day_datetime=True, ) else: # return final schedule events = schedule.final_events(user_tz, starting_date, days) diff --git a/engine/apps/schedules/models/on_call_schedule.py b/engine/apps/schedules/models/on_call_schedule.py index 24aa8d0d..e2287ecd 100644 --- a/engine/apps/schedules/models/on_call_schedule.py +++ b/engine/apps/schedules/models/on_call_schedule.py @@ -202,7 +202,16 @@ class OnCallSchedule(PolymorphicModel): """Return public primary keys for all users referenced in the schedule.""" return set() - def filter_events(self, user_timezone, starting_date, days, with_empty=False, with_gap=False, filter_by=None): + def filter_events( + self, + user_timezone, + starting_date, + days, + with_empty=False, + with_gap=False, + filter_by=None, + all_day_datetime=False, + ): """Return filtered events from schedule.""" shifts = ( list_of_oncall_shifts_from_ical( @@ -212,13 +221,18 @@ class OnCallSchedule(PolymorphicModel): ) events = [] for shift in shifts: - all_day = type(shift["start"]) == datetime.date + start = shift["start"] + all_day = type(start) == datetime.date + # fix confusing end date for all-day event + end = shift["end"] - timezone.timedelta(days=1) if all_day else shift["end"] + if all_day and all_day_datetime: + start = datetime.datetime.combine(start, datetime.datetime.min.time(), tzinfo=pytz.UTC) + end = datetime.datetime.combine(start, datetime.datetime.max.time(), tzinfo=pytz.UTC) is_gap = shift.get("is_gap", False) shift_json = { "all_day": all_day, - "start": shift["start"], - # fix confusing end date for all-day event - "end": shift["end"] - timezone.timedelta(days=1) if all_day else shift["end"], + "start": start, + "end": end, "users": [ { "display_name": user.username, @@ -246,7 +260,9 @@ class OnCallSchedule(PolymorphicModel): def final_events(self, user_tz, starting_date, days): """Return schedule final events, after resolving shifts and overrides.""" - events = self.filter_events(user_tz, starting_date, days=days, with_empty=True, with_gap=True) + events = self.filter_events( + user_tz, starting_date, days=days, with_empty=True, with_gap=True, all_day_datetime=True + ) events = self._resolve_schedule(events) return events diff --git a/engine/apps/schedules/tests/test_on_call_schedule.py b/engine/apps/schedules/tests/test_on_call_schedule.py index 8bb079f4..93a2c8ff 100644 --- a/engine/apps/schedules/tests/test_on_call_schedule.py +++ b/engine/apps/schedules/tests/test_on_call_schedule.py @@ -246,14 +246,38 @@ def test_filter_events_ical_all_day(make_organization, make_user_for_organizatio events = schedule.final_events("UTC", start_date, days=2) expected_events = [ - # all_day, users, start - (False, ["@Bernard Desruisseaux"], datetime.datetime(2021, 1, 26, 8, 0, tzinfo=pytz.UTC)), - (True, ["@Alex"], datetime.date(2021, 1, 27)), - (False, ["@Bob"], datetime.datetime(2021, 1, 27, 8, 0, tzinfo=pytz.UTC)), + # all_day, users, start, end + ( + False, + ["@Bernard Desruisseaux"], + datetime.datetime(2021, 1, 26, 8, 0, tzinfo=pytz.UTC), + datetime.datetime(2021, 1, 26, 17, 0, tzinfo=pytz.UTC), + ), + ( + True, + ["@Alex"], + datetime.datetime(2021, 1, 27, 0, 0, tzinfo=pytz.UTC), + datetime.datetime(2021, 1, 27, 23, 59, 59, 999999, tzinfo=pytz.UTC), + ), + ( + False, + ["@Bob"], + datetime.datetime(2021, 1, 27, 8, 0, tzinfo=pytz.UTC), + datetime.datetime(2021, 1, 27, 17, 0, tzinfo=pytz.UTC), + ), + ] + expected = [ + {"all_day": all_day, "users": users, "start": start, "end": end} + for all_day, users, start, end in expected_events ] - expected = [{"all_day": all_day, "users": users, "start": start} for all_day, users, start in expected_events] returned = [ - {"all_day": e["all_day"], "users": [u["display_name"] for u in e["users"]], "start": e["start"]} for e in events + { + "all_day": e["all_day"], + "users": [u["display_name"] for u in e["users"]], + "start": e["start"], + "end": e["end"], + } + for e in events ] assert returned == expected From 5b29ab92ead9786015c99e87652add8b442eafa0 Mon Sep 17 00:00:00 2001 From: Michael Derynck Date: Wed, 2 Nov 2022 16:10:41 -0600 Subject: [PATCH 16/23] Migration for regions and organizations --- .../migrations/0004_auto_20221025_0316.py | 33 +++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 engine/apps/user_management/migrations/0004_auto_20221025_0316.py diff --git a/engine/apps/user_management/migrations/0004_auto_20221025_0316.py b/engine/apps/user_management/migrations/0004_auto_20221025_0316.py new file mode 100644 index 00000000..8d1b15c8 --- /dev/null +++ b/engine/apps/user_management/migrations/0004_auto_20221025_0316.py @@ -0,0 +1,33 @@ +# Generated by Django 3.2.15 on 2022-10-25 03:16 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('user_management', '0003_user_hide_phone_number'), + ] + + operations = [ + migrations.CreateModel( + name='Region', + fields=[ + ('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(max_length=300)), + ('slug', models.CharField(max_length=50, unique=True)), + ('oncall_backend_url', models.URLField(null=True)), + ], + ), + migrations.AddField( + model_name='organization', + name='region_slug', + field=models.CharField(default=None, max_length=300, null=True), + ), + migrations.AddField( + model_name='organization', + name='migration_destination', + field=models.ForeignKey(db_column='migration_destination_slug', default=None, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='regions', to='user_management.region', to_field='slug'), + ), + ] From c01068898a3e2a7a2b5cd038506354e860b1aabb Mon Sep 17 00:00:00 2001 From: David van der Spek Date: Thu, 3 Nov 2022 08:31:00 +0100 Subject: [PATCH 17/23] Helm: allow for using existing secret for RabbitMQ (#761) * init rabbitmq existing secret Signed-off-by: David van der Spek * bump chart Signed-off-by: David van der Spek Signed-off-by: David van der Spek --- helm/oncall/Chart.yaml | 2 +- helm/oncall/README.md | 5 +++++ helm/oncall/templates/_env.tpl | 20 +++++++++++++++++++- helm/oncall/templates/secrets.yaml | 4 ++-- helm/oncall/values.yaml | 6 ++++++ 5 files changed, 33 insertions(+), 4 deletions(-) diff --git a/helm/oncall/Chart.yaml b/helm/oncall/Chart.yaml index fd0483fd..b1b7e18a 100644 --- a/helm/oncall/Chart.yaml +++ b/helm/oncall/Chart.yaml @@ -8,7 +8,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.0.7 +version: 1.0.8 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to diff --git a/helm/oncall/README.md b/helm/oncall/README.md index d64e6c89..92fcd911 100644 --- a/helm/oncall/README.md +++ b/helm/oncall/README.md @@ -224,6 +224,11 @@ externalRabbitmq: port: user: password: + protocol: + vhost: + existingSecret: "" + passwordKey: password + usernameKey: username ``` ### Connect external Redis diff --git a/helm/oncall/templates/_env.tpl b/helm/oncall/templates/_env.tpl index 89d1a52c..855ce711 100644 --- a/helm/oncall/templates/_env.tpl +++ b/helm/oncall/templates/_env.tpl @@ -237,13 +237,21 @@ {{- define "snippet.rabbitmq.env" -}} {{- if eq .Values.broker.type "rabbitmq" -}} +{{- if and (not .Values.rabbitmq.enabled) (not .Values.externalRabbitmq.existingSecret) (not .Values.externalRabbitmq.usernameKey) .Values.externalRabbitmq.user }} - name: RABBITMQ_USERNAME value: {{ include "snippet.rabbitmq.user" . }} +{{- else if and (not .Values.rabbitmq.enabled) .Values.externalRabbitmq.existingSecret .Values.externalRabbitmq.usernameKey (not .Values.externalRabbitmq.user) }} +- name: RABBITMQ_USERNAME + valueFrom: + secretKeyRef: + name: {{ include "snippet.rabbitmq.password.secret.name" . }} + key: {{ .Values.externalRabbitmq.usernameKey }} +{{- end }} - name: RABBITMQ_PASSWORD valueFrom: secretKeyRef: name: {{ include "snippet.rabbitmq.password.secret.name" . }} - key: rabbitmq-password + key: {{ include "snippet.rabbitmq.password.secret.key" . }} - name: RABBITMQ_HOST value: {{ include "snippet.rabbitmq.host" . }} - name: RABBITMQ_PORT @@ -298,11 +306,21 @@ {{- define "snippet.rabbitmq.password.secret.name" -}} {{- if and (not .Values.rabbitmq.enabled) .Values.externalRabbitmq.password -}} {{ include "oncall.fullname" . }}-rabbitmq-external +{{- else if and (not .Values.rabbitmq.enabled) .Values.externalRabbitmq.existingSecret -}} +{{ .Values.externalRabbitmq.existingSecret }} {{- else -}} {{ include "oncall.rabbitmq.fullname" . }} {{- end -}} {{- end -}} +{{- define "snippet.rabbitmq.password.secret.key" -}} +{{- if and (not .Values.rabbitmq.enabled) .Values.externalRabbitmq.passwordKey -}} +{{ .Values.externalRabbitmq.passwordKey }} +{{- else -}} +rabbitmq-password +{{- end -}} +{{- end -}} + {{- define "snippet.redis.host" -}} {{- if and (not .Values.redis.enabled) .Values.externalRedis.host -}} {{- required "externalRedis.host is required if not redis.enabled" .Values.externalRedis.host | quote }} diff --git a/helm/oncall/templates/secrets.yaml b/helm/oncall/templates/secrets.yaml index 0997c93d..dfd7cdb2 100644 --- a/helm/oncall/templates/secrets.yaml +++ b/helm/oncall/templates/secrets.yaml @@ -21,14 +21,14 @@ data: mariadb-root-password: {{ required "externalMysql.password is required if not mariadb.enabled" .Values.externalMysql.password | b64enc | quote }} {{- end }} --- -{{ if and (eq .Values.broker.type "rabbitmq") (not .Values.rabbitmq.enabled) -}} +{{ if and (eq .Values.broker.type "rabbitmq") (not .Values.rabbitmq.enabled) (not .Values.externalRabbitmq.existingSecret) -}} apiVersion: v1 kind: Secret metadata: name: {{ include "oncall.fullname" . }}-rabbitmq-external type: Opaque data: - rabbitmq-password: {{ required "externalRabbitmq.password is required if not rabbitmq.enabled" .Values.externalRabbitmq.password | b64enc | quote }} + rabbitmq-password: {{ required "externalRabbitmq.password is required if not rabbitmq.enabled and not externalRabbitmq.existingSecret" .Values.externalRabbitmq.password | b64enc | quote }} {{- end }} --- {{ if not .Values.redis.enabled -}} diff --git a/helm/oncall/values.yaml b/helm/oncall/values.yaml index 5c30878d..3de0e122 100644 --- a/helm/oncall/values.yaml +++ b/helm/oncall/values.yaml @@ -239,6 +239,12 @@ externalRabbitmq: password: protocol: vhost: + # use an existing secret for the rabbitmq password + existingSecret: "" + # the key in the secret containing the rabbitmq password + passwordKey: password + # the key in the secret containing the rabbitmq username + usernameKey: username # Redis is included into this release for the convenience. # It is recommended to host it separately from this release From e103ec9152f0945deab760bf944c9d8a11975389 Mon Sep 17 00:00:00 2001 From: Matias Bordese Date: Thu, 3 Nov 2022 11:21:42 -0300 Subject: [PATCH 18/23] Fix all-day end as datetime value Co-authored-by: Vadim Stepanov --- engine/apps/schedules/models/on_call_schedule.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engine/apps/schedules/models/on_call_schedule.py b/engine/apps/schedules/models/on_call_schedule.py index e2287ecd..bd79c190 100644 --- a/engine/apps/schedules/models/on_call_schedule.py +++ b/engine/apps/schedules/models/on_call_schedule.py @@ -227,7 +227,7 @@ class OnCallSchedule(PolymorphicModel): end = shift["end"] - timezone.timedelta(days=1) if all_day else shift["end"] if all_day and all_day_datetime: start = datetime.datetime.combine(start, datetime.datetime.min.time(), tzinfo=pytz.UTC) - end = datetime.datetime.combine(start, datetime.datetime.max.time(), tzinfo=pytz.UTC) + end = datetime.datetime.combine(end, datetime.datetime.max.time(), tzinfo=pytz.UTC) is_gap = shift.get("is_gap", False) shift_json = { "all_day": all_day, From e9df5ab5c9cd7620fec8843b87240a2a3fa5594c Mon Sep 17 00:00:00 2001 From: Vadim Stepanov Date: Thu, 3 Nov 2022 14:45:13 +0000 Subject: [PATCH 19/23] Send emails from .grafana.net for cloud (#766) --- engine/apps/email/tasks.py | 6 +- engine/apps/email/tests/test_notify_user.py | 69 +++++++++++++++++++++ 2 files changed, 74 insertions(+), 1 deletion(-) diff --git a/engine/apps/email/tasks.py b/engine/apps/email/tasks.py index d9054745..403d4cdc 100644 --- a/engine/apps/email/tasks.py +++ b/engine/apps/email/tasks.py @@ -76,9 +76,13 @@ def notify_user_async(user_pk, alert_group_pk, notification_policy_pk): subject, html_message = build_subject_and_message(alert_group, emails_left) message = strip_tags(html_message) - email_from = settings.EMAIL_HOST_USER recipient_list = [user.email] + if settings.LICENSE == settings.CLOUD_LICENSE_NAME: + email_from = "oncall@{}.grafana.net".format(user.organization.stack_slug) + else: + email_from = live_settings.EMAIL_HOST_USER + connection = get_connection( host=live_settings.EMAIL_HOST, port=live_settings.EMAIL_PORT, diff --git a/engine/apps/email/tests/test_notify_user.py b/engine/apps/email/tests/test_notify_user.py index f5a10601..321d420a 100644 --- a/engine/apps/email/tests/test_notify_user.py +++ b/engine/apps/email/tests/test_notify_user.py @@ -155,3 +155,72 @@ def test_notify_user_no_emails_left( log_record = notification_policy.personal_log_records.last() assert log_record.type == UserNotificationPolicyLogRecord.TYPE_PERSONAL_NOTIFICATION_FAILED assert log_record.notification_error_code == UserNotificationPolicyLogRecord.ERROR_NOTIFICATION_MAIL_LIMIT_EXCEEDED + + +@pytest.mark.django_db +def test_notify_user_from_email_oss( + settings, + make_organization, + make_user_for_organization, + make_token_for_organization, + make_alert_receive_channel, + make_alert_group, + make_alert, + make_user_notification_policy, +): + settings.LICENSE = settings.OPEN_SOURCE_LICENSE_NAME + settings.EMAIL_BACKEND = "django.core.mail.backends.locmem.EmailBackend" + settings.EMAIL_HOST = "test" + settings.EMAIL_HOST_USER = "test@test.com" + + organization = make_organization(stack_slug="example") + user = make_user_for_organization(organization) + + alert_receive_channel = make_alert_receive_channel(organization) + alert_group = make_alert_group(alert_receive_channel) + + make_alert(alert_group=alert_group, raw_request_data=alert_receive_channel.config.example_payload) + + notification_policy = make_user_notification_policy( + user, + UserNotificationPolicy.Step.NOTIFY, + notify_by=8, + important=False, + ) + + notify_user_async(user.pk, alert_group.pk, notification_policy.pk) + assert mail.outbox[0].from_email == "test@test.com" + + +@pytest.mark.django_db +def test_notify_user_from_email_cloud( + settings, + make_organization, + make_user_for_organization, + make_token_for_organization, + make_alert_receive_channel, + make_alert_group, + make_alert, + make_user_notification_policy, +): + settings.LICENSE = settings.CLOUD_LICENSE_NAME + settings.EMAIL_BACKEND = "django.core.mail.backends.locmem.EmailBackend" + settings.EMAIL_HOST = "test" + + organization = make_organization(stack_slug="slug") + user = make_user_for_organization(organization) + + alert_receive_channel = make_alert_receive_channel(organization) + alert_group = make_alert_group(alert_receive_channel) + + make_alert(alert_group=alert_group, raw_request_data=alert_receive_channel.config.example_payload) + + notification_policy = make_user_notification_policy( + user, + UserNotificationPolicy.Step.NOTIFY, + notify_by=8, + important=False, + ) + + notify_user_async(user.pk, alert_group.pk, notification_policy.pk) + assert mail.outbox[0].from_email == "oncall@slug.grafana.net" From e2456315af4856771b571df18e507df4dc8ade93 Mon Sep 17 00:00:00 2001 From: Vadim Stepanov Date: Thu, 3 Nov 2022 16:18:37 +0000 Subject: [PATCH 20/23] Allow no-auth SMTP connection for email notifications (#759) * DEFAULT_FROM_EMAIL -> EMAIL_FROM * add EMAIL_FROM live setting * EMAIL_FROM -> EMAIL_FROM_ADDRESS * merge dev * add test for get_from_email * allow live settings to be null on internal API * remove redundant tests --- docs/sources/open-source/_index.md | 3 +- engine/apps/api/serializers/live_setting.py | 2 +- engine/apps/base/models/live_setting.py | 2 + engine/apps/email/tasks.py | 18 +++-- engine/apps/email/tests/test_notify_user.py | 78 ++++++--------------- engine/settings/base.py | 2 +- helm/oncall/templates/_env.tpl | 2 +- 7 files changed, 41 insertions(+), 66 deletions(-) diff --git a/docs/sources/open-source/_index.md b/docs/sources/open-source/_index.md index fdc3a1a8..8463fd82 100644 --- a/docs/sources/open-source/_index.md +++ b/docs/sources/open-source/_index.md @@ -195,6 +195,7 @@ Grafana OnCall is capable of sending emails using SMTP as a user notification st - `EMAIL_HOST_USER` - SMTP server user - `EMAIL_HOST_PASSWORD` - SMTP server password - `EMAIL_PORT` (default is `587`) - SMTP server port -- `EMAIL_USE_TLS` (default is `True`) - to enable/disable TLS +- `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. After enabling the email integration, it will be possible to use the `Notify by email` notification step in user settings. diff --git a/engine/apps/api/serializers/live_setting.py b/engine/apps/api/serializers/live_setting.py index bf431341..15806b0e 100644 --- a/engine/apps/api/serializers/live_setting.py +++ b/engine/apps/api/serializers/live_setting.py @@ -5,7 +5,7 @@ from apps.base.models import LiveSetting class LiveSettingSerializer(serializers.ModelSerializer): id = serializers.CharField(read_only=True, source="public_primary_key") - value = serializers.JSONField(allow_null=False) + value = serializers.JSONField(allow_null=True) class Meta: model = LiveSetting diff --git a/engine/apps/base/models/live_setting.py b/engine/apps/base/models/live_setting.py index 4e2664d7..09845e6f 100644 --- a/engine/apps/base/models/live_setting.py +++ b/engine/apps/base/models/live_setting.py @@ -38,6 +38,7 @@ class LiveSetting(models.Model): "EMAIL_HOST_USER", "EMAIL_HOST_PASSWORD", "EMAIL_USE_TLS", + "EMAIL_FROM_ADDRESS", "TWILIO_ACCOUNT_SID", "TWILIO_AUTH_TOKEN", "TWILIO_NUMBER", @@ -61,6 +62,7 @@ class LiveSetting(models.Model): "EMAIL_HOST_USER": "SMTP server user", "EMAIL_HOST_PASSWORD": "SMTP server password", "EMAIL_USE_TLS": "SMTP enable/disable TLS", + "EMAIL_FROM_ADDRESS": "Email address used to send emails. If not specified, EMAIL_HOST_USER will be used.", "SLACK_SIGNING_SECRET": ( "Check