From 6dcaf52efb926d7c31ab4e0ab52b16a8936a3e33 Mon Sep 17 00:00:00 2001 From: Innokentii Konstantinov Date: Tue, 25 Jul 2023 12:31:28 +0800 Subject: [PATCH] Remove integration html instructions (#2627) Remove integration html instructions, They were migrated to the docs --- .../apps/alerts/integration_options_mixin.py | 3 - .../alerts/models/alert_receive_channel.py | 4 - .../api/serializers/alert_receive_channel.py | 11 +-- .../api/serializers/integration_heartbeat.py | 14 +-- .../heartbeat/_heartbeat_text_creator.py | 5 - .../metadata/heartbeat/alertmanager.py | 1 - .../metadata/heartbeat/elastalert.py | 2 - .../metadata/heartbeat/formatted_webhook.py | 1 - .../metadata/heartbeat/grafana.py | 1 - .../integrations/metadata/heartbeat/prtg.py | 1 - .../metadata/heartbeat/webhook.py | 2 - .../integrations/metadata/heartbeat/zabbix.py | 2 - .../heartbeat_instructions/alertmanager.html | 41 -------- .../heartbeat_instructions/elastalert.html | 11 --- .../formatted_webhook.html | 16 --- .../heartbeat_instructions/grafana.html | 37 ------- .../heartbeat_instructions/prtg.html | 3 - .../heartbeat_instructions/webhook.html | 16 --- .../heartbeat_instructions/zabbix.html | 33 ------- .../html/integration_alertmanager.html | 33 ------- .../html/integration_alertmanager_v2.html | 20 ---- .../html/integration_amazon_sns.html | 28 ------ .../html/integration_appdynamics.html | 93 ------------------ .../templates/html/integration_curler.html | 11 --- .../templates/html/integration_datadog.html | 33 ------- .../templates/html/integration_demo.html | 1 - .../html/integration_direct_paging.html | 2 - .../html/integration_elastalert.html | 22 ----- .../templates/html/integration_fabric.html | 26 ----- .../html/integration_formatted_webhook.html | 47 --------- .../templates/html/integration_grafana.html | 41 -------- .../html/integration_grafana_alerting.html | 62 ------------ .../templates/html/integration_heartbeat.html | 4 - .../html/integration_inbound_email.html | 5 - .../templates/html/integration_jira.html | 20 ---- .../templates/html/integration_kapacitor.html | 22 ----- .../templates/html/integration_manual.html | 7 -- .../templates/html/integration_newrelic.html | 27 ----- .../templates/html/integration_pagerduty.html | 22 ----- .../templates/html/integration_pingdom.html | 27 ----- .../templates/html/integration_prtg.html | 98 ------------------- .../templates/html/integration_sentry.html | 22 ----- .../html/integration_sentry_platform.html | 6 -- .../html/integration_slack_channel.html | 5 - .../html/integration_stackdriver.html | 26 ----- .../html/integration_uptimerobot.html | 51 ---------- .../templates/html/integration_webhook.html | 36 ------- .../templates/html/integration_zabbix.html | 72 -------------- .../templates/html/integration_zendesk.html | 34 ------- .../tests/test_heartbeat_metadata.py | 1 - 50 files changed, 4 insertions(+), 1104 deletions(-) delete mode 100644 engine/apps/integrations/templates/heartbeat_instructions/alertmanager.html delete mode 100644 engine/apps/integrations/templates/heartbeat_instructions/elastalert.html delete mode 100644 engine/apps/integrations/templates/heartbeat_instructions/formatted_webhook.html delete mode 100644 engine/apps/integrations/templates/heartbeat_instructions/grafana.html delete mode 100644 engine/apps/integrations/templates/heartbeat_instructions/prtg.html delete mode 100644 engine/apps/integrations/templates/heartbeat_instructions/webhook.html delete mode 100644 engine/apps/integrations/templates/heartbeat_instructions/zabbix.html delete mode 100644 engine/apps/integrations/templates/html/integration_alertmanager.html delete mode 100644 engine/apps/integrations/templates/html/integration_alertmanager_v2.html delete mode 100644 engine/apps/integrations/templates/html/integration_amazon_sns.html delete mode 100644 engine/apps/integrations/templates/html/integration_appdynamics.html delete mode 100644 engine/apps/integrations/templates/html/integration_curler.html delete mode 100644 engine/apps/integrations/templates/html/integration_datadog.html delete mode 100644 engine/apps/integrations/templates/html/integration_demo.html delete mode 100644 engine/apps/integrations/templates/html/integration_direct_paging.html delete mode 100644 engine/apps/integrations/templates/html/integration_elastalert.html delete mode 100644 engine/apps/integrations/templates/html/integration_fabric.html delete mode 100644 engine/apps/integrations/templates/html/integration_formatted_webhook.html delete mode 100644 engine/apps/integrations/templates/html/integration_grafana.html delete mode 100644 engine/apps/integrations/templates/html/integration_grafana_alerting.html delete mode 100644 engine/apps/integrations/templates/html/integration_heartbeat.html delete mode 100644 engine/apps/integrations/templates/html/integration_inbound_email.html delete mode 100644 engine/apps/integrations/templates/html/integration_jira.html delete mode 100644 engine/apps/integrations/templates/html/integration_kapacitor.html delete mode 100644 engine/apps/integrations/templates/html/integration_manual.html delete mode 100644 engine/apps/integrations/templates/html/integration_newrelic.html delete mode 100644 engine/apps/integrations/templates/html/integration_pagerduty.html delete mode 100644 engine/apps/integrations/templates/html/integration_pingdom.html delete mode 100644 engine/apps/integrations/templates/html/integration_prtg.html delete mode 100644 engine/apps/integrations/templates/html/integration_sentry.html delete mode 100644 engine/apps/integrations/templates/html/integration_sentry_platform.html delete mode 100644 engine/apps/integrations/templates/html/integration_slack_channel.html delete mode 100644 engine/apps/integrations/templates/html/integration_stackdriver.html delete mode 100644 engine/apps/integrations/templates/html/integration_uptimerobot.html delete mode 100644 engine/apps/integrations/templates/html/integration_webhook.html delete mode 100644 engine/apps/integrations/templates/html/integration_zabbix.html delete mode 100644 engine/apps/integrations/templates/html/integration_zendesk.html diff --git a/engine/apps/alerts/integration_options_mixin.py b/engine/apps/alerts/integration_options_mixin.py index cf2d4349..5eef08cd 100644 --- a/engine/apps/alerts/integration_options_mixin.py +++ b/engine/apps/alerts/integration_options_mixin.py @@ -40,9 +40,6 @@ class IntegrationOptionsMixin: integration_config.slug for integration_config in _config if integration_config.is_displayed_on_web ] PUBLIC_API_INTEGRATION_MAP = {integration_config.slug: integration_config.slug for integration_config in _config} - INTEGRATIONS_TO_INSTRUCTIONS_WEB = { - integration_config.slug: f"html/integration_{integration_config.slug}.html" for integration_config in _config - } INTEGRATION_SHORT_DESCRIPTION = { integration_config.slug: integration_config.short_description for integration_config in _config } diff --git a/engine/apps/alerts/models/alert_receive_channel.py b/engine/apps/alerts/models/alert_receive_channel.py index b79a5eb2..fb909ac1 100644 --- a/engine/apps/alerts/models/alert_receive_channel.py +++ b/engine/apps/alerts/models/alert_receive_channel.py @@ -537,10 +537,6 @@ class AlertReceiveChannel(IntegrationOptionsMixin, MaintainableObject): def heartbeat_expired_payload(self): return getattr(self.heartbeat_module, "heartbeat_expired_payload") - @property - def heartbeat_instruction_template(self): - return getattr(self.heartbeat_module, "heartbeat_instruction_template") - @property def heartbeat_module(self): return getattr(heartbeat, self.integration, None) diff --git a/engine/apps/api/serializers/alert_receive_channel.py b/engine/apps/api/serializers/alert_receive_channel.py index 3da3a1a2..250c7405 100644 --- a/engine/apps/api/serializers/alert_receive_channel.py +++ b/engine/apps/api/serializers/alert_receive_channel.py @@ -4,7 +4,6 @@ from django.apps import apps from django.conf import settings from django.core.exceptions import ObjectDoesNotExist from django.core.exceptions import ValidationError as DjangoValidationError -from django.template.loader import render_to_string from jinja2 import TemplateSyntaxError from rest_framework import serializers from rest_framework.exceptions import ValidationError @@ -140,14 +139,8 @@ class AlertReceiveChannelSerializer(EagerLoadingMixin, serializers.ModelSerializ raise BadRequest(detail=AlertReceiveChannel.DuplicateDirectPagingError.DETAIL) def get_instructions(self, obj): - if obj.integration in [AlertReceiveChannel.INTEGRATION_MAINTENANCE]: - return "" - - rendered_instruction_for_web = render_to_string( - AlertReceiveChannel.INTEGRATIONS_TO_INSTRUCTIONS_WEB[obj.integration], {"alert_receive_channel": obj} - ) - - return rendered_instruction_for_web + # Deprecated, kept for api-backward compatibility + return "" # MethodFields are used instead of relevant properties because of properties hit db on each instance in queryset def get_default_channel_filter(self, obj): diff --git a/engine/apps/api/serializers/integration_heartbeat.py b/engine/apps/api/serializers/integration_heartbeat.py index 706afc55..02cc294c 100644 --- a/engine/apps/api/serializers/integration_heartbeat.py +++ b/engine/apps/api/serializers/integration_heartbeat.py @@ -1,6 +1,4 @@ import humanize -from django.conf import settings -from django.template.loader import render_to_string from django.utils import timezone from rest_framework import serializers @@ -9,8 +7,6 @@ from apps.heartbeat.models import IntegrationHeartBeat from common.api_helpers.custom_fields import OrganizationFilteredPrimaryKeyRelatedField from common.api_helpers.mixins import EagerLoadingMixin -NO_INSTRUCTION_MESSAGE = "No instruction" - class IntegrationHeartBeatSerializer(EagerLoadingMixin, serializers.ModelSerializer): id = serializers.CharField(read_only=True, source="public_primary_key") @@ -49,14 +45,8 @@ class IntegrationHeartBeatSerializer(EagerLoadingMixin, serializers.ModelSeriali return self._last_heartbeat_time_verbal(obj) if obj.last_heartbeat_time else None def get_instruction(self, obj): - rendered_instruction = render_to_string( - obj.alert_receive_channel.heartbeat_instruction_template, - { - "heartbeat_url": obj.link, - "service_url": settings.BASE_URL, - }, - ) - return rendered_instruction + # Deprecated. Kept for API backward compatibility. + return "" @staticmethod def _last_heartbeat_time_verbal(instance): diff --git a/engine/apps/integrations/metadata/heartbeat/_heartbeat_text_creator.py b/engine/apps/integrations/metadata/heartbeat/_heartbeat_text_creator.py index 78fc8b03..ccc32774 100644 --- a/engine/apps/integrations/metadata/heartbeat/_heartbeat_text_creator.py +++ b/engine/apps/integrations/metadata/heartbeat/_heartbeat_text_creator.py @@ -11,7 +11,6 @@ class IntegrationHeartBeatText: heartbeat_expired_message: str = "heartbeat_expired" heartbeat_restored_title: str = "heartbeat_restored" heartbeat_restored_message: str = "heartbeat_restored" - heartbeat_instruction_template: str = None class HeartBeatTextCreator: @@ -24,7 +23,6 @@ class HeartBeatTextCreator: heartbeat_expired_message=self._get_heartbeat_expired_message(), heartbeat_restored_title=self._get_heartbeat_restored_title(), heartbeat_restored_message=self._get_heartbeat_restored_message(), - heartbeat_instruction_template=self._get_heartbeat_instruction_template(), ) def _get_heartbeat_expired_title(self): @@ -51,9 +49,6 @@ class HeartBeatTextCreator: ) return heartbeat_expired_message - def _get_heartbeat_instruction_template(self): - return f"heartbeat_instructions/{self.integration_verbal.lower()}.html" - class HeartBeatTextCreatorForTitleGrouping(HeartBeatTextCreator): """ diff --git a/engine/apps/integrations/metadata/heartbeat/alertmanager.py b/engine/apps/integrations/metadata/heartbeat/alertmanager.py index e4935152..2b2679f0 100644 --- a/engine/apps/integrations/metadata/heartbeat/alertmanager.py +++ b/engine/apps/integrations/metadata/heartbeat/alertmanager.py @@ -6,7 +6,6 @@ integration_verbal = PurePath(__file__).stem creator = HeartBeatTextCreatorForTitleGrouping(integration_verbal) heartbeat_text = creator.get_heartbeat_texts() -heartbeat_instruction_template = heartbeat_text.heartbeat_instruction_template heartbeat_expired_title = heartbeat_text.heartbeat_expired_title heartbeat_expired_message = heartbeat_text.heartbeat_expired_message diff --git a/engine/apps/integrations/metadata/heartbeat/elastalert.py b/engine/apps/integrations/metadata/heartbeat/elastalert.py index ab9d9415..04a05d67 100644 --- a/engine/apps/integrations/metadata/heartbeat/elastalert.py +++ b/engine/apps/integrations/metadata/heartbeat/elastalert.py @@ -6,8 +6,6 @@ integration_verbal = PurePath(__file__).stem creator = HeartBeatTextCreator(integration_verbal) heartbeat_text = creator.get_heartbeat_texts() -heartbeat_instruction_template = heartbeat_text.heartbeat_instruction_template - heartbeat_expired_title = heartbeat_text.heartbeat_expired_title heartbeat_expired_message = heartbeat_text.heartbeat_expired_message diff --git a/engine/apps/integrations/metadata/heartbeat/formatted_webhook.py b/engine/apps/integrations/metadata/heartbeat/formatted_webhook.py index adb4ec77..3e44b57e 100644 --- a/engine/apps/integrations/metadata/heartbeat/formatted_webhook.py +++ b/engine/apps/integrations/metadata/heartbeat/formatted_webhook.py @@ -6,7 +6,6 @@ integration_verbal = PurePath(__file__).stem creator = HeartBeatTextCreator(integration_verbal) heartbeat_text = creator.get_heartbeat_texts() -heartbeat_instruction_template = heartbeat_text.heartbeat_instruction_template heartbeat_expired_title = heartbeat_text.heartbeat_expired_title heartbeat_expired_message = heartbeat_text.heartbeat_expired_message diff --git a/engine/apps/integrations/metadata/heartbeat/grafana.py b/engine/apps/integrations/metadata/heartbeat/grafana.py index 8237e4b3..a71011ed 100644 --- a/engine/apps/integrations/metadata/heartbeat/grafana.py +++ b/engine/apps/integrations/metadata/heartbeat/grafana.py @@ -6,7 +6,6 @@ integration_verbal = PurePath(__file__).stem creator = HeartBeatTextCreatorForTitleGrouping(integration_verbal) heartbeat_text = creator.get_heartbeat_texts() -heartbeat_instruction_template = heartbeat_text.heartbeat_instruction_template heartbeat_expired_title = heartbeat_text.heartbeat_expired_title heartbeat_expired_message = heartbeat_text.heartbeat_expired_message diff --git a/engine/apps/integrations/metadata/heartbeat/prtg.py b/engine/apps/integrations/metadata/heartbeat/prtg.py index e77a9308..ddf16333 100644 --- a/engine/apps/integrations/metadata/heartbeat/prtg.py +++ b/engine/apps/integrations/metadata/heartbeat/prtg.py @@ -6,7 +6,6 @@ integration_verbal = PurePath(__file__).stem creator = HeartBeatTextCreator(integration_verbal) heartbeat_text = creator.get_heartbeat_texts() -heartbeat_instruction_template = heartbeat_text.heartbeat_instruction_template heartbeat_expired_title = heartbeat_text.heartbeat_expired_title heartbeat_expired_message = heartbeat_text.heartbeat_expired_message diff --git a/engine/apps/integrations/metadata/heartbeat/webhook.py b/engine/apps/integrations/metadata/heartbeat/webhook.py index 03023e2e..e6283e36 100644 --- a/engine/apps/integrations/metadata/heartbeat/webhook.py +++ b/engine/apps/integrations/metadata/heartbeat/webhook.py @@ -6,8 +6,6 @@ integration_verbal = PurePath(__file__).stem creator = HeartBeatTextCreator(integration_verbal) heartbeat_text = creator.get_heartbeat_texts() -heartbeat_instruction_template = heartbeat_text.heartbeat_instruction_template - heartbeat_expired_title = heartbeat_text.heartbeat_expired_title heartbeat_expired_message = heartbeat_text.heartbeat_expired_message diff --git a/engine/apps/integrations/metadata/heartbeat/zabbix.py b/engine/apps/integrations/metadata/heartbeat/zabbix.py index 921ec9e6..b336b75b 100644 --- a/engine/apps/integrations/metadata/heartbeat/zabbix.py +++ b/engine/apps/integrations/metadata/heartbeat/zabbix.py @@ -6,8 +6,6 @@ integration_verbal = PurePath(__file__).stem creator = HeartBeatTextCreator(integration_verbal) heartbeat_text = creator.get_heartbeat_texts() -heartbeat_instruction_template = heartbeat_text.heartbeat_instruction_template - heartbeat_expired_title = heartbeat_text.heartbeat_expired_title heartbeat_expired_message = heartbeat_text.heartbeat_expired_message diff --git a/engine/apps/integrations/templates/heartbeat_instructions/alertmanager.html b/engine/apps/integrations/templates/heartbeat_instructions/alertmanager.html deleted file mode 100644 index 32931ded..00000000 --- a/engine/apps/integrations/templates/heartbeat_instructions/alertmanager.html +++ /dev/null @@ -1,41 +0,0 @@ -

This configuration will send an alert once a minute, and if alertmanager stops working, OnCall will detect - it and notify you about that.

-
    -
  1. -

    Add the alert generating script to prometheus.yaml file. - Within Prometheus it is trivial to create an expression that we can use as a heartbeat for OnCall, - like vector(1). That expression will always return true.

    -

    Here is an alert that leverages the previous expression to create a heartbeat alert:

    -
    
    -            groups:
    -            - name: meta
    -              rules:
    -              - alert: heartbeat
    -                expr: vector(1)
    -                labels:
    -                  severity: none
    -                annotations:
    -                  description: This is a heartbeat alert for Grafana OnCall
    -                  summary: Heartbeat for Grafana OnCall
    -        
    -
  2. -
  3. Add receiver configuration to prometheus.yaml with the unique url from OnCall global:

    -
    
    -            ...
    -            route:
    -            ...
    -                routes:
    -                - match:
    -                    alertname: heartbeat
    -                  receiver: 'grafana-oncall-heartbeat'
    -                  group_wait: 0s
    -                  group_interval: 1m
    -                  repeat_interval: 50s
    -            receivers:
    -            - name: 'grafana-oncall-heartbeat'
    -            webhook_configs:
    -            - url: {{ heartbeat_url }}
    -                send_resolved: false
    -        
    -
  4. -
\ No newline at end of file diff --git a/engine/apps/integrations/templates/heartbeat_instructions/elastalert.html b/engine/apps/integrations/templates/heartbeat_instructions/elastalert.html deleted file mode 100644 index 18c2bbf9..00000000 --- a/engine/apps/integrations/templates/heartbeat_instructions/elastalert.html +++ /dev/null @@ -1,11 +0,0 @@ -

Add the following rule to ElastAlert

-

-    index: elastalert_status
-    type: any
-    alert: post
-    http_post_url: {{ heartbeat_url }}
-    realert:
-        minutes: 1
-    alert_text: elastalert is still running
-    alert_text_type: alert_text_only
-
\ No newline at end of file diff --git a/engine/apps/integrations/templates/heartbeat_instructions/formatted_webhook.html b/engine/apps/integrations/templates/heartbeat_instructions/formatted_webhook.html deleted file mode 100644 index 4ca9faad..00000000 --- a/engine/apps/integrations/templates/heartbeat_instructions/formatted_webhook.html +++ /dev/null @@ -1,16 +0,0 @@ -
    -
  1. -

    In command line execute following commands:

    -
    
    -            echo 'curl -s {{ heartbeat_url }} > /dev/null' > heartbeat_script.sh
    -            chmod +x heartbeat_script.sh
    -            crontab -e
    -        
    -
  2. -
  3. - Add this line to crontab: -
    
    -            * * * * * /path/to/your/heartbeat_script.sh
    -        
    -
  4. -
\ No newline at end of file diff --git a/engine/apps/integrations/templates/heartbeat_instructions/grafana.html b/engine/apps/integrations/templates/heartbeat_instructions/grafana.html deleted file mode 100644 index 5b895bc1..00000000 --- a/engine/apps/integrations/templates/heartbeat_instructions/grafana.html +++ /dev/null @@ -1,37 +0,0 @@ -{% load static %} -
    -
  1. -

    1. In Alerting > Notification channels, click Add channel.

    -

    - grafana_instruction_1 -

    -
  2. -
  3. -

    2. Enter a Name. The Type is webhook, Enter the unique OnCall URL.

    -

    3. Select Send reminders and set a 5m (minute) interval.

    -

    - grafana_instruction_2 -

    -
  4. -
  5. -

    4. In a dashboard, create a panel that will generate heartbeat alerts.

    -

    5. In the Metrics tab, enter 0 in the query field. -

    - grafana_instruction_3 -

    -

    6. In the Alerting tab, enter an alert name, and conditions that allow the alert to always be enabled. Set the alert interval.

    -

    - grafana_instruction_4 -

    -

    7. In Notifications, select the name of your heartbeat channel.

    -

    - grafana_instruction_5 -

    -

    8. Click Save.

    -
  6. -
\ No newline at end of file diff --git a/engine/apps/integrations/templates/heartbeat_instructions/prtg.html b/engine/apps/integrations/templates/heartbeat_instructions/prtg.html deleted file mode 100644 index 4b451fb2..00000000 --- a/engine/apps/integrations/templates/heartbeat_instructions/prtg.html +++ /dev/null @@ -1,3 +0,0 @@ -

We propose to set up PRTG to send heartbeat GET or POST requests to amixr endpoint to detect an outage of your - monitoring system.
You can write a script which does this and then run the script via an EXE/script Sensor.
- If you add this Sensor to the Core Server, Amixr will send an alert if the Core Server is offline. \ No newline at end of file diff --git a/engine/apps/integrations/templates/heartbeat_instructions/webhook.html b/engine/apps/integrations/templates/heartbeat_instructions/webhook.html deleted file mode 100644 index 4ca9faad..00000000 --- a/engine/apps/integrations/templates/heartbeat_instructions/webhook.html +++ /dev/null @@ -1,16 +0,0 @@ -

    -
  1. -

    In command line execute following commands:

    -
    
    -            echo 'curl -s {{ heartbeat_url }} > /dev/null' > heartbeat_script.sh
    -            chmod +x heartbeat_script.sh
    -            crontab -e
    -        
    -
  2. -
  3. - Add this line to crontab: -
    
    -            * * * * * /path/to/your/heartbeat_script.sh
    -        
    -
  4. -
\ No newline at end of file diff --git a/engine/apps/integrations/templates/heartbeat_instructions/zabbix.html b/engine/apps/integrations/templates/heartbeat_instructions/zabbix.html deleted file mode 100644 index a7490b59..00000000 --- a/engine/apps/integrations/templates/heartbeat_instructions/zabbix.html +++ /dev/null @@ -1,33 +0,0 @@ -{% load static %} -
    -
  1. Open your Zabbix interface
  2. -
  3. We’ll use Zabbix Simple Check to send periodic requests to a special amixr heartbeat endpoint
  4. -
  5. First we would need to create a host. Go to Configuration -> Host Create -> host
  6. -
-zabbix_instruction_1 -
    -
  1. Fill Host name, Groups, DNS name (app.amixr.io), select DNS and click Save
  2. -
-zabbix_instruction_2 -
    -
  1. Click Web and create a new Web Scenario
  2. -
-zabbix_instruction_3 -
    -
  1. Fill the name, interval (10m) and go to the Steps section
  2. -
-zabbix_instruction_4 -
    -
  1. In the steps section add Name, and the unique url from amixr
  2. -
-zabbix_instruction_5 -
    -
  1. In the steps section add Name, and the unique url from amixr
  2. -
- - diff --git a/engine/apps/integrations/templates/html/integration_alertmanager.html b/engine/apps/integrations/templates/html/integration_alertmanager.html deleted file mode 100644 index df7d44b0..00000000 --- a/engine/apps/integrations/templates/html/integration_alertmanager.html +++ /dev/null @@ -1,33 +0,0 @@ -

How to start sending alerts to Grafana OnCall from AlertManager

-

    -
  1. - 1. Add the new receiver to the AlertManager configuration file, for example: -
    -        ...
    -        route:
    -          receiver: 'grafana_oncall'
    -          group_by: [alertname, datacenter, app]
    -        ...
    -        receivers:
    -        - name: 'grafana_oncall'
    -          webhook_configs:
    -          - url: {{ alert_receive_channel.integration_url }}
    -            send_resolved: true
    -        
    -
  2. -

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

diff --git a/engine/apps/integrations/templates/html/integration_alertmanager_v2.html b/engine/apps/integrations/templates/html/integration_alertmanager_v2.html deleted file mode 100644 index 784bbd86..00000000 --- a/engine/apps/integrations/templates/html/integration_alertmanager_v2.html +++ /dev/null @@ -1,20 +0,0 @@ -

How to start sending alerts to Grafana OnCall from AlertManager

-

    -
  1. - 1. Add the new receiver to the AlertManager configuration file: -
    -        receivers:
    -        - name: 'grafana_oncall'
    -          webhook_configs:
    -          - url: {{ alert_receive_channel.integration_url }}
    -            max_alerts: 100
    -        
    - 2. Use receiver in route tree: - - routes: - - matchers: - - severity="critical" - receiver: grafana_oncall - -
  2. -

diff --git a/engine/apps/integrations/templates/html/integration_amazon_sns.html b/engine/apps/integrations/templates/html/integration_amazon_sns.html deleted file mode 100644 index df5f2540..00000000 --- a/engine/apps/integrations/templates/html/integration_amazon_sns.html +++ /dev/null @@ -1,28 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Amazon SNS

-

    -
  1. - 1. Create a new Topic in - https://console.aws.amazon.com/sns -
  2. -
  3. 2. Open this topic, then create a new subscription
  4. -
  5. 3. Choose the protocol HTTPS
  6. -
  7. - 4. Add the following webhook URL to the Amazon SNS Endpoint -
    {{ alert_receive_channel.integration_url }}
    -
  8. -

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_appdynamics.html b/engine/apps/integrations/templates/html/integration_appdynamics.html deleted file mode 100644 index 39a025a6..00000000 --- a/engine/apps/integrations/templates/html/integration_appdynamics.html +++ /dev/null @@ -1,93 +0,0 @@ -

How to start sending alerts to Grafana OnCall from AppDynamics

- -

Create a new HTTP Request Template in AppDynamics to send events to Grafana OnCall using the - integration URL above.
- Refer to AppDynamics documentation for more information on how to create HTTP Request Templates:
- - https://docs.appdynamics.com/appd/23.x/latest/en/appdynamics-essentials/alert-and-respond/actions/http-request-actions-and-templates - -

- -

Use the following values when configuring a new HTTP Request Template:

- -

- Request URL: -
- Method: POST -
- Raw URL: Integration URL above -

- -

- Authentication: -
- Type: None -

- -

- Payload: -
- MIME Type: application/json -
- Template: - -{% verbatim %} -

-{
-  "event": {
-    "eventType": "${latestEvent.eventType}",
-    "id": "${latestEvent.id}",
-    "guid": "${latestEvent.guid}",
-    "eventTypeKey": "${latestEvent.eventTypeKey}",
-    "eventTime": "${latestEvent.eventTime}",
-    "displayName": "${latestEvent.displayName}",
-    "summaryMessage": "${latestEvent.summaryMessage}",
-    "eventMessage": "${latestEvent.eventMessage}",
-    "application": {
-      "name": "${latestEvent.application.name}"
-    },
-    "node": {
-      "name": "${latestEvent.node.name}"
-    },
-    "severity": "${latestEvent.severity}",
-    "deepLink": "${latestEvent.deepLink}"
-  }
-}
-
-{% endverbatim %} - -

- Response Handling Criteria -
- Success Criteria: Status Code 200 -

- -

- Settings: -
- One Request Per Event: Enabled -

- -

- After setting up a template, create a new action in AppDynamics and select the template you created earlier. - Now you can configure policies to trigger the action when certain events occur in AppDynamics. -
- When configuring a policy, select the following events to trigger the action: -

-

- -

- After setting up the connection, you can test it by sending a test request from the AppDynamics UI. -

diff --git a/engine/apps/integrations/templates/html/integration_curler.html b/engine/apps/integrations/templates/html/integration_curler.html deleted file mode 100644 index afbccbcc..00000000 --- a/engine/apps/integrations/templates/html/integration_curler.html +++ /dev/null @@ -1,11 +0,0 @@ -

More details in our documentation

- -
    -
  1. Go to https://curler.amixr.io
  2. -
  3. Set your website URL and E-Mail
  4. -
  5. Click "Edit"
  6. -
  7. Set "Amixr Webhook":
-
{{ alert_receive_channel.integration_url }}
-
    -
  1. Click "Save"
  2. -
\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_datadog.html b/engine/apps/integrations/templates/html/integration_datadog.html deleted file mode 100644 index abc66add..00000000 --- a/engine/apps/integrations/templates/html/integration_datadog.html +++ /dev/null @@ -1,33 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Datadog

-

    -
  1. - 1. Navigate to the Integrations page from the sidebar -
  2. -
  3. 2. Search for webhook in the search bar
  4. -
  5. 3. Enter a name for the integration, for example: grafana-oncall-alerts
  6. -
  7. - 4. Paste the webhook URL, then save -
    {{ alert_receive_channel.integration_url }}
    -
  8. -
  9. - 5. Navigate to the Events page from the sidebar to send the test alert -
  10. -
  11. 6. Type @webhook-grafana-oncall-alerts test alert
  12. -
  13. 7. Click the post button
  14. -

- - -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_demo.html b/engine/apps/integrations/templates/html/integration_demo.html deleted file mode 100644 index 6678d66e..00000000 --- a/engine/apps/integrations/templates/html/integration_demo.html +++ /dev/null @@ -1 +0,0 @@ -

This is the Demointegration for Slack so no actions required.

diff --git a/engine/apps/integrations/templates/html/integration_direct_paging.html b/engine/apps/integrations/templates/html/integration_direct_paging.html deleted file mode 100644 index 0d87618b..00000000 --- a/engine/apps/integrations/templates/html/integration_direct_paging.html +++ /dev/null @@ -1,2 +0,0 @@ - -

You can create a direct page alert group from the web UI

diff --git a/engine/apps/integrations/templates/html/integration_elastalert.html b/engine/apps/integrations/templates/html/integration_elastalert.html deleted file mode 100644 index a200d43f..00000000 --- a/engine/apps/integrations/templates/html/integration_elastalert.html +++ /dev/null @@ -1,22 +0,0 @@ -

How to start sending alerts to Grafana OnCall from ElastAlert

-

    -
  1. - 1. Use the integration URL from above as the ElastAlert webhook -
    {{ alert_receive_channel.integration_url }}
    -
  2. -

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_fabric.html b/engine/apps/integrations/templates/html/integration_fabric.html deleted file mode 100644 index a4f8486d..00000000 --- a/engine/apps/integrations/templates/html/integration_fabric.html +++ /dev/null @@ -1,26 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Fabric

-

    -
  1. 1. Go to https://www.fabric.io/settings/apps
  2. -
  3. 2. Choose your application
  4. -
  5. 3. Navigate to Service Hooks -> WebHook
  6. -
  7. 4. Enter URL: -
    {{ alert_receive_channel.integration_url }}
    -
  8. -
  9. 5. Click Verify
  10. -
  11. 6. Choose "SEND IMPACT CHANGE ALERTS" and "ALSO SEND NON-FATAL ALERTS"
  12. -

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

diff --git a/engine/apps/integrations/templates/html/integration_formatted_webhook.html b/engine/apps/integrations/templates/html/integration_formatted_webhook.html deleted file mode 100644 index 2f1ea320..00000000 --- a/engine/apps/integrations/templates/html/integration_formatted_webhook.html +++ /dev/null @@ -1,47 +0,0 @@ -
- Formatted Webhook is primarily used for custom integrations using scripts. - Use any http client, for example curl, to send POST requests with body using the format in the example below: -
-

-

Body Fields Format:
- -

- -
Request example:
-

-

-curl -X POST \
-  {{ alert_receive_channel.integration_url }} \
-  -H 'Content-Type: Application/json' \
-  -d '{
-    "alert_uid": "08d6891a-835c-e661-39fa-96b6a9e26552",
-    "title": "The whole system is down",
-    "image_url": "https://upload.wikimedia.org/wikipedia/commons/e/ee/Grumpy_Cat_by_Gage_Skidmore.jpg",
-    "state": "alerting",
-    "link_to_upstream_details": "https://en.wikipedia.org/wiki/Downtime",
-    "message": "Smth happened. Oh no!"
-}'
-
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_grafana.html b/engine/apps/integrations/templates/html/integration_grafana.html deleted file mode 100644 index 84de1a3b..00000000 --- a/engine/apps/integrations/templates/html/integration_grafana.html +++ /dev/null @@ -1,41 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Other Grafana

