[INFRAUTILS-15] All log statements should include a unique ID (AKA "fish tag") allowing correlation Created: 28/Jul/17 Updated: 29/Sep/20 |
|
| Status: | Confirmed |
| Project: | infrautils |
| Component/s: | General |
| Affects Version/s: | Nitrogen |
| Fix Version/s: | None |
| Type: | Improvement | Priority: | Low |
| Reporter: | Michael Vorburger | Assignee: | Unassigned |
| Resolution: | Unresolved | Votes: | 0 |
| Labels: | None | ||
| Remaining Estimate: | Not Specified | ||
| Time Spent: | Not Specified | ||
| Original Estimate: | Not Specified | ||
| Environment: |
Operating System: All |
||
| Description |
|
ODL log analysis would greatly benefit if all log statements could include a unique ID (AKA "fish tag") allowing correlation of logged events, whether INFOs, DEBUG/TRACE or subsequent errors. The "start" of such an ID should be the "logical entry point" into ODL - whatever caused whatever is being logged to "happen". Read https://logback.qos.ch/manual/mdc.html or https://logging.apache.org/log4j/2.x/manual/thread-context.html for some background; they call this a "fish tag". Gerrit changes related to this will be on https://git.opendaylight.org/gerrit/#/q/topic:mdc |
| Comments |
| Comment by Robert Varga [ 29/Sep/20 ] |
|
This is a cross-cutting concern and requires a wee bit more design thinking before we jump into implementation. Specifically we need to understand (at the architecture level) which points in the system assign these tags. Are these requests from RESTCONF? Are these internal events? How granular are there? How do they map at multiple levels – i.e. what happens if a single request ends up creating multiple datastore transactions? Are the tags unique within a cluster? Which channels are required to propagate them? |