8000 APM-164: Add basic overload control to arangod by jsteemann · Pull Request #772 · arangodb/docs · GitHub
[go: up one dir, main page]

Skip to content
This repository was archived by the owner on Dec 13, 2023. It is now read-only.

APM-164: Add basic overload control to arangod #772

Merged
merged 4 commits into from 10000
Sep 27, 2021
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Update 3.9/http/general.md
  • Loading branch information
jsteemann authored Sep 22, 2021
commit 978f1e771032e3054acb33168128fa4ac5c5be96
19 changes: 17 additions & 2 deletions 3.9/http/general.md
Original file line number Diff line number Diff line change
Expand Up @@ -582,6 +582,21 @@ If the header is set in an incoming request, arangod will compare the current
dequeuing time from its scheduler with the maximum queue time value contained
in the request header. If the current queueing time exceeds the value set
in the header, arangod will reject the request and return HTTP 412
(precondition failed) with the error code 21004 (queue time violated).
(precondition failed) with the error code 21004 (queue time violated).
Using a value of 0 or a non-numeric value in the header will lead to the
header value being ignored by arangod.

There is also a new metric `arangodb_scheduler_queue_time_violations_total`
that is increased whenever a request is dropped because of the requested
queue time not being satisfiable. Administrators can use this metric to monitor
overload situations. Although all instance types will expose this metric,
it will likely always be `0` on DB servers and agency instances because the
`x-arango-queue-time-seconds` header is not used in cluster-internal requests.

In a cluster, the `x-arango-queue-time-seconds` request header will be
checked on the receiving Coordinator, before any request forwarding.
checked on the receiving Coordinator, before any request forwarding. If the
request is forwarded by the Coordinator to a different Coordinator, the
receiving Coordinator will also check the header on its own.
Apart from that, the header will not be included in cluster-internal requests
executed by the Coordinator, e.g. when the Coordinator issues sub-requests
to DB servers or agency instances.
0