Configuration overview

Configuration files are written in YAML, and validated against a JSON schema.

There are three required sections in every configuration:

  • The version indicating the schema revision
  • An array of targets, where systems and their checks will be defined
  • A policy for handling events

Additionally, there is an optional definitions section for defining arbitrary YAML objects.

The simplest (non-functional) configuration file is as follows:

---
version: '1.0'
policy:  {}
targets: []

Technically, this isn’t a valid configuration as policy and targets cannot be empty, but it’s a good starting point for creating your own configuration.

version [string]

This string describes which version of the configuration language to validate your configuration against. Currently must be 1.0.

policy [hash]

Your policy defines how events should be processed. Events are generated from your checks and typically represent exceptional conditions (e.g. host unreachable, latency limit exceeded, etc).

See Policies for more details.

targets [array]

A target represents a single service to be checked. This check consists of at least one HTTP request, but may invoke many, all within a single HTTP session. This means you can perform transactional checks, such as logging into a website, capturing data, and then using that data in a subsequent HTTP request.

See Targets for more details.

definitions

You may provide an optional definitions section for placing arbitrary YAML code. This is primarily useful for defining YAML anchors.

definitions:
- &user-agent
  Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.7) Gecko/2009021910 Firefox/3.0.7

targets:
- name: free_the_yaks
  headers:
    User-Agent: *user-agent
While the content of the YAML in definitions is arbitrary, it must still be structured as valid YAML.