-
- To connect the current Grafana stack alerting automatically, please use the Current Grafana. -
-

    -
  1. - 1. Open your other Grafana instance -
  2. -
  3. - 2. Open Alerting Configuration and go to Contact Points -
  4. -
  5. - 3. Create a new Contact Point with type webhook and url -
    {{ alert_receive_channel.integration_url }}
    -
  6. -
  7. - 4. Open Notification Policies and create a New Specific Policy -
  8. -
  9. - 5. Choose any Matching labels, or leave them empty to route all the alerts to Grafana OnCall -
  10. -
  11. - 6. Choose the Contact point created in step 3 -
  12. -

- - -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

diff --git a/engine/apps/integrations/templates/html/integration_grafana_alerting.html b/engine/apps/integrations/templates/html/integration_grafana_alerting.html deleted file mode 100644 index d54ca521..00000000 --- a/engine/apps/integrations/templates/html/integration_grafana_alerting.html +++ /dev/null @@ -1,62 +0,0 @@ -

Congratulations, you've connected the Grafana Alerting and Grafana OnCall!

-
- This is the integration with current Grafana Alerting. - It already automatically created a new Grafana Alerting Contact Point and - a Specific Route.
- If you want to connect the other Grafana Instance please - choose the Other Grafana Integration instead. -
- -

