Integrate high-resolution request/response timing into all web controllers. The timing information will be added to the response headers so that web clients can display the start time, end time, and duration of each request and so that we can automatically email or flag when response times go above X (configurable) milliseconds.
[x] Create UxReportableObservability that implements HandlerInterceptor. This class uses Java's high-resolution timer to capture the start time before the request is processed and the end time after the request is processed.
[x] Generate both HTTP headers and HTTP cookies so that user agents can use whichever they support.
[x] Update the "notification bell" UX to add a dynamic tooltip that shows the interaction response times in the UI
Initial version is complete, the UI needs to be improved in the future. For now, to show the server response and page generation times you hover over the notification bell icon in the top right corner of the app:
Integrate high-resolution request/response timing into all web controllers. The timing information will be added to the response headers so that web clients can display the start time, end time, and duration of each request and so that we can automatically email or flag when response times go above X (configurable) milliseconds.
UxReportableObservability
that implementsHandlerInterceptor
. This class uses Java's high-resolution timer to capture the start time before the request is processed and the end time after the request is processed.Example response headers: