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 themselves 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 reply. Request tracking is turned off by default and can be toggled on by adding the 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 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 cluster headers will be logged in masters’ logs and logs of the worker executed the request.