Add time-range filtering to support bundle log collection#10423
Draft
smklein wants to merge 1 commit intoomdb-support-bundle-collectfrom
Draft
Add time-range filtering to support bundle log collection#10423smklein wants to merge 1 commit intoomdb-support-bundle-collectfrom
smklein wants to merge 1 commit intoomdb-support-bundle-collectfrom
Conversation
00ec361 to
2ea3ecc
Compare
smklein
commented
May 8, 2026
| result = client.support_logs_download(zone, DEFAULT_MAX_ROTATED_LOGS) => result, | ||
| result = client.support_logs_download( | ||
| zone, | ||
| /* end_time */ end.as_ref(), |
Collaborator
Author
There was a problem hiding this comment.
Query parameters are apparently supplied in alphabetical order, which is why "end time" comes before "start time" 🫠
Resolves #10372. Adds a bundle-wide time-range concept that flows from the omdb CLI down through BundleDataSelection, the support-bundle-collection mechanism, the sled-agent API, and into sled-diagnostics, where the per-file mtime gate is applied to archived and extra log files (current logs are always included regardless of the window). Highlights: - New `BundleTimeRange { start, end }` type in `nexus_types::support_bundle`. The window is bundle-wide: a single `BundleDataSelection::time_range` field, applied to both host-info log collection and ereport queries. - `BundleDataSelection::all()` defaults to a 7-day window — same default as ereports already had; logs gain the same cap where they had none. - Sled-agent API gets a new `VERSION_ADD_LOG_TIME_RANGE` (v38) that reshapes `SledDiagnosticsLogsDownloadQueryParam`: `max_rotated` becomes optional; `start_time`/`end_time` are added. - `sled_diagnostics::LogsHandle::get_zone_logs` keeps oxlog's `date_range: None` and applies the time gate explicitly inside `get_zone_logs_inner`. Files with unknown mtime are over-inclusively kept. - Sim sled-agent gains a `SimLogEntry` injection surface so tests can construct synthetic log files with controlled mtimes; default behavior (no entries injected) remains an empty zone list. - omdb `support-bundle collect` gains `--since <duration>` and `--until <duration>` flags (humantime, both relative to now). - Persistence: schema v257 adds bundle-level `support_bundle_data_selection_time_range` and the FM equivalent, keyed by bundle / sitrep+request id. Existing per-category time columns on the ereports tables are migrated and dropped. - Integration test in `nexus/tests/integration_tests/support_bundles.rs` injects entries on the sim sled-agent at 30 m, 6 h, and 30 d ago, collects with a 24 h window and a 7 d window, and asserts only the recent entries land in the bundle.
2ea3ecc to
74bc50e
Compare
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.
Adds a bundle-wide time-range concept that flows from the omdb CLI down through BundleDataSelection, the support-bundle-collection mechanism, the sled-agent API, and into sled-diagnostics, where the per-file mtime gate is applied to archived and extra log files (current logs are always included regardless of the window).
Highlights:
BundleTimeRange { start, end }type innexus_types::support_bundle. The window is bundle-wide: a singleBundleDataSelection::time_rangefield, applied to both host-info log collection and ereport queries.BundleDataSelection::all()defaults to a 7-day window — same default as ereports already had; logs gain the same cap where they had none.VERSION_ADD_LOG_TIME_RANGE(v38) that reshapesSledDiagnosticsLogsDownloadQueryParam:max_rotatedbecomes optional;start_time/end_timeare added.sled_diagnostics::LogsHandle::get_zone_logskeeps oxlog'sdate_range: Noneand applies the time gate explicitly insideget_zone_logs_inner. Files with unknown mtime are over-inclusively kept.SimLogEntryinjection surface so tests can construct synthetic log files with controlled mtimes; default behavior (no entries injected) remains an empty zone list.support-bundle collectgains--since <duration>and--until <duration>flags (humantime, both relative to now).support_bundle_data_selection_time_rangeand the FM equivalent, keyed by bundle / sitrep+request id. Existing per-category time columns on the ereports tables are migrated and dropped.nexus/tests/integration_tests/support_bundles.rsinjects entries on the sim sled-agent at 30 m, 6 h, and 30 d ago, collects with a 24 h window and a 7 d window, and asserts only the recent entries land in the bundle.Fixes #10372.