Repository navigation
feat: ✨ Group profile SQL steps by hash - #84
Merged
Merged
Conversation
Contributor
|
Linux CI: success · Commit Test results (Linux)
Test coverage
Includes the test JVM and CLI subprocesses. Excludes optional real-Collector smoke tests. Workflow logs and report artifacts Updated on each CI run. Windows checks, when required, are reported separately in the workflow. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Profiles with repeated SQL can produce hundreds of kilobytes of JSON. Add the single aggregate option retained by the issue's triage.
Refs #62
Changes
profile get --group-sqland offlineinspect --group-sqlreturn SQL hash groups with execution count, total/max elapsed milliseconds and error count. Statements still require--include-text; unresolved or conflicting dictionary text is explicit. The summary includes decoded-step counts, lossless transaction IDs and original completeness metadata. English and Korean guides explain the output and limits.In a synthetic wire fixture with 3,000 repeated SQL steps, live output with text fell from 667,803 bytes to 501 bytes. Default individual-step output remains available.
Validation
coverageCheck verifyReleaseInputs: passed; 266 executable test cases, line coverage 95.38%, branch coverage 80.95% (90%/80% minimums).Validation used synthetic local TCP fixtures; no external Collector/Agent deployment was tested.
Compatibility and risks
The opt-in payload declares
scouterctl.profile-sql-summary/v1; existing result envelopes, default outputs, capture formats and exit/completeness semantics are preserved. Grouped output omits individual chronology and non-SQL details. Size grows with distinct SQL hashes; this does not reduce upstream transfer/decoding or prove trace completeness. Duration totals count decoded steps and are not transaction wall time.