Prometheus Exporter for updown.io
Metrics names are prefixed updown_.
| Name | Type | Description |
|---|---|---|
checks_enabled |
Counter | Status of Check (enabled=1) |
exporter_build_info |
Counter | Exporter build info |
metrics_response_times |
Histogram | Histogram of a Check's response times |
ghcr.io/dazwilkin/updown-exporter:1c2465f6b11787378bef5e1e4247881933c6cb81
updown-exporter container images are being signed by Sigstore and may be verified:
cosign verify \
--key=./cosign.pub \
ghcr.io/dazwilkin/updown-exporter:1c2465f6b11787378bef5e1e4247881933c6cb81NOTE cosign.pub may be downloaded here
To install cosign, e.g.:
go install github.com/sigstore/cosign/cmd/cosign@latestThe Exporter needs access to an updown API Key
export API_KEY="[YOUR-API-KEY]"export API_KEY="[YOUR-API-KEY]"
go run . \
--endpoint=0.0.0.0:8080 \
--path=/metricsAPI_KEY="[YOUR-API-KEY]"
IMAGE="ghcr.io/dazwilkin/updown-exporter:1c2465f6b11787378bef5e1e4247881933c6cb81"
podman run \
--interactive --tty --rm \
--publish=8080:8080 \
--env=API_KEY=${API_KEY} \
${IMAGE} \
--endpoint=0.0.0.0:8080 \
--path=/metricsThen browse http://localhost:8080/metrics to view the metrics.
prometheus.yml:
global:
scrape_interval: 1m
evaluation_interval: 1m
scrape_configs:
# updown Exporter
- job_name: "updown-exporter"
static_configs:
- targets:
- "localhost:8080"API_KEY="[YOUR-API-KEY]"
IMAGE="ghcr.io/dazwilkin/updown-exporter:1c2465f6b11787378bef5e1e4247881933c6cb81"
docker run \
--detach --tty --rm \
--name="updown-exporter" \
--env=API_KEY=${API_KEY} \
--publish=8080:8080/tcp \
${IMAGE} \
--endpoint=0.0.0.0:8080 \
--path=/metrics
docker run \
--detach --rm --tty \
--name="prometheus" \
--publish=9090:9090/tcp \
--volume=${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml:ro \
docker.io/prom/prometheus:v2.36.2 \
--config.file=/etc/prometheus/prometheus.yml \
--web.enable-lifecycleThen browse:
API_KEY="[YOUR-API-KEY]"
IMAGE="ghcr.io/dazwilkin/updown-exporter:1c2465f6b11787378bef5e1e4247881933c6cb81"
POD="updown-exporter"
podman pod create \
--name=${POD} \
--publish=5555:8080/tcp \
--publish=9090:9090/tcp
podman run \
--interactive --tty --rm \
--pod=${POD} \
--name="updown-exporter" \
--env=API_KEY=${API_KEY} \
${IMAGE} \
--endpoint=0.0.0.0:8080 \
--path=/metrics
podman run \
--detach --rm --tty \
--pod=${POD} \
--name="prometheus" \
--volume=${PWD}/prometheus.yml:/etc/prometheus/prometheus.yml:ro \
docker.io/prom/prometheus:v2.36.2 \
--config.file=/etc/prometheus/prometheus.yml \
--web.enable-lifecycleThen browse:
if [ "$(getconf LONG_BIT)" -eq 64 ]
then
# 64-bit Raspian
ARCH="GOARCH=arm64"
TAG="arm64"
else
# 32-bit Raspian
ARCH="GOARCH=arm GOARM=7"
TAG="arm32v7"
fi
podman build \
--build-arg=GOLANG_OPTIONS="CGO_ENABLED=0 GOOS=linux ${ARCH}" \
--build-arg=COMMIT=$(git rev-parse HEAD) \
--build-arg=VERSION=$(uname --kernel-release) \
--tag=ghcr.io/dazwilkin/updown-exporter:${TAG} \
--file=./Dockerfile \
.- Prometheus Exporter for Azure
- Prometheus Exporter for crt.sh
- Prometheus Exporter for Fly.io
- Prometheus Exporter for GoatCounter
- Prometheus Exporter for Google Cloud
- Prometheus Exporter for Koyeb
- Prometheus Exporter for Linode
- Prometheus Exporter for PorkBun
- Prometheus Exporter for updown.io
- Prometheus Exporter for Vultr