How to send the Test alert from Grafana Alerting?

-

-

    -
  1. - 1. Open the corresponding Grafana Alerting Contact Point -
  2. -
  3. - 2. Use the Test buton to send an alert to Grafana OnCall -
  4. -
-

- -

How to choose what alerts to send from Grafana Alerting to Grafana OnCall?

-

-

    -
  1. - 1. Open the corresponding Grafana Alerting Specific Route -
  2. -
  3. - 2. All alerts are sent from Grafana Alerting to Grafana OnCall by default, - specify Matching Labels to select which alerts to send -
  4. -
-

- -

What if the Grafana Alerting Contact Point is missing?

-

-

    -
  1. - 1. May be it was deleted, you can always re-create them manually -
  2. -
  3. - 2. Use the following webhook url to create a webhook - Contact Point in Grafana Alerting -
    {{ alert_receive_channel.integration_url }}
    -
  4. -
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

diff --git a/engine/apps/integrations/templates/html/integration_heartbeat.html b/engine/apps/integrations/templates/html/integration_heartbeat.html deleted file mode 100644 index d81e7962..00000000 --- a/engine/apps/integrations/templates/html/integration_heartbeat.html +++ /dev/null @@ -1,4 +0,0 @@ -

Amixr-based Heartbeat Monitoring allows you to monitor long-lasting processes in your infrastructure or backend and ensure they are finshed in expected timeframe.

