|
|
@ -0,0 +1,94 @@ |
|
|
|
<h1>HTTP API</h1> |
|
|
|
<p>The SITE_NAME pinging API is used for submitting success, failure and job start |
|
|
|
signals from the monitored systems.</p> |
|
|
|
<h2>General Notes</h2> |
|
|
|
<p>All ping endpoints support:</p> |
|
|
|
<ul> |
|
|
|
<li>HTTP and HTTPS</li> |
|
|
|
<li>HTTP 1.0, HTTP 1.1 and HTTP 2</li> |
|
|
|
<li>IPv4 and IPv6</li> |
|
|
|
<li>HEAD, GET and POST requests methods. The HTTP POST requests |
|
|
|
can optionally include diagnostic information in the request body. |
|
|
|
If the request body looks like a UTF-8 string, SITE_NAME stores the request body |
|
|
|
(limited to first 10KB for each received ping).</li> |
|
|
|
</ul> |
|
|
|
<p>Successful responses will have the "200 OK" HTTP response status code and a short |
|
|
|
and simple string "OK" in the response body.</p> |
|
|
|
<h2>Signal Success ("ping")</h2> |
|
|
|
<div class="highlight"><pre><span></span>HEAD|GET|POST PING_ENDPOINT{uuid} |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<p>Signals to SITE_NAME that the job has completed successfully (or, for |
|
|
|
continuously running processes, is still running and healthy). The <code>uuid</code> parameter |
|
|
|
is unique for each check.</p> |
|
|
|
<p><strong>Example</strong></p> |
|
|
|
<div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/5bf66975-d4c7-4bf5-bcc8-b8d8a82ea278</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.0</span> |
|
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">hc-ping.com</span> |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="highlight"><pre><span></span><span class="kr">HTTP</span><span class="o">/</span><span class="m">1.1</span> <span class="m">200</span> <span class="ne">OK</span> |
|
|
|
<span class="na">Server</span><span class="o">:</span> <span class="l">nginx</span> |
|
|
|
<span class="na">Date</span><span class="o">:</span> <span class="l">Wed, 29 Jan 2020 09:58:23 GMT</span> |
|
|
|
<span class="na">Content-Type</span><span class="o">:</span> <span class="l">text/plain; charset=utf-8</span> |
|
|
|
<span class="na">Content-Length</span><span class="o">:</span> <span class="l">2</span> |
|
|
|
<span class="na">Connection</span><span class="o">:</span> <span class="l">close</span> |
|
|
|
<span class="na">Access-Control-Allow-Origin</span><span class="o">:</span> <span class="l">*</span> |
|
|
|
|
|
|
|
OK |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<h2>Signal Failure</h2> |
|
|
|
<div class="highlight"><pre><span></span>HEAD|GET|POST PING_ENDPOINT{uuid}/fail |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<p>Signals to SITE_NAME that the job has failed. Actively signalling a failure |
|
|
|
minimizes the delay from your monitored service failing to you receiving an alert.</p> |
|
|
|
<p><strong>Example</strong></p> |
|
|
|
<div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/5bf66975-d4c7-4bf5-bcc8-b8d8a82ea278/fail</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.0</span> |
|
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">hc-ping.com</span> |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="highlight"><pre><span></span><span class="nt">HTTP</span><span class="o">/</span><span class="nt">1</span><span class="p">.</span><span class="nc">1</span> <span class="nt">200</span> <span class="nt">OK</span> |
|
|
|
<span class="nt">Server</span><span class="o">:</span> <span class="nt">nginx</span> |
|
|
|
<span class="nt">Date</span><span class="o">:</span> <span class="nt">Wed</span><span class="o">,</span> <span class="nt">29</span> <span class="nt">Jan</span> <span class="nt">2020</span> <span class="nt">09</span><span class="p">:</span><span class="nd">58</span><span class="p">:</span><span class="nd">23</span> <span class="nt">GMT</span> |
|
|
|
<span class="nt">Content-Type</span><span class="o">:</span> <span class="nt">text</span><span class="o">/</span><span class="nt">plain</span><span class="o">;</span> <span class="nt">charset</span><span class="o">=</span><span class="nt">utf-8</span> |
|
|
|
<span class="nt">Content-Length</span><span class="o">:</span> <span class="nt">2</span> |
|
|
|
<span class="nt">Connection</span><span class="o">:</span> <span class="nt">close</span> |
|
|
|
<span class="nt">Access-Control-Allow-Origin</span><span class="o">:</span> <span class="o">*</span> |
|
|
|
|
|
|
|
<span class="nt">OK</span> |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<h2>Signal a Start</h2> |
|
|
|
<div class="highlight"><pre><span></span>HEAD|GET|POST PING_ENDPOINT{uuid}/fail |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<p>Sends a "job has started!" message to SITE_NAME. This is |
|
|
|
optional but enables a few extra features:</p> |
|
|
|
<ul> |
|
|
|
<li>SITE_NAME will measure and display job execution times</li> |
|
|
|
<li>SITE_NAME will detect if the job runs longer than its configured grace time</li> |
|
|
|
</ul> |
|
|
|
<p><strong>Example</strong></p> |
|
|
|
<div class="highlight"><pre><span></span><span class="nf">GET</span> <span class="nn">/5bf66975-d4c7-4bf5-bcc8-b8d8a82ea278/start</span> <span class="kr">HTTP</span><span class="o">/</span><span class="m">1.0</span> |
|
|
|
<span class="na">Host</span><span class="o">:</span> <span class="l">hc-ping.com</span> |
|
|
|
</pre></div> |
|
|
|
|
|
|
|
|
|
|
|
<div class="highlight"><pre><span></span><span class="nt">HTTP</span><span class="o">/</span><span class="nt">1</span><span class="p">.</span><span class="nc">1</span> <span class="nt">200</span> <span class="nt">OK</span> |
|
|
|
<span class="nt">Server</span><span class="o">:</span> <span class="nt">nginx</span> |
|
|
|
<span class="nt">Date</span><span class="o">:</span> <span class="nt">Wed</span><span class="o">,</span> <span class="nt">29</span> <span class="nt">Jan</span> <span class="nt">2020</span> <span class="nt">09</span><span class="p">:</span><span class="nd">58</span><span class="p">:</span><span class="nd">23</span> <span class="nt">GMT</span> |
|
|
|
<span class="nt">Content-Type</span><span class="o">:</span> <span class="nt">text</span><span class="o">/</span><span class="nt">plain</span><span class="o">;</span> <span class="nt">charset</span><span class="o">=</span><span class="nt">utf-8</span> |
|
|
|
<span class="nt">Content-Length</span><span class="o">:</span> <span class="nt">2</span> |
|
|
|
<span class="nt">Connection</span><span class="o">:</span> <span class="nt">close</span> |
|
|
|
<span class="nt">Access-Control-Allow-Origin</span><span class="o">:</span> <span class="o">*</span> |
|
|
|
|
|
|
|
<span class="nt">OK</span> |
|
|
|
</pre></div> |