Statuspage Exporter

Statuspage exporter exports metrics from given statuspages as prometheus metrics.
Supported statuspage engines:
- Statuspage.io (Widely used statuspage engine. For example by GitHub). You can check that statuspage is supported by this engine by checking that it has a /api/v2/components.json endpoint.
- Status.io (Widely used statuspage engine. For example by Gitlab.com. You can check that statuspage is supported by this engine by checking footer of the page. It should contain status.io text)
Statuspage exporter will automatically detect, which engine used by statuspage and will use appropriate parser.
If this statuspage is not supported by any of the engines, then statuspage exporter will show error message in the logs.
Some popular statuspages:
Statuspage.io Engine
Status.io Engine
Running exporter
You can run the exporter with docker, kubernetes, or just as a binary.
Docker
Docker images available in Github Registry/DockerHub in all arch (amd64, arm64, arm/v7) for linux. Please be careful with DockerHun pull limits.
docker run -p 8080:8080 ghcr.io/sergeyshevch/statuspage-exporter --statuspages=https://www.githubstatus.com, https://https://jira-software.status.atlassian.com
Helm
helm add sergeyshevch sergeyshevch.github.io/charts
helm install sergeyshevch/statuspage-exporter --namespace statuspage-exporter --create-namespace --set statuspages[0]=https://www.githubstatus.com
Binary
Please select latest available release from releases page
wget https://github.com/sergeyshevch/statuspage-exporter/releases/download/v1.2.0/statuspage-exporter_v1.2.0_darwin_amd64 -O statuspage-exporter
sudo chmod +x statuspage-exporter
./statuspage-exporter
Configuration
You can provide configuration using configuration file or environment variables.
Configuration file must be named as '.statuspage-exporter.yaml' and should be placed in the home directory or same directory as the binary.
Environment variable names are the same as configuration file keys but in upper case and with underscores instead of dots.
You can read defaults from config.go
Configuration file example
http_port: 8080
# Delay between requests to the statuspages
fetch_delay: 5
# Timeout for the http client
client_timeout: 2
# List of the targets to scrape
statuspages:
- https://githubstatus.com
- https://jira-software.status.atlassian.com
- https://status.gitlab.com
retry_count: 3
Metrics Example
# HELP service_status Status of a service component, values 0 (operational) to 4 (major_outage)
# TYPE service_status gauge
service_status{component="API Requests",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Actions",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Codespaces",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Copilot",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Git Operations",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Issues",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Packages",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Pages",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Pull Requests",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Visit www.githubstatus.com for more information",service="GitHub",status_page_url="https://status.github.com"} 1
service_status{component="Webhooks",service="GitHub",status_page_url="https://status.github.com"} 1
# HELP statuspage_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which statuspage_exporter was built.
# TYPE statuspage_exporter_build_info gauge
statuspage_exporter_build_info{branch="",goversion="go1.19.2",revision="",version=""} 1
License Scan
