forked from GithubBackups/healthchecks
More content in docs section
This commit is contained in:
parent
3bafac24ba
commit
0501a131ae
@ -83,9 +83,13 @@ def check_token(request, username, token):
|
||||
user = authenticate(username=username, password=token)
|
||||
if user is not None:
|
||||
if user.is_active:
|
||||
# This should get rid of "welcome_code" in session
|
||||
request.session.flush()
|
||||
|
||||
user.set_unusable_password()
|
||||
user.save()
|
||||
auth_login(request, user)
|
||||
|
||||
return redirect("hc-index")
|
||||
|
||||
return render(request, "bad_link.html")
|
||||
|
@ -53,9 +53,17 @@ def pricing(request):
|
||||
|
||||
|
||||
def docs(request):
|
||||
if "welcome_code" in request.session:
|
||||
code = request.session["welcome_code"]
|
||||
check = Check.objects.get(code=code)
|
||||
else:
|
||||
check = Check(code="uuid-goes-here")
|
||||
|
||||
ctx = {
|
||||
"page": "docs",
|
||||
"ping_endpoint": settings.PING_ENDPOINT
|
||||
"ping_endpoint": settings.PING_ENDPOINT,
|
||||
"check": check,
|
||||
"ping_url": check.url()
|
||||
}
|
||||
|
||||
return render(request, "front/docs.html", ctx)
|
||||
|
2
static/css/bootstrap.css
vendored
2
static/css/bootstrap.css
vendored
@ -1258,7 +1258,7 @@ h1,
|
||||
}
|
||||
h2,
|
||||
.h2 {
|
||||
font-size: 30px;
|
||||
font-size: 24px;
|
||||
}
|
||||
h3,
|
||||
.h3 {
|
||||
|
@ -53,7 +53,7 @@
|
||||
@font-size-small: ceil((@font-size-base * 0.85)); // ~12px
|
||||
|
||||
@font-size-h1: floor((@font-size-base * 2.6)); // ~36px
|
||||
@font-size-h2: floor((@font-size-base * 2.15)); // ~30px
|
||||
@font-size-h2: 24px;
|
||||
@font-size-h3: ceil((@font-size-base * 1.7)); // ~24px
|
||||
@font-size-h4: ceil((@font-size-base * 1.25)); // ~18px
|
||||
@font-size-h5: @font-size-base;
|
||||
|
@ -4,96 +4,170 @@
|
||||
{% block title %}Documentation - healthchecks.io{% endblock %}
|
||||
|
||||
{% block content %}
|
||||
<div class="row">
|
||||
<div class="col-sm-12">
|
||||
<h3>Summary</h3>
|
||||
<p>
|
||||
Each check you create in <a href="{% url 'hc-index' %}">My Checks</a>
|
||||
page has an unique "ping" URL. Whenever you access this URL,
|
||||
the "Last Ping" value of corresponding check is updated.
|
||||
</p>
|
||||
<p>When a certain amount of time passes since last received ping, the
|
||||
check is considered "late", and Health Checks sends an email alert.
|
||||
It is all very simple, really.</p>
|
||||
<div class="row"><div class="col-sm-12">
|
||||
|
||||
<h3>Executing a Ping</h3>
|
||||
<p>
|
||||
At the end of your batch job, add a bit of code to request
|
||||
one of your ping URLs.
|
||||
</p>
|
||||
<ul>
|
||||
<li>HTTP and HTTPS protocols both are fine</li>
|
||||
<li>Request method can be GET or POST</li>
|
||||
<li>It does not matter what request headers you send</li>
|
||||
<li>You can leave request body empty or put anything in it, it's all good</li>
|
||||
</ul>
|
||||
<h2>Summary</h2>
|
||||
<p>
|
||||
Each check you create in <a href="{% url 'hc-index' %}">My Checks</a>
|
||||
page has an unique "ping" URL. Whenever you access this URL,
|
||||
the "Last Ping" value of corresponding check is updated.
|
||||
</p>
|
||||
<p>When a certain amount of time passes since last received ping, the
|
||||
check is considered "late", and Health Checks sends an email alert.
|
||||
It is all very simple, really.</p>
|
||||
|
||||
<p>The response will have status code "200 OK" and response body will be a
|
||||
short and simple string "OK".</p>
|
||||
<h2>Executing a Ping</h2>
|
||||
<p>
|
||||
At the end of your batch job, add a bit of code to request
|
||||
your ping URL.
|
||||
</p>
|
||||
<ul>
|
||||
<li>HTTP and HTTPS protocols both are fine</li>
|
||||
<li>Request method can be GET or POST</li>
|
||||
<li>It does not matter what request headers you send</li>
|
||||
<li>You can leave request body empty or put anything in it, it's all good</li>
|
||||
</ul>
|
||||
|
||||
<p>
|
||||
In bash scripts, you can use <code>wget</code> or <code>curl</code> to run the requests:
|
||||
</p>
|
||||
<pre>
|
||||
curl {{ ping_endpoint }}{uuid-goes-here}
|
||||
</pre>
|
||||
<p>The response will have status code "200 OK" and response body will be a
|
||||
short and simple string "OK".</p>
|
||||
|
||||
<h3>When Alerts Are Sent</h3>
|
||||
<p>
|
||||
Each check has a configurable <strong>Period</strong> parameter, with the default value of one day.
|
||||
For periodic tasks, this is the expected time gap between two runs.
|
||||
</p>
|
||||
<p>
|
||||
Additionally, each check has a <strong>Grace</strong> parameter, with default value of one hour.
|
||||
You can use this parameter to account for run time variance of tasks.
|
||||
For example, if a backup task completes in 50 seconds one day, and
|
||||
completes in 60 seconds the following day, you might not want to get
|
||||
alerted because the backups are 10 seconds late.
|
||||
</p>
|
||||
<p>Each check can be in one of the following states:</p>
|
||||
<p>
|
||||
Here are examples of executing pings from different environments.
|
||||
</p>
|
||||
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-question-sign new"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>New.</strong>
|
||||
A check that has been created, but has not received any pings yet.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-ok-sign up"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>Up.</strong>
|
||||
Time since last ping has not exceeded <strong>Period</strong>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-exclamation-sign grace"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>Late.</strong>
|
||||
Time since last ping has exceeded <strong>Period</strong>,
|
||||
but has not yet exceeded <strong>Period</strong> + <strong>Grace</strong>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-exclamation-sign down"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>Down.</strong>
|
||||
Time since last ping has exceeded <strong>Period</strong> + <strong>Grace</strong>.
|
||||
When check goes from "Late" to "Down", healthchecks.io
|
||||
sends you an email alert.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<h3>Crontab</h3>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<p>
|
||||
When using cron, probably the easiest is to append a <code>curl</code>
|
||||
or <code>wget</code> call after your command. The scheduled time comes,
|
||||
and your command runs. After it completes, the healthchecks.io check
|
||||
gets pinged.
|
||||
</p>
|
||||
|
||||
{% include "front/snippets/crontab.html" %}
|
||||
|
||||
<p>With this simple modification, you monitor several failure
|
||||
scenarios:</p>
|
||||
|
||||
<ul>
|
||||
<li>The whole machine has stopped working (power outage, janitor stumbles on wires, VPS provider problems, etc.) </li>
|
||||
<li>cron daemon is not running, or has invalid configuration</li>
|
||||
<li>cron does start your task, but the task exits with non-zero exit code</li>
|
||||
</ul>
|
||||
|
||||
<p>Either way, when your task doesn't finish successfully, you will soon
|
||||
know about it.</p>
|
||||
|
||||
|
||||
<h3>Bash or a shell script</h3>
|
||||
|
||||
<p>Both <code>curl</code> and <code>wget</code> examples accomplish the same
|
||||
thing: they fire off a HTTP GET method.</p>
|
||||
|
||||
<p>
|
||||
If using <code>curl</code>, make sure it is installed on your target system.
|
||||
Ubuntu, for example, does not have curl installed out of the box.
|
||||
</p>
|
||||
|
||||
{% include "front/snippets/bash.html" %}
|
||||
|
||||
<h3>Python</h3>
|
||||
{% include "front/snippets/python.html" %}
|
||||
|
||||
<h3>Node</h3>
|
||||
{% include "front/snippets/node.html" %}
|
||||
|
||||
|
||||
<h3>PHP</h3>
|
||||
{% include "front/snippets/php.html" %}
|
||||
|
||||
<h3>Browser</h3>
|
||||
<p>
|
||||
healthchecks.io includes <code>Access-Control-Allow-Origin:*</code>
|
||||
CORS header in its ping responses, so cross-domain AJAX requests
|
||||
should work.
|
||||
</p>
|
||||
{% include "front/snippets/browser.html" %}
|
||||
|
||||
<h3>Email</h3>
|
||||
<p>
|
||||
As an alternative to HTTP/HTTPS requests,
|
||||
you can "ping" this check by sending an
|
||||
email message to <a href="mailto:{{ check.email }}">{{ check.email }}</a>
|
||||
</p>
|
||||
<p>
|
||||
This is useful for end-to-end testing weekly email delivery.
|
||||
</p>
|
||||
<p>
|
||||
An example scenario: you have a cron job which runs weekly and
|
||||
sends weekly email reports to a list of e-mail addresses. You have already
|
||||
set up a check to get alerted when your cron job fails to run.
|
||||
But what you ultimately want to check is your emails <em>get sent and
|
||||
get delivered</em>.
|
||||
</p>
|
||||
<p>
|
||||
The solution: set up another check, and add its
|
||||
@hchk.io address to your list of recipient email addresses. Set its
|
||||
Period to 1 week. As long as your weekly email script runs correctly,
|
||||
the check will be regularly pinged and will stay up.
|
||||
</p>
|
||||
|
||||
|
||||
<h2>When Alerts Are Sent</h2>
|
||||
<p>
|
||||
Each check has a configurable <strong>Period</strong> parameter, with the default value of one day.
|
||||
For periodic tasks, this is the expected time gap between two runs.
|
||||
</p>
|
||||
<p>
|
||||
Additionally, each check has a <strong>Grace</strong> parameter, with default value of one hour.
|
||||
You can use this parameter to account for run time variance of tasks.
|
||||
For example, if a backup task completes in 50 seconds one day, and
|
||||
completes in 60 seconds the following day, you might not want to get
|
||||
alerted because the backups are 10 seconds late.
|
||||
</p>
|
||||
<p>Each check can be in one of the following states:</p>
|
||||
|
||||
<table class="table">
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-question-sign new"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>New.</strong>
|
||||
A check that has been created, but has not received any pings yet.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-ok-sign up"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>Up.</strong>
|
||||
Time since last ping has not exceeded <strong>Period</strong>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-exclamation-sign grace"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>Late.</strong>
|
||||
Time since last ping has exceeded <strong>Period</strong>,
|
||||
but has not yet exceeded <strong>Period</strong> + <strong>Grace</strong>.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<span class="glyphicon glyphicon-exclamation-sign down"></span>
|
||||
</td>
|
||||
<td>
|
||||
<strong>Down.</strong>
|
||||
Time since last ping has exceeded <strong>Period</strong> + <strong>Grace</strong>.
|
||||
When check goes from "Late" to "Down", healthchecks.io
|
||||
sends you an email alert.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</div></div>
|
||||
{% endblock %}
|
@ -82,7 +82,7 @@
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div id="get-started" class="col-sm-6 col-sm-offset-3">
|
||||
<h3>E-mail Address to Receive Alerts:</h3>
|
||||
<h2>E-mail Address to Receive Alerts:</h2>
|
||||
<form action="{% url 'hc-login' %}" method="post">
|
||||
{% csrf_token %}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user