-

Your unique HeartBeat API link:

-
{{ alert_receive_channel.integration_url }}
-

More details and API specification in our documentation

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_inbound_email.html b/engine/apps/integrations/templates/html/integration_inbound_email.html deleted file mode 100644 index efe359b6..00000000 --- a/engine/apps/integrations/templates/html/integration_inbound_email.html +++ /dev/null @@ -1,5 +0,0 @@ -

This is the dedicated email address to create alert groups:

-
{{ alert_receive_channel.inbound_email }}
- - -Docs \ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_jira.html b/engine/apps/integrations/templates/html/integration_jira.html deleted file mode 100644 index 87ebc302..00000000 --- a/engine/apps/integrations/templates/html/integration_jira.html +++ /dev/null @@ -1,20 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Jira

- -

Create a new webhook connection in Jira to send events to Grafana OnCall using the integration URL above.

-

Refer to Jira documentation for more information on how to create and manage webhooks: - - https://developer.atlassian.com/server/jira/platform/webhooks/ - -

- -

When creating a webhook in Jira, select the following events to be sent to Grafana OnCall:

-

-

    -
  1. 1. Issue - created
  2. -
  3. 2. Issue - updated
  4. -
  5. 3. Issue - deleted
  6. -
-

- -

After setting up the connection, you can test it by creating a new issue in Jira. You should see a new alert - group in Grafana OnCall.

