No project description provided
Project description
Status Cake Exporter
:rotating_light: 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
Requirements
- Python 3.10+
- Docker
- Kubernetes (optional)
- Helm 3 (optional)
Usage
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 |
Docker
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
Kubernetes
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.
Grafana
To get up and running quickly, use examples/grafana-example.json as an example.
Terminal
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]
--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
Metrics
Name | Type | Description |
---|---|---|
status_cake_test_info | Gauge | A basic listing of the tests under the current account. |
status_cake_test_uptime_percent | Gauge | Tests and their uptime percentage |
status_cake_test_performance | Gauge | Tests and their performance percentage |
Prometheus
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
Grafana
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:
PromQL
status_cake_test_info * on(test_id) group_right(test_name) status_cake_test_uptime_percent
Development
Tilt
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.
Docker compose
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for status_cake_exporter-1.1.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | c4a0fb2b2921db234f6ad5d14a913affe62a39622e59063c983ffad099095cbf |
|
MD5 | f1e2e8f5cd077a2d1ee7613028960cf8 |
|
BLAKE2b-256 | c842747d17c7ef1ca240f50e30d98a981ffa064124f73c30d00628fd4547ea92 |
Hashes for status_cake_exporter-1.1.0-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65840c3f4b0c5a1d6506e87788321bdd933c399c94b20c40ab6e74e2a2cdf974 |
|
MD5 | 9e542c1900e3f5e0956d1a8b2dfeff39 |
|
BLAKE2b-256 | 77ff4f096f1e12da36327ee3ad8c64fae3693c7426ef9c5aaa06457f11e6827f |