A stateless status page using data from prometheus. Demo page.
The status page is configured using a yaml config file:
datasources:
- name: prometheus
url: http://prometheus:9000
type: prometheus
- name: datadog
url: datadoghq.eu
type: datadog
extras:
appKey: XXXXX
apiKey: XXXXX
services:
- name: Postgres
# Optional. Group services together
group: Infra
query:
# If multiple values are returned, only the first one is used
query: sum(pg_up)
# The expressions uses https://expr-lang.org and must evaluate to true/false
expression: float(pg_up) == 1
# Optional. The time range to calculate the uptime percentage with (default: 24h)
range: 24h
# Optional. The resoltuion of the range query (default: 5m)
step: 5m
# Optional. Whether to generate graphs based on raw values or boolean values (default: false).
# This value is always set to true for the main query (i.e. services[].query.bool), but can be user-configured
# for the extra queries (i.e. services[].extras[].bool)
bool: false
# Optional. The units to display on any graphs (default: null)
units: ""
# Optional. The datasource to use for the query (default: prometheus)
datasource: prometheus
- name: Http Server
group: Web
query:
query: sum:http_server.error_rate{*}.as_rate()
datasource: datadog
expression: (100 - float(result)) > 99.99
# Settings to configure the UI
ui:
# Optional. The title of the page (default: Status Page)
title: Status Page
# Optional. The interval that the page reloads on (default: 30s)
refresh: 30s
# Optional. Configure graph settings
graphs:
# The maximum number of data points to display on the graph (default: 200)
points: 200
helm install prompage oci://ghcr.io/henrywhitaker3/prompage-helm
See the values file for configuration options
With a file in the working directory called prompage.yaml
:
docker run -p 3000:3000 -v $(pwd)/prompage.yaml:/prompage.yaml ghcr.io/henrywhitaker3/prompage:latest serve