Skip to content

feat: Structured Log Store + Interactive Log Explorer#20

Open
rh-rahulshetty wants to merge 7 commits into
Log-Analyzer:mainfrom
rh-rahulshetty:feature/parquet
Open

feat: Structured Log Store + Interactive Log Explorer#20
rh-rahulshetty wants to merge 7 commits into
Log-Analyzer:mainfrom
rh-rahulshetty:feature/parquet

Conversation

@rh-rahulshetty
Copy link
Copy Markdown
Collaborator

@rh-rahulshetty rh-rahulshetty commented May 15, 2026

Problem

After a logan analyze run there was no way to browse, search, or filter individual log lines without re-running analysis or grepping raw files. The summary page's golden signal timeline merged all input files onto a single time axis, making it unreadable when files covered different time periods. The file filter on the summary page also only affected the table, not the chart.

What Does This PR Do

  • New Log Explorer page — interactive browser backed by DuckDB WASM running entirely in the browser (no server needed). Supports full-text search, filter by signal / source file / template, and a sortable paginated feed (newest first, oldest first, or original log order).

  • Offline asset bundling — at logan analyze time, DuckDB WASM and its dependencies (Apache Arrow, tslib, flatbuffers) are downloaded once, cached in ~/.cache/logan/, and copied into the output directory so the explorer works without internet access at view time.

  • Parquet log store — log entries and templates are persisted as log_entries.parquet and templates.parquet and queried directly by DuckDB WASM, replacing large in-memory JSON loads.

  • Template badges — each template gets a sequential number label (T1, T2 …) with a unique colour. The first 16 use a curated palette; beyond that the golden-angle hue formula ensures every template gets a distinct colour with no repeats.

  • Source filter propagates to templates — selecting a source file in the sidebar filters the template list to only show templates that appear in that file.

  • Per-file timeline binning — the golden signal chart on the summary page now bins each file independently based on its own time range, with a source selector dropdown to switch between files. Previously all files shared one axis, leaving large empty gaps when file time ranges differed.

  • UX fixes — switched to Inter + JetBrains Mono for better readability; removed the duplicate parsed timestamp from log entry headers (it showed UTC while the raw log line shows local time, causing a visible mismatch).

What PR Reworks

  • Summary and Anomaly Report: Remove Anomaly HTML report and move it for future rework. Bring Summary report into Log-Explorer to give one dashboard experience.

Testing

logan analyze -f your.log -o ./output
logan view -d ./output
# open http://localhost:8000/output/log_diagnosis/explorer.html
image image

Signed-off-by: Rahul Shetty <rashetty@redhat.com>
Signed-off-by: Rahul Shetty <rashetty@redhat.com>
@rh-rahulshetty rh-rahulshetty changed the title feat: Log Compression & Explorer feat: Structured Log Store + Interactive Log Explorer May 15, 2026
Signed-off-by: Rahul Shetty <rashetty@redhat.com>
Signed-off-by: Rahul Shetty <rashetty@redhat.com>
Signed-off-by: Rahul Shetty <rashetty@redhat.com>
Signed-off-by: Rahul Shetty <rashetty@redhat.com>
@rh-rahulshetty rh-rahulshetty marked this pull request as ready for review May 19, 2026 13:07
Signed-off-by: Rahul Shetty <rashetty@redhat.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant