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

GET /_db/{database-name}/_admin/statistics
This endpoint should no longer be used. It is deprecated from version 3.8.0 on. Use /_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.

Path Parameters
  • The name of a database. Which database you use doesn’t matter as long as the user account you authenticate with has at least read access to this database. If the --server.harden startup option is enabled, administrate access to the _system database is required.

Query Parameters
    HTTP Headers
      Responses
      • Statistics were returned successfully.

          Response Body application/json object
        • information about the connected clients and their resource usage

          • number of bytes received from the clients

            • number of values summarized

            • array containing the values

            • summarized value of all counts

          • number of bytes sent to the clients

            • number of values summarized

            • array containing the values

            • summarized value of all counts

          • total connection times

            • number of values summarized

            • array containing the values

            • summarized value of all counts

          • the number of open http connections

          • IO Time

            • number of values summarized

            • array containing the values

            • summarized value of all counts

          • the time requests were queued waiting for processing

            • number of values summarized

            • array containing the values

            • summarized value of all counts

          • the request times

            • number of values summarized

            • array containing the values

            • summarized value of all counts

          • the system time

            • number of values summarized

            • array containing the values

            • summarized value of all counts

        • the HTTP status code - 200 in this case

        • true if the server has the statistics module enabled. If not, don’t expect any values.

        • boolean flag to indicate whether an error occurred (false in this case)

        • a descriptive error message

        • the numbers of requests by Verb

          • total number of asynchronous http requests

          • No of requests using the DELETE-verb

          • No of requests using the GET-verb

          • No of requests using the HEAD-verb

          • No of requests using the OPTIONS-verb

          • No of requests using the none of the above identified verbs

          • No of requests using the PATCH-verb

          • No of requests using the POST-verb

          • No of requests using the PUT-verb

          • total number of http requests

        • statistics of the server

          • available physical memory on the server

          • Statistics about the server worker threads (excluding V8 specific or jemalloc specific threads and system threads)

            • The number of currently busy worker threads

            • The number of jobs queued up waiting for worker threads becoming available

            • The number of spawned worker threads

          • Statistics about transactions

            • the number of aborted transactions

            • the number of committed transactions

            • the number of intermediate commits done

            • the number of started transactions

          • time the server is up and running

          • Statistics about the V8 javascript contexts

            • the number of currently spawned V8 contexts

            • the number of currently active V8 contexts

            • the number of contexts that were previously used, and should now be garbage collected before being re-used

            • the number of V8 contexts that are free to use

            • the maximum number of V8 concurrent contexts we may spawn as configured by --javascript.v8-contexts

            • a list of V8 memory / garbage collection watermarks; Refreshed on every garbage collection run; Preserves min/max memory used at that time for 10 seconds

              • ID of the context this set of memory statistics is from

              • how many times was the garbage collection run in these 10 seconds

              • High watermark of all garbage collection runs in 10 seconds

              • Low watermark of all garbage collection runs in these 10 seconds

              • the timestamp where the 10 seconds interval started

            • the minimum number of V8 contexts that are spawned as configured by --javascript.v8-contexts-minimum

        • metrics gathered from the system about this process; may depend on the host OS

          • pagefaults

          • pagefaults

          • the number of threads in the server

          • RSS of process

          • RSS of process in %

          • the system CPU time used by the server process

          • the user CPU time used by the server process

          • VSS of the process

        • the current server timestamp

      • Statistics are disabled on the instance.

      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

      GET /_db/{database-name}/_admin/statistics-description
      This endpoint should no longer be used. It is deprecated from version 3.8.0 on. Use /_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: Either current, accumulated, or distribution.
      • cuts: The distribution vector.
      • units: Units in which the figure is measured.
      Path Parameters
      • The name of a database. Which database you use doesn’t matter as long as the user account you authenticate with has at least read access to this database. If the --server.harden startup option is enabled, administrate access to the _system database is required.

      Query Parameters
        HTTP Headers
          Responses
          • Description was returned successfully.

              Response Body application/json object
            • the HTTP status code

            • the error, false in this case

            • A statistics figure

              • The distribution vector.

              • A description of the figure.

              • The identifier of the group to which this figure belongs.

              • The identifier of the figure. It is unique within the group.

              • The name of the figure.

              • Either current, accumulated, or distribution.

              • Units in which the figure is measured.

            • A statistics group

              • A description of the group.

              • The identifier of the group.

              • The name of the group.

          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 
          }