🚨 Container images have moved to ghcr.io/chelnak/status-cake-exporter
Status Cake Exporter is a Prometheus exporter for StatusCake.
Metrics are exposed on port 8000 when using the provided examples/manifest.yml](examples/manifest.yml) in Kubernetes, e.g.
http://status-cake-exporter.default.svc:8000
- Python 3.10+
- Docker
- Kubernetes (optional)
- Helm 3 (optional)
Setting | Required | Default |
---|---|---|
HOST | No | https://api.statuscake.com/v1 |
API_KEY | Yes | Null |
TAGS | No | Null |
LOG_LEVEL | No | info |
PORT | No | 8000 |
ITEMS_PER_PAGE | No | 25 |
The following will expose the exporter at localhost:8000
:
export API_KEY=xxxxxxxx
docker run -d -p 8000:8000 --env API_KEY ghcr.io/chelnak/status-cake-exporter:latest
To get up and running quickly, use examples/manifest.yml as an example. You will need to create a secret named status-cake-api-token
containing your API_KEY
first.
Otherwise, you can use the Helm Chart provided in chart/status-cake-exporter.
To get up and running quickly, use examples/grafana-example.json as an example.
Usage: status-cake-exporter [OPTIONS]
Options:
--host TEXT The host of the StatusCake API. [env var:
HOST; default:
https://api.statuscake.com/v1]
--api-key TEXT API Key for the account. [env var: API_KEY;
required]
--tags TEXT A comma separated list of tags used to
filter tests returned from the api [env
var: TAGS]
--log-level TEXT The log level of the application. Value can
be one of {debug, info, warn, error} [env
var: LOG_LEVEL; default: info]
--port INTEGER [env var: PORT; default: 8000]
--enable-perf-metrics / --no-enable-perf-metrics
Enable the collection of test performance
times and expose as a metric. Warning - this
can cause additional usage of the statuscake
API and slow down runtime [env var:
ENABLE_PERF_METRICS; default: no-enable-
perf-metrics]
--items-per-page TEXT The number of items that the api will return
on a page. This is a global option. [env
var: ITEMS_PER_PAGE; default: 25]
--help Show this message and exit.
Name | Type | Description |
---|---|---|
status_cake_test_info | Gauge | A basic listing of the tests under the current account. |
status_cake_test_status | Gauge | Current test status (1 is up, 0 is down) |
status_cake_test_uptime_percent | Gauge | Tests and their uptime percentage |
status_cake_test_performance | Gauge | Tests and their performance percentage |
Prometheus config needs to be updated to see the new exported. Use the following scrape config as an example:
scrape_configs:
- job_name: status-cake-exporter
honor_timestamps: true
scrape_interval: 10m
scrape_timeout: 1m
metrics_path: /
scheme: http
static_configs:
- targets:
- status-cake-exporter.default.svc:8000
Data collected by Prometheus can be easily surfaced in Grafana.
Using the Statusmap panel by flant you can create a basic status visualization based on uptime percentage:
status_cake_test_info * on(test_id) group_right(test_name) status_cake_test_uptime_percent
This repository uses Tilt for rapid development on Kubernetes.
To use this, run:
cd chart/status-cake-exporter
tilt up
Tilt will reload your environment when it detects changes to your code.
Note: You will need to provide valid credentials for StatusCake in your Tiltfile
for this to work.
You can use the provided docker-compose.yml
to run the exporter locally.
docker-compose watch
This will start the exporter along with a mocked statuscake api server.