Skip to main content

No project description provided

Project description

Status Cake Exporter

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:

grafana

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

status_cake_exporter-1.1.0.tar.gz (8.0 kB view details)

Uploaded Source

Built Distribution

status_cake_exporter-1.1.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

File details

Details for the file status_cake_exporter-1.1.0.tar.gz.

File metadata

  • Download URL: status_cake_exporter-1.1.0.tar.gz
  • Upload date:
  • Size: 8.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.7.1 CPython/3.10.11 Windows/10

File hashes

Hashes for status_cake_exporter-1.1.0.tar.gz
Algorithm Hash digest
SHA256 c4a0fb2b2921db234f6ad5d14a913affe62a39622e59063c983ffad099095cbf
MD5 f1e2e8f5cd077a2d1ee7613028960cf8
BLAKE2b-256 c842747d17c7ef1ca240f50e30d98a981ffa064124f73c30d00628fd4547ea92

See more details on using hashes here.

File details

Details for the file status_cake_exporter-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for status_cake_exporter-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 65840c3f4b0c5a1d6506e87788321bdd933c399c94b20c40ab6e74e2a2cdf974
MD5 9e542c1900e3f5e0956d1a8b2dfeff39
BLAKE2b-256 77ff4f096f1e12da36327ee3ad8c64fae3693c7426ef9c5aaa06457f11e6827f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page