initial checkin
This commit is contained in:
52
README.md
Normal file
52
README.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# 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 (0–1) |
|
||||
| `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).
|
||||
Reference in New Issue
Block a user