adoptium / adoptium/log-analysis

Graphic User Interface - Features

Open
#2 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
6
Forks
2
PR merge metrics
No merged PRs in 30d

Description

# Frontend Feature Tracker

This issue tracks all planned and in-progress frontend features for the Log Analysis GUI. The tool parses Jenkins server logs and system logs into structured events, clusters repeated patterns into templates, and lets users filter noise via a ruleset.

---

## Current Features (implemented)

- File upload (drag-and-drop `.log` / `.txt`)
- KPI summary cards: total events, active events, ignored, fatal/error count
- Events by level bar chart (INFO / WARNING / SEVERE / ERROR)
- Fatal & error event feed with expandable stack traces
- Top N templates table with adjustable N (powered by drain3 clustering)
- Time window query: paste a timestamp from a log line, set a before/after duration, see matching events
- Rule configurator: add/remove ignore, tag, and set_level rules with regex match conditions (message, stack trace, logger); rules persist for the session

---

## Planned Features

### Authentication
- [ ] Login page so users cannot access or share log data without authenticating

---

### Dashboard
- [ ] Summary view defaulting to last 24 hours of log data
- [ ] Event severity count cards: SEVERE, ERROR, WARNING, INFO
- [ ] Make the default time range configurable (last hour, last 12h, last 24h, custom range)

---

### Log Investigation

- [ ] Time-series chart of event volume over time, with events visible directly without requiring a click
- [ ] List of the most active Jenkins threads (by `thread_id`) — useful for spotting runaway or stuck jobs
- [ ] Top 10 most-fired error/warning templates panel (extension of the existing top templates feature, scoped to SEVERE/ERROR/WARNING only)

**Filters**
- [ ] Time frame filter: last hour, last 12 hours, custom from/to range
- [ ] Filter by log level (INFO / WARNING / SEVERE / ERROR)
- [ ] Filter by logger (e.g. only show events from a specific Jenkins class or plugin)
- [ ] Filter by template ID (group and inspect all events of the same recurring pattern)
- [ ] Save and reload filter configurations

**Event Detail Expansion**
- [ ] Clicking a log entry expands it inline to show all parsed fields: `line_start`, `timestamp`, `thread_id`, `level`, `logger#method`, `message`, full `stack_trace`
- [ ] Expanded view includes any tags applied by the ruleset
- [ ] LLM-derived context and insights shown in expanded view (scope to be discussed with the group)

**Template / Rule Details Panel**
- [ ] Template ID and clustered template string
- [ ] Total fired count
- [ ] Log level distribution for that template (e.g. how many were WARNING vs SEVERE)
- [ ] Example raw message
- [ ] Link to the rule that matched this event (if any), showing: rule name, action, match conditions

**Reports**
- [ ] PDF export of a log summary report: event counts by level, top recurring templates, list of fatal events with timestamps

**Syslog Correlation**
- [ ] Upload a syslog file alongside the Jenkins log
- [ ] Input a Jenkins event timestamp and a threshold (in seconds)
- [ ] Display syslog entries closest in time to that timestamp, ordered by distance
---

### Later / Stretch
- [ ] SQL-style filter/query interface for searching events

---

## Style Notes

- One click to see the state of things — keep interactions minimal and information immediately visible

---

## Sub-issues

1. Authentication / login page
2. Dashboard — severity summary cards + configurable time range default
3. Log investigation — time-series event volume chart (no click-to-reveal)
4. Log investigation — active threads list (top `thread_id`s by event count)
5. Log investigation — top recurring error/warning templates panel
6. Filters — time range, level, logger, template ID, save/reload
7. Event detail expansion + LLM context (pending group discussion)
8. Template & rule details panel
9. PDF summary report export
10. SQL query interface (stretch)
11. Syslog correlation panel — timestamp input, threshold, closest syslog entries

Contributor guide

Open the contributing guide

Research direction

Start by reading the implemented feature list and the numbered sub-issues, then confirm which single feature is in scope with the group. Use the relevant sub-issue to define the entry point and acceptance criteria; done should be demonstrated by the requested GUI behavior and any agreed validation for that feature.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
frontend, observability-sre
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.