Files
pngx-sync/app/metrics.py
domverse b99dbf694d
All checks were successful
Deploy / deploy (push) Successful in 30s
feat: implement pngx-controller with Gitea CI/CD deployment
- Full FastAPI sync engine: master→replica document sync via paperless REST API
- Web UI: dashboard, replicas, logs, settings (Jinja2 + HTMX + Pico CSS)
- APScheduler background sync, SSE live log stream, Prometheus metrics
- Fernet encryption for API tokens at rest
- pngx.env credential file: written on save, pre-fills forms on load
- Dockerfile with layer-cached uv build, Python healthcheck
- docker-compose with host networking for Tailscale access
- Gitea Actions workflow: version bump, secret injection, docker compose deploy

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-22 17:59:25 +01:00

37 lines
780 B
Python

from prometheus_client import Counter, Gauge, Histogram
docs_total = Counter(
"pngx_sync_docs_total",
"Total documents synced",
["replica", "status"],
)
sync_duration = Histogram(
"pngx_sync_duration_seconds",
"Sync cycle duration in seconds",
["triggered_by"],
)
replica_lag = Gauge(
"pngx_replica_lag_seconds",
"Seconds since last successful sync",
["replica"],
)
replica_pending_tasks = Gauge(
"pngx_replica_pending_tasks",
"Pending tasks awaiting resolution",
["replica"],
)
replica_consecutive_failures = Gauge(
"pngx_replica_consecutive_failures",
"Consecutive sync cycle failures per replica",
["replica"],
)
sync_running = Gauge(
"pngx_sync_running",
"Whether a sync cycle is currently running",
)