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/slirunneror fetched from the releases page:
$ curl -SL https://github.com/cirocosta/slirunner/releases/download/v0.1.0/slirunner.tgz | tar xvzf -
fly slirunnerWith 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_INSTALLATIONA 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=testFor kubernetes, check out the example under
./examples/kubernetes.yaml.
See ./LICENSE
