arangobench Startup Options

Usage: arangobench [<options>]

Examples

Run the version test case with 1000 requests, without concurrency:

arangobench --test-case version --requests 1000 --concurrency 1

Run the document test case with 2000 requests, with two concurrent threads:

arangobench --test-case document --requests 1000 --concurrency 2

Run the document test case with 2000 requests, with concurrency 2, with async requests:

arangobench --test-case document --requests 1000 --concurrency 2 --async true

Run the document test case with 2000 requests, with concurrency 2, using batch requests:

arangobench --test-case document --requests 1000 --concurrency 2 --batch-size 10

General

--async

Type: boolean

Send asynchronous requests

This option can be specified without a value to enable it.

Default: false


--batch-size

Type: uint64

Number of operations in one batch (0 disables batching)

Default: 0


--check-configuration

Type: boolean

Check the configuration and exit

This is a command, no value needs to be specified. The process terminates after executing the command.


--collection

Type: string

Collection name to use in tests (if they involve collections)

Default: "ArangoBenchmark"


--complexity

Type: uint64

Complexity parameter for the test (meaning depends on test case)

Default: 1


--concurrency

Type: uint64

Number of parallel threads and connections

Default: 36


--config

Type: string

The configuration file or 'none'

Default: ""


--configuration

Type: string

The configuration file or 'none'

Default: ""


--create-database

Type: boolean

Whether we should create the database specified via the server connection

This option can be specified without a value to enable it.

Default: false


--custom-query

Introduced in: v3.8.0

Type: string

The query to be used in the 'custom-query' testcase

Default: ""


--custom-query-file

Introduced in: v3.8.0

Type: string

Path to a file with the query to be used in the 'custom-query' testcase. If --custom-query is specified as well, it has higher priority.

Default: ""


--define

Type: string…

Define key=value for a @key@ entry in config file

Default: []


--delay

Type: boolean

Use a startup delay (necessary only when run in series)

This option can be specified without a value to enable it.

Default: false


--dump-dependencies

Type: boolean

Dump dependency graph

This is a command, no value needs to be specified. The process terminates after executing the command.


--dump-options

Type: boolean

Dump configuration options in JSON format

This is a command, no value needs to be specified. The process terminates after executing the command.


--duration

Type: uint64

Test for duration seconds instead of a fixed test count

Default: 0


--json-report-file

Type: string

Filename to write a report in JSON format to

Default: ""


--junit-report-file

Type: string

Filename to write junit style report to

Default: ""


--keep-alive

Type: boolean

Use HTTP keep-alive

This option can be specified without a value to enable it.

Default: true


--log

Deprecated in: v3.5.0

Type: string…

The global or topic-specific log level

Default: ["info"]


--number-of-shards

Type: uint64

Number of shards of created collections (cluster only)

Default: 1


--progress

Type: boolean

Log intermediate progress

This option can be specified without a value to enable it.

Default: true


--quiet

Type: boolean

Suppress status messages

This option can be specified without a value to enable it.

Default: false


--replication-factor

Type: uint64

Replication factor of created collections (cluster only)

Default: 1


--requests

Type: uint64

Total number of operations

Default: 1000


--runs

Type: uint64

Run test n times (and calculate statistics based on median)

Default: 1


--test-case

Type: string

Test case to use

Default: "version"

Possible values: “aqlinsert”, “aqltrx”, “aqlv8”, “collection”, “counttrx”, “crud”, “crud-append”, “crud-write-read”, “custom-query”, “deadlocktrx”, “document”, “edge”, “hash”, “import-document”, “multi-collection”, “multitrx”, “random-shapes”, “shapes”, “shapes-append”, “skiplist”, “stream-cursor”, “version”


--version

Type: boolean

Reports the version and exits

This is a command, no value needs to be specified. The process terminates after executing the command.


--version-json

Introduced in: v3.9.0

Type: boolean

Reports the version as JSON and exits

This is a command, no value needs to be specified. The process terminates after executing the command.


--wait-for-sync

Type: boolean

Use waitForSync for created collections

This option can be specified without a value to enable it.

Default: false

Histogram

--histogram.generate

Introduced in: v3.9.0

Type: boolean

Display histogram

This option can be specified without a value to enable it.

Default: false


--histogram.interval-size

Type: double

Bucket width, dynamically calculated by default: (first measured time * 20) / num-intervals

Default: dynamic (e.g. 0)


--histogram.num-intervals

Type: uint64

Number of buckets (resolution)

Default: 1000


--histogram.percentiles

Type: double…

Which percentiles to calculate

Default: [50,80,85,90,95,99,99.99]

Log

--log.color

Type: boolean

Use colors for TTY logging

This option can be specified without a value to enable it.

Default: dynamic (e.g. true)


--log.escape-control-chars

Introduced in: v3.9.0

Type: boolean

Escape control characters when logging

This option can be specified without a value to enable it.

Default: true


--log.escape-unicode-chars

Introduced in: v3.9.0

Type: boolean

