probes your Concourse installation, generating Service Level Indicators (SLIs)
Even tough Concourse emits many metrics that are useful for an operator, it might still be hard to have a quick grasp of how high-level funcitionality is performing.
With SLIs , one is able to better reason about what's broken on user-facing functionality that the service exposes.
Before slirunner
, oxygen-mask was the solution for running
high-level probes against Concourse installation.
It has a few quirks that I don't think are necessary to have:
- requires another Concourse installation to run those probes
- tightly coupled to datadog
- performs UI testing
slirunner
is a single Go binary that, once "installed" (run somewhere),
periodically executes several probes against Concourse, keeping track of the
successes and failures.
A consumer of slirunner
can consume the reports from two mediums:
- Prometheus exposed metrics
- structured logs
It also supports:
- single runs
- TODO: worker-related probing against multiple tags and teams
There are several ways of running slirunner
.
In the end, it's always the slirunner
being run with some flags set.
Usage:
slirunner [OPTIONS] <once | start>
Help Options:
-h, --help Show this help message
Available commands:
once performs a single run of the SLIs suite
start initiates the periodic run of the SLIs suite
The binary can either be built using go
:
$ go get -u github.com/cirocosta/slirunner
or fetched from the releases page:
$ curl -SL https://github.com/cirocosta/slirunner/releases/download/v0.1.0/slirunner.tgz | tar xvzf -
fly slirunner
With that done, it's all about having it running:
slirunner start \
--target $TARGET_TO_GENERATE \
--username $CONCOURSE_BASIC_AUTH_USERNAME \
--password $CONCOURSE_BASIC_AUTH_PASSWORD \
--concourse-url $URL_OF_THE_CONCOURSE_INSTALLATION
A container image cirocosta/slirunner
is continuously pushed to
https://hub.docker.com/r/cirocosta/slirunner.
e.g., using docker-compose
:
version: '3'
services:
slirunner:
image: cirocosta/slirunner
command:
- start
- --target=test
- --concourse-url=http://web:8080
- --password=test
- --username=test
For kubernetes, check out the example under
./examples/kubernetes.yaml
.
See ./LICENSE