54. Tracing
Tracing is automatically enabled for all HTTP requests. You can view the trace
endpoint and obtain basic information about the last 100 requests:
[{ "timestamp": 1394343677415, "info": { "method": "GET", "path": "/trace", "headers": { "request": { "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Connection": "keep-alive", "Accept-Encoding": "gzip, deflate", "User-Agent": "Mozilla/5.0 Gecko/Firefox", "Accept-Language": "en-US,en;q=0.5", "Cookie": "_ga=GA1.1.827067509.1390890128; ..." "Authorization": "Basic ...", "Host": "localhost:8080" }, "response": { "Strict-Transport-Security": "max-age=31536000 ; includeSubDomains", "X-Application-Context": "application:8080", "Content-Type": "application/json;charset=UTF-8", "status": "200" } } } },{ "timestamp": 1394343684465, ... }]
The following are included in the trace by default:
Name | Description |
---|---|
Request Headers |
Headers from the request. |
Response Headers |
Headers from the response. |
Cookies |
|
Errors |
The error attributes (if any). |
Time Taken |
The time taken to service the request in milliseconds. |
If you need to trace additional events you can inject a TraceRepository
into your Spring beans. The add
method accepts a single Map
structure that will be converted to JSON and logged.
By default an InMemoryTraceRepository
will be used that stores the last 100 events. You can define your own instance of the InMemoryTraceRepository
bean if you need to expand the capacity. You can also create your own alternative TraceRepository
implementation if needed.