Escape unicode characters when logging

This option can be specified without a value to enable it.

Default: false


--log.file

Type: string

Shortcut for '--log.output file://<filename>'

Default: "-"


--log.file-group

Introduced in: v3.4.5

Type: string

Group to use for new log file, user must be a member of this group

Default: ""


--log.file-mode

Introduced in: v3.4.5

Type: string

Mode to use for new log file, umask will be applied as well

Default: ""


--log.force-direct

Type: boolean

Do not start a seperate thread for logging

This option can be specified without a value to enable it.

Default: false


--log.foreground-tty

Type: boolean

Also log to tty if backgrounded

This option can be specified without a value to enable it.

Default: dynamic (e.g. false)


--log.hostname

Introduced in: v3.8.0

Type: string

Hostname to use in log message (empty for none, use 'auto' to automatically figure out hostname)

Default: ""


--log.ids

Introduced in: v3.5.0

Type: boolean

Log unique message ids

This option can be specified without a value to enable it.

Default: true


--log.level

Type: string…

The global or topic-specific log level

Default: ["info"]


--log.line-number

Type: boolean

Include the function name, file name and line number of the source code that issues the log message. Format: [func@FileName.cpp:123]

This option can be specified without a value to enable it.

Default: false


--log.max-entry-length

Introduced in: v3.7.9

Type: uint32

Maximum length of a log entry (in bytes)

Default: 134217728


--log.output

Type: string…

Log destination(s), e.g. file:///path/to/file (any '$PID' will be replaced with the process id)

Default: []


--log.performance

Deprecated in: v3.5.0

Type: boolean

Shortcut for '--log.level performance=trace'

This option can be specified without a value to enable it.

Default: false


--log.prefix

Type: string

Prefix log message with this string

Default: ""


--log.process

Introduced in: v3.8.0

Type: boolean

Show process identifier (pid) in log message

This option can be specified without a value to enable it.

Default: true


--log.request-parameters

Type: boolean

Include full URLs and HTTP request parameters in trace logs

This option can be specified without a value to enable it.

Default: true


--log.role

Type: boolean

Log server role

This option can be specified without a value to enable it.

Default: false


--log.shorten-filenames

Type: boolean

Shorten filenames in log output (use with --log.line-number)

This option can be specified without a value to enable it.

Default: true


--log.thread

Type: boolean

Show thread identifier in log message

This option can be specified without a value to enable it.

Default: false


--log.thread-name

Type: boolean

Show thread name in log message

This option can be specified without a value to enable it.

Default: false


--log.time-format

Introduced in: v3.5.0

Type: string

Time format to use in logs

Default: "utc-datestring"

Possible values: “local-datestring”, “timestamp”, “timestamp-micros”, “timestamp-millis”, “uptime”, “uptime-micros”, “uptime-millis”, “utc-datestring”, “utc-datestring-millis”


--log.use-json-format

Introduced in: v3.8.0

Type: boolean

Use json output format

This option can be specified without a value to enable it.

Default: false


--log.use-local-time

Deprecated in: v3.5.0

Type: boolean

Use local timezone instead of UTC

This option can be specified without a value to enable it.

Default: false


--log.use-microtime

Deprecated in: v3.5.0

Type: boolean

Use microtime instead

This option can be specified without a value to enable it.

Default: false

Random

--random.generator

Type: uint32

Random number generator to use (1 = MERSENNE, 2 = RANDOM, 3 = URANDOM, 4 = COMBINED (not for Windows), 5 = WinCrypt (Windows only)

Default: 1

Possible values: 1, 2, 3, 4

Server

--server.authentication

Type: boolean

Require authentication credentials when connecting (does not affect the server-side authentication settings)

This option can be specified without a value to enable it.

Default: false


--server.connection-timeout

Type: double

Connection timeout in seconds

Default: 5


--server.database

Type: string

Database name to use when connecting

Default: "_system"


--server.endpoint

Type: string…

Endpoint to connect to. Use 'none' to start without a server. Use http+ssl:// as schema to connect to an SSL-secured server endpoint, otherwise http+tcp:// or unix://

Default: ["http+tcp://127.0.0.1:8529"]


--server.max-packet-size

Type: uint64

Maximum packet size (in bytes) for client/server communication

Default: 1073741824


--server.password

Type: string

Password to use when connecting. If not specified and authentication is required, the user will be prompted for a password

Default: ""


--server.request-timeout

Type: double

Request timeout in seconds

Default: 1200


--server.username

Type: string

Username to use when connecting

Default: "root"

SSL

--ssl.protocol

Type: uint64

Ssl protocol (1 = SSLv2 (unsupported), 2 = SSLv2 or SSLv3 (negotiated), 3 = SSLv3, 4 = TLSv1, 5 = TLSv1.2, 6 = TLSv1.3, 9 = generic TLS)

Default: 5

Possible values: 1, 2, 3, 4, 5, 6, 9

Temp

--temp.path

Type: string

Path for temporary files

Default: ""