Metrics
Built-in Prometheus-compatible metrics for HTTP request counts, latencies, error rates, and uptime — no external dependencies required.
Metrics
FastCMS includes a built-in in-memory metrics store with Prometheus-compatible output. No external dependencies (like StatsD or Prometheus push gateway) are required.
Endpoints
Both endpoints require admin authentication.
JSON Snapshot
GET /api/v1/metrics
Authorization: Bearer ADMIN_TOKEN{
"counters": {
"fastcms_http_requests_total": {
"GET_200": 1523,
"POST_201": 87,
"POST_400": 12
},
"fastcms_http_errors_total": {
"POST_500": 2
}
},
"gauges": {
"fastcms_uptime_seconds": 86400
},
"histograms": {
"fastcms_http_request_duration_ms": {
"GET": {"p50": 12.4, "p95": 45.1, "p99": 120.3, "count": 1523}
}
}
}Prometheus Format
GET /api/v1/metrics/prometheus
Authorization: Bearer ADMIN_TOKEN# TYPE fastcms_http_requests_total counter
fastcms_http_requests_total{method="GET",status="200"} 1523
fastcms_http_requests_total{method="POST",status="201"} 87
# TYPE fastcms_http_request_duration_ms histogram
fastcms_http_request_duration_ms{method="GET",quantile="0.5"} 12.4
fastcms_http_request_duration_ms{method="GET",quantile="0.95"} 45.1
fastcms_http_request_duration_ms{method="GET",quantile="0.99"} 120.3
# TYPE fastcms_uptime_seconds gauge
fastcms_uptime_seconds 86400Metrics Tracked
| Metric | Type | Labels | Description |
|---|---|---|---|
fastcms_http_requests_total | Counter | method, status | Total HTTP requests |
fastcms_http_request_duration_ms | Histogram | method | Request duration in ms |
fastcms_http_errors_total | Counter | method, status | HTTP 5xx errors |
fastcms_uptime_seconds | Gauge | — | Seconds since app start |
Histograms expose p50, p95, p99 percentiles. The last 5,000 observations per metric are kept in memory.
Prometheus Scraping
Add FastCMS to your prometheus.yml:
scrape_configs:
- job_name: fastcms
static_configs:
- targets: ['your-fastcms.com']
metrics_path: /api/v1/metrics/prometheus
bearer_token: YOUR_ADMIN_TOKEN
scheme: httpsGrafana Dashboard
Import the metrics into Grafana by adding Prometheus as a data source, then build panels using queries like:
# Request rate (per minute)
rate(fastcms_http_requests_total[1m])
# Error rate
rate(fastcms_http_errors_total[5m])
# p95 latency
fastcms_http_request_duration_ms{quantile="0.95"}
# Uptime
fastcms_uptime_secondsNotes
- Metrics are in-memory only — they reset on server restart
- For persistent metrics, scrape regularly with Prometheus and store in its TSDB
- No additional Python packages required — pure Python implementation
- Thread-safe with internal locking
System Settings
Database-backed configuration for authentication, SMTP, file storage, rate limiting, and more — manageable via Admin UI or API.
TypeScript SDK
Official TypeScript/JavaScript SDK for FastCMS with full type safety, auto token refresh, batch operations, real-time subscriptions, and OTP authentication.