Exception grouping#3443
Conversation
acc7108 to
ec3b917
Compare
|
This PR contains changes to area(s) that do not have an active SIG/project and will be auto-closed:
Such changes may be rejected or put on hold until a new SIG/project is established. Please refer to the Semantic Convention Areas |
I don't understand why it is automatically closed. Isn't the |
|
This PR contains changes to area(s) that do not have an active SIG/project and will be auto-closed:
Such changes may be rejected or put on hold until a new SIG/project is established. Please refer to the Semantic Convention Areas |
|
I'll follow the same steps done on this previous PR to avoid this PR from getting closed automatically because I think it might be a mistake from the CI tools, unless confirmed otherwise by @open-telemetry/semconv-log-approvers |
| For Java, the `exception.group_id` SHOULD be derived from the | ||
| exception's fully-qualified class name (`exception.type`) and the | ||
| structural elements of the stacktrace (e.g. class names and method | ||
| names of each frame), excluding the exception | ||
| message. |
There was a problem hiding this comment.
are you thinking of hashing the stack trace? hashing only a certain number of frames? or something else?
There was a problem hiding this comment.
For Java stacktraces, I'm planning to remove the messages and line numbers first, then hash everything else.
|
This PR has been labeled as stale due to lack of activity. It will be automatically closed if there is no further activity over the next 7 days. |
Changes
Adding
exception.group_idattribute for grouping structurally equivalent exceptions.Motivation
In error tracking and observability, it is common for the same root-cause exception to produce slightly different messages (e.g., containing a variable). Without a grouping mechanism, each unique message creates a separate entry, making it difficult to assess the true frequency and impact of an issue.
exception.group_idsolves this by providing an identifier derived from the structural parts of the exception (type + stacktrace frames), ignoring high-cardinality fields like the message.Examples
The following two Java exceptions differ only in their message but share the same type and stacktrace structure. They would produce the same
exception.group_id:Exception 1:
Exception 2:
Both exceptions have the same exception.type (java.io.FileNotFoundException) and the same stacktrace structure (identical class names and method names, in the same order). The only difference is the file path in the message. An instrumentation computing
exception.group_idfrom the type and frame structure would assign the same value (e.g., "518d34582b6189db69b36414336c47ec6e4144f8") to both, enabling them to be grouped as the same issue.Important
Pull requests acceptance are subject to the triage process as described in Issue and PR Triage Management.
PRs that do not follow the guidance above, may be automatically rejected and closed.
Merge requirement checklist
[chore]