diff --git a/engine/apps/integrations/templates/html/integration_kapacitor.html b/engine/apps/integrations/templates/html/integration_kapacitor.html deleted file mode 100644 index dc816bb9..00000000 --- a/engine/apps/integrations/templates/html/integration_kapacitor.html +++ /dev/null @@ -1,22 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Kapacitor

-

    -
  1. - 1. Use the integration url from above as Kapacitor Webhook -
    {{ alert_receive_channel.integration_url }}
    -
  2. -

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_manual.html b/engine/apps/integrations/templates/html/integration_manual.html deleted file mode 100644 index 9c0d6ecc..00000000 --- a/engine/apps/integrations/templates/html/integration_manual.html +++ /dev/null @@ -1,7 +0,0 @@ - -

There are 2 ways to issue an incident manually from Slack:

- -
    -
  1. Send /oncall or /oncall Title message to any chat
  2. -
  3. Select a message, choose it’s context menu and click Create a new incident
  4. -
diff --git a/engine/apps/integrations/templates/html/integration_newrelic.html b/engine/apps/integrations/templates/html/integration_newrelic.html deleted file mode 100644 index 932a2a37..00000000 --- a/engine/apps/integrations/templates/html/integration_newrelic.html +++ /dev/null @@ -1,27 +0,0 @@ -

