Request Tracking¶
Tracking a single request through a distributed system is an issue due to the scattered nature of the logs. Therefore, GraphDB offers the capability for tracking particular request ID headers, or generates those itself if need be. This allows for easier auditing and system monitoring. Headers will be intercepted when a request comes into the database and passed onwards together with the response. Request tracking is turned off by default, and can be enabled by adding graphdb.append.request.id.headers=true
to their graphdb.properties
file. The value is already present in the default configuration file, but needs to be uncommented to work.
By default, GraphDB scans all incoming requests for an X-Request-ID
header. If no such header exists, it assigns to the incoming request a random ID in the UUID type 5 format.
Some clients and systems assign alternative names to their request identifiers. Those can be listed in the following format:
graphdb.request.id.alternatives=my-request-header-1, outside-app-request-header
In a cluster, headers will be logged in the masters’ logs and the logs of the worker executing the request.