ArangoDB v3.13 is under development and not released yet. This documentation is not final and potentially incomplete.
HTTP interface for server statistics
Server statistics let you monitor the system but they are superseded by the more detailed server metrics
Get the statistics
/_admin/metrics/v2
instead, which provides the data exposed by this API
and a lot more.Returns the statistics information. The returned object contains the
statistics figures grouped together according to the description returned by
/_admin/statistics-description
. For instance, to access a figure userTime
from the group system
, you first select the sub-object describing the
group stored in system
and in that sub-object the value for userTime
is
stored in the attribute of the same name.
In case of a distribution, the returned object contains the total count in
count
and the distribution list in counts
. The sum (or total) of the
individual values is returned in sum
.
The transaction statistics show the local started, committed and aborted transactions as well as intermediate commits done for the server queried. The intermediate commit count will only take non zero values for the RocksDB storage engine. Coordinators do almost no local transactions themselves in their local databases, therefor cluster transactions (transactions started on a Coordinator that require DB-Servers to finish before the transactions is committed cluster wide) are just added to their local statistics. This means that the statistics you would see for a single server is roughly what you can expect in a cluster setup using a single Coordinator querying this Coordinator. Just with the difference that cluster transactions have no notion of intermediate commits and will not increase the value.
Examples
curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/statistics
Show output
HTTP/1.1 200 OK
content-type: application/json
cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
connection: Keep-Alive
content-length: 2197
content-security-policy: frame-ancestors 'self'; form-action 'self';
expires: 0
pragma: no-cache
server: ArangoDB
strict-transport-security: max-age=31536000 ; includeSubDomains
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
{
"time" : 1710183857.9276052,
"enabled" : true,
"system" : {
"minorPageFaults" : 152340,
"majorPageFaults" : 0,
"userTime" : 4.97,
"systemTime" : 1.77,
"numberOfThreads" : 61,
"residentSize" : 272314368,
"residentSizePercent" : 0.008225474734345116,
"virtualSize" : 2752602112
},
"client" : {
"httpConnections" : 1,
"connectionTime" : {
"sum" : 0,
"count" : 0,
"counts" : [
0,
0,
0,
0
]
},
"totalTime" : {
"sum" : 0.8396263122558594,
"count" : 530,
"counts" : [
518,
5,
6,
1,
0,
0,
0,
0,
0,
0
]
},
"requestTime" : {
"sum" : 0.7715020179748535,
"count" : 530,
"counts" : [
518,
5,
6,
1,
0,
0,
0,
0,
0,
0
]
},
"queueTime" : {
"sum" : 0.01184988021850586,
"count" : 530,
"counts" : [
530,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
"ioTime" : {
"sum" : 0.0562744140625,
"count" : 530,
"counts" : [
530,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
"bytesSent" : {
"sum" : 496312,
"count" : 530,
"counts" : [
6,
492,
24,
7,
0,
1
]
},
"bytesReceived" : {
"sum" : 120869,
"count" : 530,
"counts" : [
414,
116,
0,
0,
0,
0
]
}
},
"clientUser" : {
"httpConnections" : 1,
"connectionTime" : {
"sum" : 0,
"count" : 0,
"counts" : [
0,
0,
0,
0
]
},
"totalTime" : {
"sum" : 0.8396263122558594,
"count" : 530,
"counts" : [
518,
5,
6,
1,
0,
0,
0,
0,
0,
0
]
},
"requestTime" : {
"sum" : 0.7715020179748535,
"count" : 530,
"counts" : [
518,
5,
6,
1,
0,
0,
0,
0,
0,
0
]
},
"queueTime" : {
"sum" : 0.01184988021850586,
"count" : 530,
"counts" : [
530,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
"ioTime" : {
"sum" : 0.0562744140625,
"count" : 530,
"counts" : [
530,
0,
0,
0,
0,
0,
0,
0,
0,
0
]
},
"bytesSent" : {
"sum" : 496312,
"count" : 530,
"counts" : [
6,
492,
24,
7,
0,
1
]
},
"bytesReceived" : {
"sum" : 120869,
"count" : 530,
"counts" : [
414,
116,
0,
0,
0,
0
]
}
},
"http" : {
"requestsTotal" : 530,
"requestsSuperuser" : 0,
"requestsUser" : 530,
"requestsAsync" : 6,
"requestsGet" : 136,
"requestsHead" : 1,
"requestsPost" : 268,
"requestsPut" : 24,
"requestsPatch" : 6,
"requestsDelete" : 95,
"requestsOptions" : 0,
"requestsOther" : 0
},
"server" : {
"uptime" : 33.598891258239746,
"physicalMemory" : 33106219008,
"transactions" : {
"started" : 301,
"aborted" : 21,
"committed" : 451,
"intermediateCommits" : 0,
"readOnly" : 236,
"dirtyReadOnly" : 0
},
"v8Context" : {
"available" : 2,
"busy" : 2,
"dirty" : 0,
"free" : 0,
"max" : 28,
"min" : 1,
"memory" : [
{
"contextId" : 0,
"tMax" : 1710183824.593717,
"countOfTimes" : 10,
"heapMax" : 15005896,
"heapMin" : 0,
"invocations" : 45
},
{
"contextId" : 1,
"tMax" : 1710183857.7066479,
"countOfTimes" : 8,
"heapMax" : 13640392,
"heapMin" : 0,
"invocations" : 3
}
]
},
"threads" : {
"scheduler-threads" : 4,
"blocked" : 0,
"queued" : 4,
"in-progress" : 4,
"direct-exec" : 0
}
},
"error" : false,
"code" : 200
}
Get the statistics description
/_admin/metrics/v2
instead, which provides the data exposed by the
statistics API and a lot more.Returns a description of the statistics returned by /_admin/statistics
.
The returned objects contains an array of statistics groups in the attribute
groups
and an array of statistics figures in the attribute figures
.
A statistics group is described by
group
: The identifier of the group.name
: The name of the group.description
: A description of the group.
A statistics figure is described by
group
: The identifier of the group to which this figure belongs.identifier
: The identifier of the figure. It is unique within the group.name
: The name of the figure.description
: A description of the figure.type
: Eithercurrent
,accumulated
, ordistribution
.cuts
: The distribution vector.units
: Units in which the figure is measured.
Examples
curl --header 'accept: application/json' --dump - http://localhost:8529/_admin/statistics-description
Show output
HTTP/1.1 200 OK
content-type: application/json
cache-control: no-cache, no-store, must-revalidate, pre-check=0, post-check=0, max-age=0, s-maxage=0
connection: Keep-Alive
content-length: 7628
content-security-policy: frame-ancestors 'self'; form-action 'self';
expires: 0
pragma: no-cache
server: ArangoDB
strict-transport-security: max-age=31536000 ; includeSubDomains
x-arango-queue-time-seconds: 0.000000
x-content-type-options: nosniff
{
"groups" : [
{
"group" : "system",
"name" : "Process Statistics",
"description" : "Statistics about the ArangoDB process"
},
{
"group" : "client",
"name" : "Client Connection Statistics",
"description" : "Statistics about the connections."
},
{
"group" : "clientUser",
"name" : "Client User Connection Statistics",
"description" : "Statistics about the connections, only user traffic (ignoring superuser JWT traffic)."
},
{
"group" : "http",
"name" : "HTTP Request Statistics",
"description" : "Statistics about the HTTP requests."
},
{
"group" : "server",
"name" : "Server Statistics",
"description" : "Statistics about the ArangoDB server"
}
],
"figures" : [
{
"group" : "system",
"identifier" : "userTime",
"name" : "User Time",
"description" : "Amount of time that this process has been scheduled in user mode, measured in seconds.",
"type" : "accumulated",
"units" : "seconds"
},
{
"group" : "system",
"identifier" : "systemTime",
"name" : "System Time",
"description" : "Amount of time that this process has been scheduled in kernel mode, measured in seconds.",
"type" : "accumulated",
"units" : "seconds"
},
{
"group" : "system",
"identifier" : "numberOfThreads",
"name" : "Number of Threads",
"description" : "Number of threads in the arangod process.",
"type" : "current",
"units" : "number"
},
{
"group" : "system",
"identifier" : "residentSize",
"name" : "Resident Set Size",
"description" : "The total size of the number of pages the process has in real memory. This is just the pages which count toward text, data, or stack space. This does not include pages which have not been demand-loaded in, or which are swapped out. The resident set size is reported in bytes.",
"type" : "current",
"units" : "bytes"
},
{
"group" : "system",
"identifier" : "residentSizePercent",
"name" : "Resident Set Size",
"description" : "The percentage of physical memory used by the process as resident set size.",
"type" : "current",
"units" : "percent"
},
{
"group" : "system",
"identifier" : "virtualSize",
"name" : "Virtual Memory Size",
"description" : "This figure contains The size of the virtual memory the process is using.",
"type" : "current",
"units" : "bytes"
},
{
"group" : "system",
"identifier" : "minorPageFaults",
"name" : "Minor Page Faults",
"description" : "The number of minor faults the process has made which have not required loading a memory page from disk.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "system",
"identifier" : "majorPageFaults",
"name" : "Major Page Faults",
"description" : "This figure contains the number of major faults the process has made which have required loading a memory page from disk.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "client",
"identifier" : "httpConnections",
"name" : "Client Connections",
"description" : "The number of connections that are currently open.",
"type" : "current",
"units" : "number"
},
{
"group" : "client",
"identifier" : "totalTime",
"name" : "Total Time",
"description" : "Total time needed to answer a request.",
"type" : "distribution",
"cuts" : [
0.01,
0.05,
0.1,
0.2,
0.5,
1,
5,
15,
30
],
"units" : "seconds"
},
{
"group" : "client",
"identifier" : "requestTime",
"name" : "Request Time",
"description" : "Request time needed to answer a request.",
"type" : "distribution",
"cuts" : [
0.01,
0.05,
0.1,
0.2,
0.5,
1,
5,
15,
30
],
"units" : "seconds"
},
{
"group" : "client",
"identifier" : "queueTime",
"name" : "Queue Time",
"description" : "Queue time needed to answer a request.",
"type" : "distribution",
"cuts" : [
0.01,
0.05,
0.1,
0.2,
0.5,
1,
5,
15,
30
],
"units" : "seconds"
},
{
"group" : "client",
"identifier" : "bytesSent",
"name" : "Bytes Sent",
"description" : "Bytes sents for a request.",
"type" : "distribution",
"cuts" : [
250,
1000,
2000,
5000,
10000
],
"units" : "bytes"
},
{
"group" : "client",
"identifier" : "bytesReceived",
"name" : "Bytes Received",
"description" : "Bytes received for a request.",
"type" : "distribution",
"cuts" : [
250,
1000,
2000,
5000,
10000
],
"units" : "bytes"
},
{
"group" : "client",
"identifier" : "connectionTime",
"name" : "Connection Time",
"description" : "Total connection time of a client.",
"type" : "distribution",
"cuts" : [
0.1,
1,
60
],
"units" : "seconds"
},
{
"group" : "clientUser",
"identifier" : "httpConnections",
"name" : "Client Connections",
"description" : "The number of connections that are currently open (only user traffic).",
"type" : "current",
"units" : "number"
},
{
"group" : "clientUser",
"identifier" : "totalTime",
"name" : "Total Time",
"description" : "Total time needed to answer a request (only user traffic).",
"type" : "distribution",
"cuts" : [
0.01,
0.05,
0.1,
0.2,
0.5,
1,
5,
15,
30
],
"units" : "seconds"
},
{
"group" : "clientUser",
"identifier" : "requestTime",
"name" : "Request Time",
"description" : "Request time needed to answer a request (only user traffic).",
"type" : "distribution",
"cuts" : [
0.01,
0.05,
0.1,
0.2,
0.5,
1,
5,
15,
30
],
"units" : "seconds"
},
{
"group" : "clientUser",
"identifier" : "queueTime",
"name" : "Queue Time",
"description" : "Queue time needed to answer a request (only user traffic).",
"type" : "distribution",
"cuts" : [
0.01,
0.05,
0.1,
0.2,
0.5,
1,
5,
15,
30
],
"units" : "seconds"
},
{
"group" : "clientUser",
"identifier" : "bytesSent",
"name" : "Bytes Sent",
"description" : "Bytes sents for a request (only user traffic).",
"type" : "distribution",
"cuts" : [
250,
1000,
2000,
5000,
10000
],
"units" : "bytes"
},
{
"group" : "clientUser",
"identifier" : "bytesReceived",
"name" : "Bytes Received",
"description" : "Bytes received for a request (only user traffic).",
"type" : "distribution",
"cuts" : [
250,
1000,
2000,
5000,
10000
],
"units" : "bytes"
},
{
"group" : "clientUser",
"identifier" : "connectionTime",
"name" : "Connection Time",
"description" : "Total connection time of a client (only user traffic).",
"type" : "distribution",
"cuts" : [
0.1,
1,
60
],
"units" : "seconds"
},
{
"group" : "http",
"identifier" : "requestsTotal",
"name" : "Total requests",
"description" : "Total number of HTTP requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsSuperuser",
"name" : "Total superuser requests",
"description" : "Total number of HTTP requests executed by superuser/JWT.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsUser",
"name" : "Total user requests",
"description" : "Total number of HTTP requests executed by clients.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsAsync",
"name" : "Async requests",
"description" : "Number of asynchronously executed HTTP requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsGet",
"name" : "HTTP GET requests",
"description" : "Number of HTTP GET requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsHead",
"name" : "HTTP HEAD requests",
"description" : "Number of HTTP HEAD requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsPost",
"name" : "HTTP POST requests",
"description" : "Number of HTTP POST requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsPut",
"name" : "HTTP PUT requests",
"description" : "Number of HTTP PUT requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsPatch",
"name" : "HTTP PATCH requests",
"description" : "Number of HTTP PATCH requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsDelete",
"name" : "HTTP DELETE requests",
"description" : "Number of HTTP DELETE requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsOptions",
"name" : "HTTP OPTIONS requests",
"description" : "Number of HTTP OPTIONS requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "http",
"identifier" : "requestsOther",
"name" : "other HTTP requests",
"description" : "Number of other HTTP requests.",
"type" : "accumulated",
"units" : "number"
},
{
"group" : "server",
"identifier" : "uptime",
"name" : "Server Uptime",
"description" : "Number of seconds elapsed since server start.",
"type" : "current",
"units" : "seconds"
},
{
"group" : "server",
"identifier" : "physicalMemory",
"name" : "Physical Memory",
"description" : "Physical memory in bytes.",
"type" : "current",
"units" : "bytes"
}
],
"error" : false,
"code" : 200
}