Skip to content

Monitoring

Oore CI exposes a Prometheus-compatible metrics endpoint and structured logging for monitoring.

Health check

bash
curl http://127.0.0.1:8787/healthz
# Returns: {"ok": true}

Use this endpoint for load balancer health checks and uptime monitoring.

Prometheus metrics

bash
curl http://127.0.0.1:8787/metrics

Returns Prometheus-format metrics. Configure your Prometheus instance to scrape this endpoint:

yaml
scrape_configs:
  - job_name: oore
    static_configs:
      - targets: ['127.0.0.1:8787']
    metrics_path: /metrics
    scrape_interval: 15s

TIP

Restrict access to /metrics in your reverse proxy to prevent exposing internal metrics publicly.

Structured logging

The daemon uses Rust's tracing framework. Control log verbosity with the RUST_LOG environment variable:

bash
# Default
export RUST_LOG=info

# Debug logging
export RUST_LOG=debug

# Module-specific logging
export RUST_LOG=oored=debug,tower_http=info

What to monitor

CheckHowAlert threshold
Daemon upGET /healthz returns 200Any non-200 response
Setup stateGET /v1/public/setup-statusState unexpectedly not ready
Runner healthCheck runner heartbeats in UIRunner offline for >5 minutes
Build queue depthMonitor builds in queued stateBuilds queued for >10 minutes
Disk spaceSystem monitoring<10% free on artifact storage volume
Database sizels -la ~/Library/Application Support/oore/oore.dbGrowing unexpectedly

Log aggregation

For centralized logging, redirect daemon output to a log aggregator:

bash
oored run 2>&1 | tee -a /var/log/oored.log

Or use launchd with stdout/stderr redirection if running as a service.

Self-hosted mobile CI, built for Flutter.