ec opa bench
Benchmark a Rego query
Synopsis
Benchmark a Rego query and print the results.
The benchmark command works very similar to 'eval' and will evaluate the query in the same fashion. The evaluation will be repeated a number of times and performance results will be returned.
Example with bundle and input data:
opa bench -b ./policy-bundle -i input.json 'data.authz.allow'
To enable more detailed analysis use the --metrics and --benchmem flags.
To run benchmarks against a running OPA server to evaluate server overhead use the --e2e flag.
The optional "gobench" output format conforms to the Go Benchmark Data Format.
ec opa bench <query> [flags]
Options
- --benchmem
-
report memory allocations with benchmark results (Default: true)
- -b, --bundle
-
set bundle file(s) or directory path(s). This flag can be repeated.
- -c, --config-file
-
set path of configuration file
- --count
-
number of times to repeat each benchmark (Default: 1)
- -d, --data
-
set policy or data file(s). This flag can be repeated.
- --e2e
-
run benchmarks against a running OPA server (Default: false)
- --fail
-
exits with non-zero exit code on undefined/empty result and errors (Default: true)
- -f, --format
-
set output format (Default: pretty)
- -h, --help
-
help for bench (Default: false)
- --ignore
-
set file and directory names to ignore during loading (e.g., '.*' excludes hidden files) (Default: [])
- --import
-
set query import(s). This flag can be repeated.
- -i, --input
-
set input file path
- --metrics
-
report query performance metrics (Default: true)
- --optimize-store-for-read-speed
-
optimize default in-memory store for read speed. Has possible negative impact on memory footprint and write speed. See https://www.openpolicyagent.org/docs/latest/policy-performance/#storage-optimization for more details. (Default: false)
- --package
-
set query package
- -p, --partial
-
perform partial evaluation (Default: false)
- -s, --schema
-
set schema file path or directory path
- --shutdown-grace-period
-
set the time (in seconds) that the server will wait to gracefully shut down. This flag is valid in 'e2e' mode only. (Default: 10)
- --shutdown-wait-period
-
set the time (in seconds) that the server will wait before initiating shutdown. This flag is valid in 'e2e' mode only. (Default: 0)
- --stdin
-
read query from stdin (Default: false)
- -I, --stdin-input
-
read input document from stdin (Default: false)
- -t, --target
-
set the runtime to exercise (Default: rego)
- -u, --unknowns
-
set paths to treat as unknown during partial evaluation (Default: [input])
- --v0-compatible
-
opt-in to OPA features and behaviors prior to the OPA v1.0 release. Takes precedence over --v1-compatible (Default: false)
- --v1-compatible
-
opt-in to OPA features and behaviors that are enabled by default in OPA v1.0 (Default: false)
Options inherited from parent commands
- --debug
-
same as verbose but also show function names and line numbers (Default: false)
- --kubeconfig
-
path to the Kubernetes config file to use
- --logfile
-
file to write the logging output. If not specified logging output will be written to stderr
- --quiet
-
less verbose output (Default: false)
- --timeout
-
max overall execution duration (Default: 5m0s)
- --trace
-
enable trace logging, set one or more comma separated values: none,all,perf,cpu,mem,opa,log (Default: none)
- --verbose
-
more verbose output (Default: false)