Skip to content

[Feature] Enhanced Exception & Stack Trace Visualization #23

@Polliog

Description

@Polliog

Improve exception and stack trace display in the log viewer with syntax highlighting, clickable frames, and error grouping to make debugging faster and more intuitive.

Problem:
Currently, exceptions and stack traces are displayed as plain text within log messages. This makes it difficult to:

  • Parse stack traces visually (no syntax highlighting)
  • Identify the exact file and line causing the error
  • Group similar errors together
  • Navigate to specific stack frames

Acceptance Criteria:

Stack Trace Parsing:

  • Auto-detect stack traces in log messages (Node.js, Python, Java, Go, PHP formats)
  • Parse stack trace into structured frames (file, line, function, column)
  • Extract exception type, message, and cause chain

Enhanced Visualization:

  • Syntax-highlighted stack traces (different colors for file paths, line numbers, functions)
  • Exception type badge (e.g., TypeError, NullPointerException, ValueError)
  • Collapsible stack trace frames (show top 3-5 frames by default)
  • Clickable file paths (if GitHub/GitLab repo linked, open in browser)
  • Inline code preview (show relevant code lines if available)

Error Grouping:

  • Group similar exceptions by stack trace fingerprint (ignore variable values)
  • Show error frequency: "This error occurred 47 times in the last hour"
  • Link to first occurrence and most recent occurrence
  • Chart: error frequency over time

Exception Detail Modal:

  • Click "View Exception Details" button on error logs
  • Modal shows: exception type, message, full stack trace, metadata
  • Tabs: Stack Trace | Cause Chain | Related Logs | Context
  • Copy buttons: copy full stack trace, copy specific frame

Stack Trace Parsing Libraries:

  • JavaScript: error-stack-parser, stacktrace-js
  • Python: Built-in traceback module (backend parsing)
  • Java: Regex-based parsing (backend)
  • Multi-language: stacktrace-parser (supports multiple formats)

Configuration:

  • Environment variable: ENABLE_ERROR_GROUPING (default: true)
  • Admin UI: enable/disable error grouping per project
  • Configurable grouping window (1 hour, 24 hours, 7 days)

Performance Considerations:

  • Parse stack traces in background worker (don't block ingestion)
  • Cache parsed stack traces (Redis with 1-hour TTL)
  • Limit error group storage (auto-archive old groups after 30 days)

Optional Enhancements:

  • AI-powered error suggestions: "This error is commonly caused by..."
  • Link to StackOverflow search for exception type
  • Sentry-style error trends chart (increasing, decreasing, stable)
  • Slack notification: "New error type detected: TypeError in user.ts:45

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions