Skip to content

Latest commit

 

History

History
159 lines (94 loc) · 3.87 KB

PROTOCOL.md

File metadata and controls

159 lines (94 loc) · 3.87 KB

Vigil Protocol

Vigil Reporter HTTP API

1️⃣ Report a replica

Endpoint URL:

HTTP POST https://status.example.com/reporter/<probe_id>/<node_id>/

Where:

  • node_id: The parent node of the reporting replica
  • probe_id: The parent probe of the node

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured reporter_token.
  • Set the Content-Type to application/json; charset=utf-8, and ensure you submit the request data as UTF-8.

Request data:

Adjust the request data to your replica context and send it as HTTP POST:

{
  "replica": "<replica_id>",
  "interval": 30,

  "load": {
    "cpu": 0.30,
    "ram": 0.80
  }
}

Where:

  • replica: The replica unique identifier (eg. the server LAN IP)
  • interval: The push interval (in seconds)
  • load.cpu: The general CPU load, from 0.00 to 1.00 (can be more than 1.00 if the CPU is overloaded)
  • load.ram: The general RAM load, from 0.00 to 1.00

2️⃣ Flush a replica

Endpoint URL:

HTTP DELETE https://status.example.com/reporter/<probe_id>/<node_id>/<replica_id>/

Where:

  • node_id: The parent node of the reporting replica
  • probe_id: The parent probe of the node
  • replica_id: The replica unique identifier (eg. the server LAN IP)

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured reporter_token.

Vigil Manager HTTP API

1️⃣ List published announcements

Endpoint URL:

HTTP GET https://status.example.com/manager/announcements/

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured manager_token.

2️⃣ Insert a new announcement

Endpoint URL:

HTTP POST https://status.example.com/manager/announcement/

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured manager_token.
  • Set the Content-Type to application/json; charset=utf-8, and ensure you submit the request data as UTF-8.

Request data:

Adjust the request data to your announcement and send it as HTTP POST:

{
  "title": "<title>",
  "text": "<text>"
}

Where:

  • title: The title for the announcement
  • text: The description text for the announcement (can be multi-line)

3️⃣ Retract a published announcement

Endpoint URL:

HTTP DELETE https://status.example.com/manager/announcement/<announcement_id>/

Where:

  • announcement_id: The announcement identifier to be removed

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured manager_token.

4️⃣ List prober alerts

Endpoint URL:

HTTP GET https://status.example.com/manager/prober/alerts/

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured manager_token.

5️⃣ Resolve ignore rules for prober alerts

Endpoint URL:

HTTP GET https://status.example.com/manager/prober/alerts/ignored/

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured manager_token.

6️⃣ Update ignore rules for prober alerts

Endpoint URL:

HTTP PUT https://status.example.com/manager/prober/alerts/ignored/

Request headers:

  • Add an Authorization header with a Basic authentication where the password is your configured manager_token.
  • Set the Content-Type to application/json; charset=utf-8, and ensure you submit the request data as UTF-8.

Request data:

Adjust the request data to your announcement and send it as HTTP PUT:

{
  "reminders_seconds": 600
}

Where:

  • reminders_seconds: The number of seconds during which downtime reminders should not be sent anymore (skipped)