Prometheus
OPA exposes an HTTP endpoint that can be used to collect performance metrics for all API calls. The Prometheus endpoint is enabled by default when you run OPA as a server.
You can enable metric collection from OPA with the following prometheus.yml
config:
global:
scrape_interval: 15s
scrape_configs:
- job_name: "opa"
metrics_path: "/metrics"
static_configs:
- targets:
- "localhost:8181"
The Prometheus endpoint exports Go runtime metrics as well as HTTP request latency metrics for all handlers (e.g., v1/data
).
Metric name | Metric type | Description |
---|---|---|
go_gc_duration_seconds | summary | A summary of the GC invocation durations. |
go_goroutines | gauge | Number of goroutines that currently exist. |
go_info | gauge | Information about the Go environment. |
go_memstats_alloc_bytes | gauge | Number of bytes allocated and still in use. |
go_memstats_alloc_bytes_total | counter | Total number of bytes allocated, even if freed. |
go_memstats_buck_hash_sys_bytes | gauge | Number of bytes used by the profiling bucket hash table. |
go_memstats_frees_total | counter | Total number of frees. |
go_memstats_gc_cpu_fraction | gauge | The fraction of this program’s available CPU time used by the GC since the program started. |
go_memstats_gc_sys_bytes | gauge | Number of bytes used for garbage collection system metadata. |
go_memstats_heap_alloc_bytes | gauge | Number of heap bytes allocated and still in use. |
go_memstats_heap_idle_bytes | gauge | Number of heap bytes waiting to be used. |
go_memstats_heap_inuse_bytes | gauge | Number of heap bytes that are in use. |
go_memstats_heap_objects | gauge | Number of allocated objects. |
go_memstats_heap_released_bytes | gauge | Number of heap bytes released to OS. |
go_memstats_heap_sys_bytes | gauge | Number of heap bytes obtained from system. |
go_memstats_last_gc_time_seconds | gauge | Number of seconds since 1970 of last garbage collection. |
go_memstats_lookups_total | counter | Total number of pointer lookups. |
go_memstats_mallocs_total | counter | Total number of mallocs. |
go_memstats_mcache_inuse_bytes | gauge | Number of bytes in use by mcache structures. |
go_memstats_mcache_sys_bytes | gauge | Number of bytes used for mcache structures obtained from system. |
go_memstats_mspan_inuse_bytes | gauge | Number of bytes in use by mspan structures. |
go_memstats_mspan_sys_bytes | gauge | Number of bytes used for mspan structures obtained from system. |
go_memstats_next_gc_bytes | gauge | Number of heap bytes when next garbage collection will take place. |
go_memstats_other_sys_bytes | gauge | Number of bytes used for other system allocations. |
go_memstats_stack_inuse_bytes | gauge | Number of bytes in use by the stack allocator. |
go_memstats_stack_sys_bytes | gauge | Number of bytes obtained from system for stack allocator. |
go_memstats_sys_bytes | gauge | Number of bytes obtained from system. |
go_threads | gauge | Number of OS threads created. |
http_request_duration_seconds | histogram | A histogram of duration for requests. |
Health Checks
OPA exposes a /health
API endpoint that can be used to perform health checks. See Health API for details.
Status API
OPA provides a plugin which can push status to a remote service. See Status API for details.