How to start sending alerts to Grafana OnCall from NewRelic

-

-

    -
  1. 1. Go to "Alerts".
  2. -
  3. 2. Go to "Notification Channels".
  4. -
  5. 3. Create "Webhook" notification channel.
  6. -
  7. - 4. Set the following URL: -
    {{ alert_receive_channel.integration_url }}
    -
  8. -
  9. 5. Check "Payload type" is JSON.
  10. -
-

-

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_pagerduty.html b/engine/apps/integrations/templates/html/integration_pagerduty.html deleted file mode 100644 index c57f47de..00000000 --- a/engine/apps/integrations/templates/html/integration_pagerduty.html +++ /dev/null @@ -1,22 +0,0 @@ -

How to start sending alerts to Grafana OnCall from PagerDuty

-

    -
  1. - 1. Use the integration url from above as PagerDuty Webhook -
    {{ alert_receive_channel.integration_url }}
    -
  2. -

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_pingdom.html b/engine/apps/integrations/templates/html/integration_pingdom.html deleted file mode 100644 index 4fd328ff..00000000 --- a/engine/apps/integrations/templates/html/integration_pingdom.html +++ /dev/null @@ -1,27 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Pingdom

-

-

    -
  1. 1. Go to https://my.pingdom.com/integrations/settings
  2. -
  3. 2. Click "Add Integration".
  4. -
  5. 3. Type: Webhook. Name: Amixr. URL:
  6. -
    {{ alert_receive_channel.integration_url }}
    -
  7. 4. Go to "Reports" -> "Uptime" -> "Edit Check".
  8. -
  9. 5. Select Amixr integration in the bottom.
  10. -
  11. 6. Click "Modify Check" to save.
  12. -
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

