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 indefinitions
is arbitrary, it must still be structured as valid YAML.