rails_error_dashboard 0.1.1 โ 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +66 -21
- data/app/assets/stylesheets/rails_error_dashboard/_catppuccin_mocha.scss +107 -0
- data/app/assets/stylesheets/rails_error_dashboard/_components.scss +625 -0
- data/app/assets/stylesheets/rails_error_dashboard/_layout.scss +257 -0
- data/app/assets/stylesheets/rails_error_dashboard/_theme_variables.scss +203 -0
- data/app/assets/stylesheets/rails_error_dashboard/application.css +926 -15
- data/app/assets/stylesheets/rails_error_dashboard/application.css.map +7 -0
- data/app/assets/stylesheets/rails_error_dashboard/application.scss +61 -0
- data/app/controllers/rails_error_dashboard/errors_controller.rb +94 -1
- data/app/helpers/rails_error_dashboard/application_helper.rb +42 -4
- data/app/helpers/rails_error_dashboard/backtrace_helper.rb +91 -0
- data/app/helpers/rails_error_dashboard/overview_helper.rb +78 -0
- data/app/helpers/rails_error_dashboard/user_agent_helper.rb +118 -0
- data/app/models/rails_error_dashboard/error_comment.rb +27 -0
- data/app/models/rails_error_dashboard/error_log.rb +145 -0
- data/app/views/layouts/rails_error_dashboard.html.erb +796 -299
- data/app/views/layouts/rails_error_dashboard_old_backup.html.erb +383 -0
- data/app/views/rails_error_dashboard/errors/_error_row.html.erb +2 -0
- data/app/views/rails_error_dashboard/errors/_pattern_insights.html.erb +4 -4
- data/app/views/rails_error_dashboard/errors/_timeline.html.erb +167 -0
- data/app/views/rails_error_dashboard/errors/analytics.html.erb +138 -22
- data/app/views/rails_error_dashboard/errors/index.html.erb +83 -4
- data/app/views/rails_error_dashboard/errors/overview.html.erb +253 -0
- data/app/views/rails_error_dashboard/errors/platform_comparison.html.erb +29 -18
- data/app/views/rails_error_dashboard/errors/show.html.erb +353 -54
- data/config/routes.rb +7 -0
- data/db/migrate/20251226020000_add_workflow_fields_to_error_logs.rb +27 -0
- data/db/migrate/20251226020100_create_error_comments.rb +18 -0
- data/lib/generators/rails_error_dashboard/install/install_generator.rb +8 -2
- data/lib/generators/rails_error_dashboard/install/templates/initializer.rb +21 -0
- data/lib/rails_error_dashboard/commands/batch_delete_errors.rb +1 -1
- data/lib/rails_error_dashboard/commands/batch_resolve_errors.rb +2 -2
- data/lib/rails_error_dashboard/commands/log_error.rb +47 -9
- data/lib/rails_error_dashboard/commands/resolve_error.rb +1 -1
- data/lib/rails_error_dashboard/configuration.rb +8 -0
- data/lib/rails_error_dashboard/error_reporter.rb +4 -4
- data/lib/rails_error_dashboard/logger.rb +105 -0
- data/lib/rails_error_dashboard/middleware/error_catcher.rb +2 -2
- data/lib/rails_error_dashboard/plugin.rb +3 -3
- data/lib/rails_error_dashboard/plugin_registry.rb +2 -2
- data/lib/rails_error_dashboard/plugins/jira_integration_plugin.rb +1 -1
- data/lib/rails_error_dashboard/plugins/metrics_plugin.rb +1 -1
- data/lib/rails_error_dashboard/queries/dashboard_stats.rb +109 -1
- data/lib/rails_error_dashboard/queries/errors_list.rb +61 -6
- data/lib/rails_error_dashboard/services/backtrace_parser.rb +113 -0
- data/lib/rails_error_dashboard/version.rb +1 -1
- data/lib/rails_error_dashboard.rb +2 -0
- metadata +18 -2
- data/lib/tasks/rails_error_dashboard_tasks.rake +0 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: be10014454096322f4e47dd754450d2c731a836686034a9ecb13ba1de3751921
|
|
4
|
+
data.tar.gz: 02e299b47fb947d4ec046f4fe1312d82df7a96e15705431fc612e1fed1a2be04
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 7660280bffe36717930bc5c9c10bb2c8b97d689b1c3dd44d1a8e761156183a373768e96d48698f35ac2b807485ee2eb06edd5b9f1ba0e681e7c4715f9b203e34
|
|
7
|
+
data.tar.gz: e12b4a5159144c4b870e986e8616f2466fa1330ccda9c243d6acb77c2e16e35feb03614ab6c5d919ee875d013226f110e8934041e48b90e3b835b4fbd614b3fd
|
data/README.md
CHANGED
|
@@ -76,28 +76,71 @@ This Rails Engine is in beta and under active development. While functional and
|
|
|
76
76
|
|
|
77
77
|
## โจ Features
|
|
78
78
|
|
|
79
|
-
###
|
|
79
|
+
### Core Features (Always Enabled)
|
|
80
|
+
|
|
81
|
+
#### ๐ฏ Complete Error Tracking
|
|
80
82
|
Automatic error capture from Rails controllers, jobs, and middleware. Frontend & mobile support for React, React Native, Vue, Angular, Flutter. Platform detection (iOS/Android/Web/API), user context tracking, full stack traces.
|
|
81
83
|
|
|
82
|
-
|
|
83
|
-
Modern Bootstrap 5 UI with dark/light mode, responsive design, real-time statistics, search and filtering, fast pagination.
|
|
84
|
+
#### ๐ Beautiful Dashboard
|
|
85
|
+
Modern Bootstrap 5 UI with dark/light mode, responsive design, real-time statistics, search and filtering, fast pagination. Overview dashboard with critical alerts, error trend charts, and platform health summary.
|
|
86
|
+
|
|
87
|
+
#### ๐ Analytics & Insights
|
|
88
|
+
7-day trend charts, severity breakdown, spike detection, resolution rate tracking, user impact analysis. Comprehensive analytics page with hourly patterns, mobile vs API breakdowns, and top affected users.
|
|
89
|
+
|
|
90
|
+
#### ๐ง Workflow Management
|
|
91
|
+
Error assignment and status tracking, priority levels (critical/high/medium/low), snooze functionality, comment threads, batch operations (bulk resolve/delete), resolution tracking with references.
|
|
92
|
+
|
|
93
|
+
#### ๐ Security & Privacy
|
|
94
|
+
HTTP Basic Auth, environment-based settings, optional separate database for isolation. Your data stays on your server - no third-party access.
|
|
95
|
+
|
|
96
|
+
### Optional Features (Choose During Install)
|
|
97
|
+
|
|
98
|
+
#### ๐จ Multi-Channel Notifications
|
|
99
|
+
|
|
100
|
+
- **Slack** - Rich formatted messages with error context and direct dashboard links
|
|
101
|
+
- **Email** - HTML formatted alerts with full error details
|
|
102
|
+
- **Discord** - Embedded messages with severity color coding
|
|
103
|
+
- **PagerDuty** - Critical error escalation with incident management
|
|
104
|
+
- **Webhooks** - Custom integrations with any service (JSON payloads)
|
|
105
|
+
|
|
106
|
+
#### โก Performance Optimizations
|
|
107
|
+
|
|
108
|
+
- **Async Logging** - Non-blocking error capture using ActiveJob (Sidekiq/SolidQueue/Async)
|
|
109
|
+
- **Error Sampling** - Reduce storage by sampling high-frequency errors
|
|
110
|
+
- **Backtrace Limiting** - Save 70-90% storage with smart truncation
|
|
111
|
+
- **Separate Database** - Isolate error data for better performance
|
|
112
|
+
- **Database Indexes** - Composite indexes and PostgreSQL GIN full-text search
|
|
113
|
+
|
|
114
|
+
#### ๐ง Advanced Analytics (8 Powerful Features)
|
|
84
115
|
|
|
85
|
-
|
|
86
|
-
|
|
116
|
+
**1. Baseline Anomaly Alerts** ๐
|
|
117
|
+
Automatically detect unusual error rate spikes using statistical analysis (mean + std dev). Get proactive notifications when errors exceed expected baselines with intelligent cooldown to avoid alert fatigue.
|
|
87
118
|
|
|
88
|
-
|
|
89
|
-
|
|
119
|
+
**2. Fuzzy Error Matching** ๐
|
|
120
|
+
Find similar errors across different error hashes using Jaccard similarity (70%) and Levenshtein distance (30%). Discover related errors that share common root causes even when they manifest differently.
|
|
90
121
|
|
|
91
|
-
|
|
92
|
-
|
|
122
|
+
**3. Co-occurring Errors** ๐
|
|
123
|
+
Detect errors that happen together within configurable time windows (default: 5 minutes). Identify patterns where one error frequently triggers another, helping you prioritize fixes.
|
|
93
124
|
|
|
94
|
-
|
|
95
|
-
|
|
125
|
+
**4. Error Cascade Detection** โ๏ธ
|
|
126
|
+
Identify error chains (A causes B causes C) with probability calculations and average delays. Visualize parentโchild relationships to understand cascading failures and fix root causes.
|
|
96
127
|
|
|
97
|
-
|
|
98
|
-
|
|
128
|
+
**5. Error Correlation Analysis** ๐
|
|
129
|
+
Correlate errors with app versions, git commits, and users. Find problematic releases, identify users affected by multiple error types, and detect time-based patterns.
|
|
99
130
|
|
|
100
|
-
|
|
131
|
+
**6. Platform Comparison** ๐ฑ
|
|
132
|
+
Compare iOS vs Android vs Web health metrics side-by-side. Platform-specific error rates, severity distributions, resolution times, and stability scores (0-100).
|
|
133
|
+
|
|
134
|
+
**7. Occurrence Pattern Detection** ๐
|
|
135
|
+
Detect cyclical patterns (business hours, nighttime, weekend rhythms) and error bursts (many errors in short time). Understand when and how your errors happen.
|
|
136
|
+
|
|
137
|
+
**8. Developer Insights** ๐ก
|
|
138
|
+
AI-powered insights with severity detection, platform stability scoring, actionable recommendations, and recent error activity summaries.
|
|
139
|
+
|
|
140
|
+
#### ๐ Plugin System
|
|
141
|
+
Extensible architecture with event hooks (`on_error_logged`, `on_error_resolved`, `on_threshold_exceeded`). Built-in examples for Jira integration, metrics tracking, audit logging. Easy to create custom plugins - just drop a file in `config/initializers/error_dashboard_plugins/`.
|
|
142
|
+
|
|
143
|
+
**๐ [View complete feature list with examples โ](docs/FEATURES.md)**
|
|
101
144
|
|
|
102
145
|
---
|
|
103
146
|
|
|
@@ -337,7 +380,6 @@ config.webhook_urls = ['https://yourapp.com/hooks/errors']
|
|
|
337
380
|
|
|
338
381
|
### Development
|
|
339
382
|
- **[Testing](docs/development/TESTING.md)** - Multi-version testing
|
|
340
|
-
- **[CI Setup](docs/development/CI_SETUP.md)** - GitHub Actions configuration
|
|
341
383
|
|
|
342
384
|
**๐ [View all documentation โ](docs/README.md)**
|
|
343
385
|
|
|
@@ -373,16 +415,19 @@ We welcome contributions! Here's how to get started:
|
|
|
373
415
|
```bash
|
|
374
416
|
git clone https://github.com/AnjanJ/rails_error_dashboard.git
|
|
375
417
|
cd rails_error_dashboard
|
|
376
|
-
bundle install
|
|
377
418
|
|
|
378
|
-
#
|
|
379
|
-
|
|
419
|
+
# Automated setup (installs deps, hooks, runs tests)
|
|
420
|
+
bin/setup
|
|
380
421
|
|
|
381
|
-
#
|
|
382
|
-
bundle
|
|
422
|
+
# Or manual setup
|
|
423
|
+
bundle install
|
|
424
|
+
bundle exec lefthook install # Installs git hooks
|
|
425
|
+
bundle exec rspec
|
|
383
426
|
```
|
|
384
427
|
|
|
385
|
-
|
|
428
|
+
**Git Hooks:** We use [Lefthook](https://github.com/evilmartians/lefthook) to run quality checks before commit/push. This ensures CI passes and saves GitHub Actions minutes!
|
|
429
|
+
|
|
430
|
+
**๐ง [Development guide โ](DEVELOPMENT.md)** | **๐งช [Testing guide โ](docs/development/TESTING.md)**
|
|
386
431
|
|
|
387
432
|
---
|
|
388
433
|
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
// =============================================================================
|
|
2
|
+
// Catppuccin Mocha Theme - Color Palette
|
|
3
|
+
// =============================================================================
|
|
4
|
+
// Official Catppuccin color palette for the Mocha flavor (dark theme)
|
|
5
|
+
// https://github.com/catppuccin/catppuccin
|
|
6
|
+
//
|
|
7
|
+
// This file defines both SCSS variables and CSS custom properties for
|
|
8
|
+
// maximum flexibility in styling components.
|
|
9
|
+
// =============================================================================
|
|
10
|
+
|
|
11
|
+
// -----------------------------------------------------------------------------
|
|
12
|
+
// SCSS Variables - Accent Colors
|
|
13
|
+
// -----------------------------------------------------------------------------
|
|
14
|
+
// Use these for compile-time color calculations and SCSS functions
|
|
15
|
+
|
|
16
|
+
$ctp-rosewater: #f5e0dc !default; // Soft highlights, subtle accents
|
|
17
|
+
$ctp-flamingo: #f2cdcd !default; // Gentle warnings, soft alerts
|
|
18
|
+
$ctp-pink: #f5c2e7 !default; // Playful accents, decorative
|
|
19
|
+
$ctp-mauve: #cba6f7 !default; // Primary brand color, links
|
|
20
|
+
$ctp-red: #f38ba8 !default; // Errors, critical states
|
|
21
|
+
$ctp-maroon: #eba0ac !default; // Secondary errors, warnings
|
|
22
|
+
$ctp-peach: #fab387 !default; // Warnings, cautionary states
|
|
23
|
+
$ctp-yellow: #f9e2af !default; // Highlights, important info
|
|
24
|
+
$ctp-green: #a6e3a1 !default; // Success, positive states
|
|
25
|
+
$ctp-teal: #94e2d5 !default; // Info, neutral positive
|
|
26
|
+
$ctp-sky: #89dceb !default; // Links, interactive elements
|
|
27
|
+
$ctp-sapphire: #74c7ec !default; // Accents, decorative
|
|
28
|
+
$ctp-blue: #89b4fa !default; // Info, primary actions
|
|
29
|
+
$ctp-lavender: #b4befe !default; // Soft accents, highlights
|
|
30
|
+
|
|
31
|
+
// -----------------------------------------------------------------------------
|
|
32
|
+
// SCSS Variables - Neutral Colors
|
|
33
|
+
// -----------------------------------------------------------------------------
|
|
34
|
+
// Background and text colors for UI structure
|
|
35
|
+
|
|
36
|
+
$ctp-text: #cdd6f4 !default; // Primary text
|
|
37
|
+
$ctp-subtext1: #bac2de !default; // Secondary text
|
|
38
|
+
$ctp-subtext0: #a6adc8 !default; // Tertiary text, muted
|
|
39
|
+
$ctp-overlay2: #9399b2 !default; // Hover states, highlights
|
|
40
|
+
$ctp-overlay1: #7f849c !default; // Subtle backgrounds
|
|
41
|
+
$ctp-overlay0: #6c7086 !default; // Muted elements, disabled
|
|
42
|
+
$ctp-surface2: #585b70 !default; // Secondary surfaces
|
|
43
|
+
$ctp-surface1: #45475a !default; // Interactive elements
|
|
44
|
+
$ctp-surface0: #313244 !default; // Component backgrounds (cards)
|
|
45
|
+
$ctp-base: #1e1e2e !default; // Main background
|
|
46
|
+
$ctp-mantle: #181825 !default; // Alternate background
|
|
47
|
+
$ctp-crust: #11111b !default; // Borders, edges
|
|
48
|
+
|
|
49
|
+
// -----------------------------------------------------------------------------
|
|
50
|
+
// CSS Custom Properties (CSS Variables)
|
|
51
|
+
// -----------------------------------------------------------------------------
|
|
52
|
+
// These can be changed at runtime and accessed from JavaScript
|
|
53
|
+
// Use these for theme switching and dynamic styling
|
|
54
|
+
|
|
55
|
+
:root {
|
|
56
|
+
// Accent colors as CSS variables
|
|
57
|
+
--ctp-rosewater: #{$ctp-rosewater};
|
|
58
|
+
--ctp-flamingo: #{$ctp-flamingo};
|
|
59
|
+
--ctp-pink: #{$ctp-pink};
|
|
60
|
+
--ctp-mauve: #{$ctp-mauve};
|
|
61
|
+
--ctp-red: #{$ctp-red};
|
|
62
|
+
--ctp-maroon: #{$ctp-maroon};
|
|
63
|
+
--ctp-peach: #{$ctp-peach};
|
|
64
|
+
--ctp-yellow: #{$ctp-yellow};
|
|
65
|
+
--ctp-green: #{$ctp-green};
|
|
66
|
+
--ctp-teal: #{$ctp-teal};
|
|
67
|
+
--ctp-sky: #{$ctp-sky};
|
|
68
|
+
--ctp-sapphire: #{$ctp-sapphire};
|
|
69
|
+
--ctp-blue: #{$ctp-blue};
|
|
70
|
+
--ctp-lavender: #{$ctp-lavender};
|
|
71
|
+
|
|
72
|
+
// Neutral colors as CSS variables
|
|
73
|
+
--ctp-text: #{$ctp-text};
|
|
74
|
+
--ctp-subtext1: #{$ctp-subtext1};
|
|
75
|
+
--ctp-subtext0: #{$ctp-subtext0};
|
|
76
|
+
--ctp-overlay2: #{$ctp-overlay2};
|
|
77
|
+
--ctp-overlay1: #{$ctp-overlay1};
|
|
78
|
+
--ctp-overlay0: #{$ctp-overlay0};
|
|
79
|
+
--ctp-surface2: #{$ctp-surface2};
|
|
80
|
+
--ctp-surface1: #{$ctp-surface1};
|
|
81
|
+
--ctp-surface0: #{$ctp-surface0};
|
|
82
|
+
--ctp-base: #{$ctp-base};
|
|
83
|
+
--ctp-mantle: #{$ctp-mantle};
|
|
84
|
+
--ctp-crust: #{$ctp-crust};
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// -----------------------------------------------------------------------------
|
|
88
|
+
// Utility Functions
|
|
89
|
+
// -----------------------------------------------------------------------------
|
|
90
|
+
|
|
91
|
+
// Add opacity to a Catppuccin color
|
|
92
|
+
// Usage: background-color: ctp-opacity($ctp-red, 0.1);
|
|
93
|
+
@function ctp-opacity($color, $opacity) {
|
|
94
|
+
@return rgba($color, $opacity);
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
// Lighten a Catppuccin color (for hover states)
|
|
98
|
+
// Usage: background-color: ctp-lighten($ctp-mauve, 10%);
|
|
99
|
+
@function ctp-lighten($color, $amount) {
|
|
100
|
+
@return lighten($color, $amount);
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
// Darken a Catppuccin color (for active states)
|
|
104
|
+
// Usage: background-color: ctp-darken($ctp-mauve, 10%);
|
|
105
|
+
@function ctp-darken($color, $amount) {
|
|
106
|
+
@return darken($color, $amount);
|
|
107
|
+
}
|