HTTP correlation IDs
Correlation IDs make it easier to track log messages across a software system request that passes through multiple subsystems.
Scattered and intermingled log messages create challenges for tracing the request flow on distributed systems. A correlation ID can be assigned to a request and added to all associated operations as the request is processed. A correlation ID allows related log messages to be easily located and grouped. The server supports correlation IDs for all HTTP requests received through its HTTP or HTTPS Connection Handler.
When an HTTP request is received, it is automatically assigned a correlation ID. This ID can be used to correlate HTTP responses with messages recorded to the HTTP Detailed Operation log and the trace log. For specific web APIs, the correlation ID might also be passed to the LDAP subsystem.
The correlation ID appears with associated requests in LDAP logs in the correlationID
key for the following REST APIs:
-
SCIM 1
-
Delegated admin
-
Consent
-
Directory
The correlation ID is used as the default client request ID value in intermediate client request controls used by the following REST APIs:
-
SCIM 2
-
Consent
-
Directory
Values related to the intermediate client request control appear in the LDAP logs in the via
key and are forwarded to downstream LDAP servers when received by PingDirectoryProxy server. The correlation ID header is also added to requests forwarded by the PingDirectory gateway.
For Server SDK extensions that have access to the current HttpServletRequest
, the current correlation ID can be retrieved as a string through the HttpServletRequest
com.pingidentity.pingdata.correlation_id
attribute, as shown.
(String) request.getAttribute("com.pingidentity.pingdata.correlation_id");