Skip to main content
fal exposes a Prometheus-compatible metrics endpoint that you can scrape with any monitoring tool. Use it to build custom dashboards, set up alerts on queue depth or error rates, and feed fal metrics into the same observability stack you use for the rest of your infrastructure. The endpoint returns metrics in Prometheus exposition format, so it works with Grafana, Datadog, New Relic, Splunk, or any tool that can scrape a Prometheus target. Responses are cached for 10 seconds, so set your scrape interval accordingly.

Endpoint

Available Metrics

The state label tracks whether a runner’s container is up: pending while starting, running once up, and dead briefly after it exits.
state is coarser than the runner status in fal runners list. A runner the CLI shows as IDLE (alive, not processing) and one it shows as RUNNING both report state="running", so fal_app_runners{state="running"} counts runners that are up, not runners that are busy.

Resource Metrics

The fal_app_runner_* metrics report resource usage summed across an app’s runners, not averaged. An app with four busy GPUs reports fal_app_runner_gpu_utilization_percent around 400, so these values scale with the size of your app — normalize before alerting on a threshold. Divide the GPU and VRAM percentages by fal_app_runner_gpu_count for a per-GPU average, and the CPU percentage by the app’s runner count. Apps running on CPU-only machine types report no GPU or VRAM samples.

Integration

Add the endpoint as a Prometheus data source in your monitoring tool. The only requirement is passing your API key in the Authorization: Key ... header. Set the scrape interval to at least 10 seconds since responses are cached at that frequency.

Example PromQL Queries

All metrics are gauges. The fal_app_request_latency metric uses histogram-style buckets (labeled by le) for latency distribution analysis.

Platform API Reference

Full API specification for the metrics endpoint