> \ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_prtg.html b/engine/apps/integrations/templates/html/integration_prtg.html deleted file mode 100644 index 8693c291..00000000 --- a/engine/apps/integrations/templates/html/integration_prtg.html +++ /dev/null @@ -1,98 +0,0 @@ -
- PRTG can use the script to send the alerts to Grafana OnCall. Please use the format below -
-

-

Body Fields Format:
- -

- -
ps1 script example:
-

-

-# You are very welcome to change this script to fit your needs and formats
-Param(
-  [string]$sensorid,
-  [string]$date,
-  [string]$device,
-  [string]$shortname,
-  [string]$status,
-  [string]$message,
-  [string]$datetime,
-  [string]$linksensor,
-  [string]$url
-)
-
-# PRTG Server
-$PRTGServer = "localhost:8080"
-$PRTGUsername = "amixr"
-$PRTGPasshash  = *****
-
-#Directory for logging
-$LogDirectory = "C:\temp\prtg-notifications-msteam.log"
-
-#Acknowledgement Message for alerts ack'd via Teams
-$ackmessage = "Problem has been acknowledged via Amixr."
-
-# the acknowledgement URL
-$ackURL = [string]::Format("{0}/api/acknowledgealarm.htm?id={1}&ackmsg={2}&username={3}&passhash={4}",$PRTGServer,$sensorID,$ackmessage,$PRTGUsername,$PRTGPasshash);
-
-# Autoresolve an alert in Amixr
-if($status -eq "Up")
-{ $state = "ok" }
-ElseIf($status -match "now: Up")
-{ $state = "ok" }
-ElseIf($status -match "Up (was:")
-{ $state = "ok" }
-Else
-{ $state = "alerting" }
-
-$image_datetime = [datetime]::parse($datetime)
-$sdate = $image_datetime.AddHours(-1).ToString("yyyy-MM-dd-HH-mm-ss")
-$edate = $image_datetime.ToString("yyyy-MM-dd-HH-mm-ss")
-
-$image_url = "$PRTGServer/chart.png?type=graph&graphid=-1&avg=0&width=1000&height=400&username=$PRTGUsername&passhash=$PRTGPasshash&id=$sensorid&sdate=$sdate&edate=$edate"
-
-$Body = @{
-            "alert_uid"="$sensorid $date";
-            "title"="$device $shortname $status at $datetime ";
-            "image_url"=$image_url;
-            "state"=$state;
-            "link_to_upstream_details"="$linksensor";
-            "message"="$message";
-            "ack_url_get"="$ackURL"
-} | ConvertTo-Json
-$Body
-
-try
-{ Invoke-RestMethod -uri $url -Method Post -body $Body -ContentType 'application/json; charset=utf-8'; exit 0; }
-Catch
-{
-    $ErrorMessage = $_.Exception.Message
-    (Get-Date).ToString() +" - "+ $ErrorMessage | Out-File -FilePath $LogDirectory -Append
-    exit 2;
-}
-
-
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_sentry.html b/engine/apps/integrations/templates/html/integration_sentry.html deleted file mode 100644 index 6181225e..00000000 --- a/engine/apps/integrations/templates/html/integration_sentry.html +++ /dev/null @@ -1,22 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Sentry

-

    -
  1. - 1. Use the integration url from above as Sentry Webhook -
    {{ alert_receive_channel.integration_url }}
    -
  2. -

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_sentry_platform.html b/engine/apps/integrations/templates/html/integration_sentry_platform.html deleted file mode 100644 index ec72ee5e..00000000 --- a/engine/apps/integrations/templates/html/integration_sentry_platform.html +++ /dev/null @@ -1,6 +0,0 @@ -

More details in our documentation

- -

Amixr and Sentry configuration is simple as that

-
  1. Go to Sentry Website -
  2. Click Accept & Install button. -
diff --git a/engine/apps/integrations/templates/html/integration_slack_channel.html b/engine/apps/integrations/templates/html/integration_slack_channel.html deleted file mode 100644 index 83e66717..00000000 --- a/engine/apps/integrations/templates/html/integration_slack_channel.html +++ /dev/null @@ -1,5 +0,0 @@ -

This integration will consume messages from the channel you choose and make incidents from them.

- -

It’s useful for:

-

1. Service desk.

-

2. Consuming alerts from other systems using Slack as a message bus.

diff --git a/engine/apps/integrations/templates/html/integration_stackdriver.html b/engine/apps/integrations/templates/html/integration_stackdriver.html deleted file mode 100644 index 560a24cd..00000000 --- a/engine/apps/integrations/templates/html/integration_stackdriver.html +++ /dev/null @@ -1,26 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Stackdriver

-

-

    -
  1. 1. Create a notification channel in Stackdriver by navigating to - Workspace Settings -> WEBHOOKS -> Add Webhook
  2. -
  3. {{ alert_receive_channel.integration_url }}
  4. -
  5. 2. Create and alert in Stackdriver - by navigating to Alerting -> Policies -> Add Policy -> - Choose Notification Channel using the channel set up in step 1
  6. -
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_uptimerobot.html b/engine/apps/integrations/templates/html/integration_uptimerobot.html deleted file mode 100644 index b7a5cb6b..00000000 --- a/engine/apps/integrations/templates/html/integration_uptimerobot.html +++ /dev/null @@ -1,51 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Kapacitor

