Rename VictorOps -> Splunk On-Call
@ -3,6 +3,9 @@ All notable changes to this project will be documented in this file.
|
|||||||
|
|
||||||
## v1.20.0 - Unreleased
|
## v1.20.0 - Unreleased
|
||||||
|
|
||||||
|
## Improvements
|
||||||
|
- Rename VictorOps -> Splunk On-Call
|
||||||
|
|
||||||
## Bug Fixes
|
## Bug Fixes
|
||||||
- Fix downtime summary to handle months when the check didn't exist yet (#472)
|
- Fix downtime summary to handle months when the check didn't exist yet (#472)
|
||||||
|
|
||||||
|
@ -41,4 +41,4 @@ class NotifyTestCase(BaseTestCase):
|
|||||||
self.channel.notify(self.check)
|
self.channel.notify(self.check)
|
||||||
|
|
||||||
n = Notification.objects.get()
|
n = Notification.objects.get()
|
||||||
self.assertEqual(n.error, "VictorOps notifications are not enabled.")
|
self.assertEqual(n.error, "Splunk On-Call notifications are not enabled.")
|
||||||
|
@ -414,7 +414,7 @@ class Pushover(HttpTransport):
|
|||||||
class VictorOps(HttpTransport):
|
class VictorOps(HttpTransport):
|
||||||
def notify(self, check):
|
def notify(self, check):
|
||||||
if not settings.VICTOROPS_ENABLED:
|
if not settings.VICTOROPS_ENABLED:
|
||||||
return "VictorOps notifications are not enabled."
|
return "Splunk On-Call notifications are not enabled."
|
||||||
|
|
||||||
description = tmpl("victorops_description.html", check=check)
|
description = tmpl("victorops_description.html", check=check)
|
||||||
mtype = "CRITICAL" if check.status == "down" else "RECOVERY"
|
mtype = "CRITICAL" if check.status == "down" else "RECOVERY"
|
||||||
|
@ -11,7 +11,7 @@ class AddVictorOpsTestCase(BaseTestCase):
|
|||||||
def test_instructions_work(self):
|
def test_instructions_work(self):
|
||||||
self.client.login(username="alice@example.org", password="password")
|
self.client.login(username="alice@example.org", password="password")
|
||||||
r = self.client.get(self.url)
|
r = self.client.get(self.url)
|
||||||
self.assertContains(r, "incident management system")
|
self.assertContains(r, "incident management platform")
|
||||||
|
|
||||||
def test_it_works(self):
|
def test_it_works(self):
|
||||||
form = {"value": "http://example.org"}
|
form = {"value": "http://example.org"}
|
||||||
|
@ -86,7 +86,7 @@
|
|||||||
}
|
}
|
||||||
.ic-victorops:before {
|
.ic-victorops:before {
|
||||||
content: "\e90f";
|
content: "\e90f";
|
||||||
color: #f9af4a;
|
color: #2d2d2d;
|
||||||
}
|
}
|
||||||
.ic-email:before {
|
.ic-email:before {
|
||||||
content: "\e90a";
|
content: "\e90a";
|
||||||
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 73 KiB |
Before Width: | Height: | Size: 56 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 3.9 KiB After Width: | Height: | Size: 9.5 KiB |
@ -34,7 +34,7 @@ The "unused" sends from one month do not carry over to the next month.</p>
|
|||||||
<p>If you want to receive repeated notifications for as long as a particular check is
|
<p>If you want to receive repeated notifications for as long as a particular check is
|
||||||
down, you have a few different options:</p>
|
down, you have a few different options:</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>If you use an <strong>incident management system</strong> (PagerDuty, VictorOps, Opsgenie,
|
<li>If you use an <strong>incident management system</strong> (PagerDuty, Splunk On-Call, Opsgenie,
|
||||||
PagerTree), you can set up escalation rules there.</li>
|
PagerTree), you can set up escalation rules there.</li>
|
||||||
<li>Use the <strong>Pushover</strong> integration with the "Emergency" priority. Pushover will
|
<li>Use the <strong>Pushover</strong> integration with the "Emergency" priority. Pushover will
|
||||||
play a loud notification sound on your phone every 5 minutes until the notification
|
play a loud notification sound on your phone every 5 minutes until the notification
|
||||||
|
@ -44,7 +44,7 @@ When an account exceeds its monthly limit, SITE_NAME will:
|
|||||||
If you want to receive repeated notifications for as long as a particular check is
|
If you want to receive repeated notifications for as long as a particular check is
|
||||||
down, you have a few different options:
|
down, you have a few different options:
|
||||||
|
|
||||||
* If you use an **incident management system** (PagerDuty, VictorOps, Opsgenie,
|
* If you use an **incident management system** (PagerDuty, Splunk On-Call, Opsgenie,
|
||||||
PagerTree), you can set up escalation rules there.
|
PagerTree), you can set up escalation rules there.
|
||||||
* Use the **Pushover** integration with the "Emergency" priority. Pushover will
|
* Use the **Pushover** integration with the "Emergency" priority. Pushover will
|
||||||
play a loud notification sound on your phone every 5 minutes until the notification
|
play a loud notification sound on your phone every 5 minutes until the notification
|
||||||
|
@ -438,9 +438,9 @@
|
|||||||
{% if enable_victorops %}
|
{% if enable_victorops %}
|
||||||
<li>
|
<li>
|
||||||
<img src="{% static 'img/integrations/victorops.png' %}"
|
<img src="{% static 'img/integrations/victorops.png' %}"
|
||||||
class="icon" alt="VictorOps icon" />
|
class="icon" alt="Splunk On-Call icon" />
|
||||||
|
|
||||||
<h2>VictorOps</h2>
|
<h2>Splunk On-Call (VictorOps)</h2>
|
||||||
<p>On-call scheduling, alerting, and incident tracking.</p>
|
<p>On-call scheduling, alerting, and incident tracking.</p>
|
||||||
<a href="{% url 'hc-add-victorops' project.code %}" class="btn btn-primary">Add Integration</a>
|
<a href="{% url 'hc-add-victorops' project.code %}" class="btn btn-primary">Add Integration</a>
|
||||||
</li>
|
</li>
|
||||||
|
@ -655,7 +655,7 @@
|
|||||||
<div class="integration">
|
<div class="integration">
|
||||||
<img src="{% static 'img/integrations/victorops.png' %}" class="icon" alt="" />
|
<img src="{% static 'img/integrations/victorops.png' %}" class="icon" alt="" />
|
||||||
<h3>
|
<h3>
|
||||||
VictorOps<br>
|
Splunk On-Call<br>
|
||||||
<small>{% trans "Incident Management" %}</small>
|
<small>{% trans "Incident Management" %}</small>
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,28 +1,28 @@
|
|||||||
{% extends "base.html" %}
|
{% extends "base.html" %}
|
||||||
{% load humanize static hc_extras %}
|
{% load humanize static hc_extras %}
|
||||||
|
|
||||||
{% block title %}VictorOps Integration for {{ site_name }}{% endblock %}
|
{% block title %}Splunk On-Call Integration for {{ site_name }}{% endblock %}
|
||||||
|
|
||||||
|
|
||||||
{% block content %}
|
{% block content %}
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-sm-12">
|
<div class="col-sm-12">
|
||||||
<h1>VictorOps</h1>
|
<h1>Splunk On-Call (VictorOps)</h1>
|
||||||
|
|
||||||
<p><a href="https://victorops.com/">VictorOps</a> is
|
<p>
|
||||||
another incident management system similar to PagerDuty.
|
<a href="https://www.splunk.com/en_us/software/splunk-on-call.html">Splunk On-Call</a>
|
||||||
If you use or plan on using VictorOps, you can can integrate it
|
is a collaboration and incident management platform for on-call DevOps teams.
|
||||||
with your {{ site_name }} account in few simple steps.</p>
|
You can integrate it with your {{ site_name }} account in a few
|
||||||
|
simple steps.</p>
|
||||||
|
|
||||||
<h2>Setup Guide</h2>
|
<h2>Setup Guide</h2>
|
||||||
<div class="row ai-step">
|
<div class="row ai-step">
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<span class="step-no"></span>
|
<span class="step-no"></span>
|
||||||
<p>
|
<p>
|
||||||
Log into your VictorOps account,
|
Log into your Splunk On-Call account,
|
||||||
go to <strong>Settings > Schedules</strong>,
|
go to <strong>Integrations</strong>,
|
||||||
and find or create the Team Schedule you
|
and look up the REST integration.
|
||||||
would like to use for {{ site_name }} alerts.
|
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
@ -36,10 +36,14 @@
|
|||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
<span class="step-no"></span>
|
<span class="step-no"></span>
|
||||||
<p>
|
<p>
|
||||||
Go to <strong>Settings > Integrations</strong> and scroll
|
Enable the integration, and copy
|
||||||
to the bottom of the page. Choose an existing
|
the displayed <strong>Service API Endpoint</strong>.
|
||||||
<strong>Routing Key</strong> or
|
Paste it in the form below. Be sure to replace
|
||||||
add a new one, and make note of it.
|
the <strong>$routing_key</strong> section with the
|
||||||
|
actual routing key you intend to use.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Save the integration, and it's done!
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-sm-6">
|
<div class="col-sm-6">
|
||||||
@ -49,38 +53,13 @@
|
|||||||
src="{% static 'img/integrations/setup_victorops_2.png' %}">
|
src="{% static 'img/integrations/setup_victorops_2.png' %}">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row ai-step">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<span class="step-no"></span>
|
|
||||||
In the right hand side of
|
|
||||||
<strong>Settings > Integrations</strong> page,
|
|
||||||
select <strong>REST Endpoint</strong>, and click on
|
|
||||||
<strong>Enable Integration</strong>.
|
|
||||||
</div>
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<img
|
|
||||||
class="ai-guide-screenshot"
|
|
||||||
alt="Screenshot"
|
|
||||||
src="{% static 'img/integrations/setup_victorops_3.png' %}">
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="row ai-step">
|
|
||||||
<div class="col-sm-6">
|
|
||||||
<span class="step-no"></span>
|
|
||||||
<p>Paste the <strong>Post URL</strong> from step 3 in the field
|
|
||||||
below, being careful to replace <strong>$routing_key</strong>
|
|
||||||
with your actual Routing Key from step 2. Save the integration,
|
|
||||||
and it's done!</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<h2>Integration Settings</h2>
|
<h2>Integration Settings</h2>
|
||||||
|
|
||||||
<form method="post" class="form-horizontal">
|
<form method="post" class="form-horizontal">
|
||||||
{% csrf_token %}
|
{% csrf_token %}
|
||||||
<div class="form-group {{ form.value.css_classes }}">
|
<div class="form-group {{ form.value.css_classes }}">
|
||||||
<label for="post-url" class="col-sm-2 control-label">Post URL</label>
|
<label for="post-url" class="col-sm-2 control-label">Service API Endpoint</label>
|
||||||
<div class="col-sm-10">
|
<div class="col-sm-10">
|
||||||
<input
|
<input
|
||||||
id="post-url"
|
id="post-url"
|
||||||
|