Files
ctlog-uptime-exporter/README.md
2026-03-24 20:30:16 +01:00

53 lines
1.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# ctlog-uptime-exporter
A Prometheus exporter for [Certificate Transparency](https://certificate.transparency.dev/) log uptime data published by Google at:
```
https://www.gstatic.com/ct/compliance/endpoint_uptime_24h.csv
```
The CSV reports the 24-hour uptime percentage for each CT log URL broken down by operation type (`add-chain`, `get-entries`, `get-sth`, etc.). This exporter fetches that CSV on a configurable schedule and exposes the data as Prometheus metrics.
## Metrics
| Metric | Labels | Description |
|---|---|---|
| `ct_log_uptime_ratio` | `log_url`, `endpoint` | 24h uptime as a ratio (01) |
| `ct_log_uptime_fetch_success` | — | 1 if the last fetch succeeded, 0 otherwise |
| `ct_log_uptime_fetch_timestamp_seconds` | — | Unix timestamp of the last fetch attempt |
Standard `go_*` and `process_*` metrics are also exposed.
## Usage
```sh
go build -o ctlog-uptime-exporter .
./ctlog-uptime-exporter
```
Metrics are served at `http://localhost:9781/metrics`.
## Flags
| Flag | Default | Description |
|---|---|---|
| `-listen` | `:9781` | Address to listen on |
| `-url` | `https://www.gstatic.com/ct/compliance/endpoint_uptime_24h.csv` | URL of the uptime CSV |
| `-interval` | `12h` | How often to fetch the CSV |
| `-jitter` | `5m` | Maximum ±jitter applied to the fetch interval |
The exporter fetches the CSV once on startup, then repeats every `-interval` ± a random value up to `-jitter`. This avoids thundering-herd effects if multiple instances run in parallel.
## Example Prometheus scrape config
```yaml
scrape_configs:
- job_name: ctlog_uptime
static_configs:
- targets: ['localhost:9781']
```
## License
Apache 2.0 — see [LICENSE](LICENSE).