-

-

  1. Open https://uptimerobot.com and log in -
  2. Go to My Settings > Add Alert Contact and set the following fields: -
- -
  1. POST Value (JSON Format):
- -

-    {
-            "monitorURL": "monitorURL",
-            "monitorFriendlyName": "monitorFriendlyName",
-            "alertType": "alertType",
-            "alertTypeFriendlyName": "alertTypeFriendlyName",
-            "alertDetails": "alertDetails",
-            "alertDuration": "alertDuration",
-            "sslExpiryDate": "sslExpiryDate",
-            "sslExpiryDaysLeft": "sslExpiryDaysLeft"
-    }
-
-
  1. Flag Send as JSON
  2. -
  3. Click Save Changes and Close
- -

Send Test Alert to Amixr

-
  1. Click Add New Monitor -
  2. Monitor Type HTTP(s) -
  3. Friendly Name Test Amixr -
  4. Set URL to http://devnull.amixr.io or any other non-existent domain -
  5. Click Checkbox next to Amixr Alert Contact (created in the previous step) -
  6. Click Create Monitor -
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_webhook.html b/engine/apps/integrations/templates/html/integration_webhook.html deleted file mode 100644 index 174fc21b..00000000 --- a/engine/apps/integrations/templates/html/integration_webhook.html +++ /dev/null @@ -1,36 +0,0 @@ -
- Free-format Webhook is mostly used for custom integrations via scrips. Use any http client, - e.g. curl to send POST requests with any payload. -
- -
Request example:
-

-

-curl -X POST \
-  {{ alert_receive_channel.integration_url }} \
-  -H 'Content-Type: Application/json' \
-  -d '{
-    "alert_uid": "08d6891a-835c-e661-39fa-96b6a9e26552",
-    "title": "The whole system is down",
-    "image_url": "https://upload.wikimedia.org/wikipedia/commons/e/ee/Grumpy_Cat_by_Gage_Skidmore.jpg",
-    "state": "alerting",
-    "link_to_upstream_details": "https://en.wikipedia.org/wiki/Downtime",
-    "message": "Smth happened. Oh no!"
-}'
-
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_zabbix.html b/engine/apps/integrations/templates/html/integration_zabbix.html deleted file mode 100644 index 3d84061f..00000000 --- a/engine/apps/integrations/templates/html/integration_zabbix.html +++ /dev/null @@ -1,72 +0,0 @@ -
- Zabbix can use the script to send the alerts to Grafana OnCall. Please use the format below -
-

-

Body Fields Format:
- -

- -
Script example:
-

-

-#!/bin/bash
-# This is the modification of original ericos's shell script.
-
-# Get the url ($1), subject ($2), and message ($3)
-url="$1"
-subject="${2//$'\r\n'/'\n'}"
-message="${3//$'\r\n'/'\n'}"
-
-# Alert state depending on the subject indicating whether it is a trigger going in to problem state or recovering
-recoversub='^RECOVER(Y|ED)?$|^OK$|^Resolved.*'
-
-if [[ "$subject" =~ $recoversub ]]; then
-    state='ok'
-else
-    state='alerting'
-fi
-
-payload='{
-    "title": "'${subject}'",
-    "state": "'${state}'",
-    "message": "'${message}'"
-}'
-
-# Alert group identifier from the subject of action. Grouping will not work without AMIXR_GROUP in the action subject
-regex='AMIXR_GROUP: ([a-zA-Z0-9_\"]*)'
-if [[ "$subject" =~ $regex ]]; then
-    alert_uid=${BASH_REMATCH[1]}
-    payload='{
-        "alert_uid": "'${alert_uid}'",
-        "title": "'${subject}'",
-        "state": "'${state}'",
-        "message": "'${message}'"
-    }'
-fi
-
-return=$(curl $url -d "${payload}" -H "Content-Type: application/json" -X POST)
-
-
-

- -

Next steps:

-

    -
  1. - 1. Add the routes and escalations in Escalations settings -
  2. -
  3. - 2. Check grouping, auto-resolving, and rendering templates in - Alert Templates Settings -
  4. -
  5. - 3. Make sure all the users set up their Personal Notifications Settings - on the Users Page -
  6. -

\ No newline at end of file diff --git a/engine/apps/integrations/templates/html/integration_zendesk.html b/engine/apps/integrations/templates/html/integration_zendesk.html deleted file mode 100644 index bd9604dc..00000000 --- a/engine/apps/integrations/templates/html/integration_zendesk.html +++ /dev/null @@ -1,34 +0,0 @@ -

How to start sending alerts to Grafana OnCall from Zendesk

- -

Create a new "Trigger or automation" webhook connection in Zendesk to send events to Grafana OnCall using the - integration URL above.
- Refer to Zendesk documentation for more information on how to create and manage webhooks: - - https://support.zendesk.com/hc/en-us/articles/4408839108378-Creating-webhooks-to-interact-with-third-party-systems - -

- -

After setting up a webhook in Zendesk, create a new trigger with the following condition:
- Meet ANY of the following conditions: "Ticket Is Created", "Ticket status Changed"

- - -

Set Notify webhook as the trigger action and select the webhook you created earlier.
- In the JSON body field, use the following JSON template:

- -{% verbatim %} -
-{
-  "ticket": {
-    "id": "{{ticket.id}}",
-    "url": "{{ticket.url}}",
-    "status": "{{ticket.status}}",
-    "title": "{{ticket.title}}",
-    "description": "{{ticket.description}}"
-  }
-}
-
-{% endverbatim %} - -

After setting up the connection, you can test it by creating a new ticket in Zendesk. You should see a new alert - group in Grafana OnCall.

diff --git a/engine/apps/integrations/tests/test_heartbeat_metadata.py b/engine/apps/integrations/tests/test_heartbeat_metadata.py index f2e62cf4..a489ea4a 100644 --- a/engine/apps/integrations/tests/test_heartbeat_metadata.py +++ b/engine/apps/integrations/tests/test_heartbeat_metadata.py @@ -9,7 +9,6 @@ def test_heartbeat_metadata_presence(): "heartbeat_restored_title", "heartbeat_restored_message", "heartbeat_restored_payload", - "heartbeat_instruction_template", ] modules = [x for x in dir(heartbeat) if not x.startswith("_") and x != "apps"] for m in modules: