rails_error_dashboard 0.1.27 → 0.1.28
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 +194 -11
- data/lib/rails_error_dashboard/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 5a0f4cca16260c154f28b927ad49e276376fb390da7469479879e59e3ae07884
|
|
4
|
+
data.tar.gz: d33904659ed7e1e98cf76f7bef72510f610bf2be611d1562e1bbadc06db5ed82
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 2adbbee9b22e299ee55090db83aea7a48f162f519837e626a198ee1ae553e5b5c4030eee28223ad367bd55042543f3c7dea612de89dfe5f0857ac410d115c577
|
|
7
|
+
data.tar.gz: 4bb63ab6e3d16bda1c8430e35944c80b057e264bd0d87b675dd5ce0fe832af92334039e597e6708579064a3df3c537fec5aabcac715157bc47d69d8dc5e359cd
|
data/README.md
CHANGED
|
@@ -29,9 +29,9 @@ Experience the full dashboard with 250+ realistic Rails errors, LOTR-themed demo
|
|
|
29
29
|
---
|
|
30
30
|
|
|
31
31
|
### ⚠️ BETA SOFTWARE
|
|
32
|
-
This Rails Engine is in beta and under active development. While functional and tested (
|
|
32
|
+
This Rails Engine is in beta and under active development. While functional and tested (935+ tests passing), the API may change before v1.0.0. Use in production at your own discretion.
|
|
33
33
|
|
|
34
|
-
**Supports**: Rails 7.0 - 8.1 | Ruby 3.2
|
|
34
|
+
**Supports**: Rails 7.0 - 8.0 (+ edge 8.1) | Ruby 3.2 - 3.4
|
|
35
35
|
|
|
36
36
|
---
|
|
37
37
|
|
|
@@ -80,10 +80,6 @@ This Rails Engine is in beta and under active development. While functional and
|
|
|
80
80
|
|
|
81
81
|
---
|
|
82
82
|
|
|
83
|
-

|
|
84
|
-
|
|
85
|
-
---
|
|
86
|
-
|
|
87
83
|
## ✨ Features
|
|
88
84
|
|
|
89
85
|
### Core Features (Always Enabled)
|
|
@@ -121,7 +117,7 @@ HTTP Basic Auth, environment-based settings, optional separate database for isol
|
|
|
121
117
|
- **Separate Database** - Isolate error data for better performance
|
|
122
118
|
- **Database Indexes** - Composite indexes and PostgreSQL GIN full-text search
|
|
123
119
|
|
|
124
|
-
#### 🧠 Advanced Analytics (
|
|
120
|
+
#### 🧠 Advanced Analytics (7 Powerful Features)
|
|
125
121
|
|
|
126
122
|
**1. Baseline Anomaly Alerts** 🔔
|
|
127
123
|
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.
|
|
@@ -144,8 +140,8 @@ Compare iOS vs Android vs Web health metrics side-by-side. Platform-specific err
|
|
|
144
140
|
**7. Occurrence Pattern Detection** 📈
|
|
145
141
|
Detect cyclical patterns (business hours, nighttime, weekend rhythms) and error bursts (many errors in short time). Understand when and how your errors happen.
|
|
146
142
|
|
|
147
|
-
**
|
|
148
|
-
|
|
143
|
+
**Plus: Developer Insights Dashboard** 💡
|
|
144
|
+
Built-in analytics dashboard with severity detection, platform stability scoring, actionable recommendations, and recent error activity summaries (always available, no configuration needed).
|
|
149
145
|
|
|
150
146
|
#### 🔌 Plugin System
|
|
151
147
|
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/`.
|
|
@@ -173,7 +169,7 @@ rails db:migrate
|
|
|
173
169
|
The installer will guide you through optional feature selection:
|
|
174
170
|
- **Notifications** (Slack, Email, Discord, PagerDuty, Webhooks)
|
|
175
171
|
- **Performance** (Async Logging, Error Sampling, Separate Database)
|
|
176
|
-
- **Advanced Analytics** (
|
|
172
|
+
- **Advanced Analytics** (7 powerful features including baseline alerts, fuzzy matching, platform comparison)
|
|
177
173
|
|
|
178
174
|
**All features are opt-in** - choose what you need during installation, or enable/disable them later in the initializer.
|
|
179
175
|
|
|
@@ -665,6 +661,193 @@ Rails Error Dashboard is available as open source under the terms of the [MIT Li
|
|
|
665
661
|
|
|
666
662
|
---
|
|
667
663
|
|
|
664
|
+
## ❓ Frequently Asked Questions
|
|
665
|
+
|
|
666
|
+
<details>
|
|
667
|
+
<summary><strong>Is this production-ready?</strong></summary>
|
|
668
|
+
|
|
669
|
+
This is currently in **beta** but actively tested with 935+ passing tests across Rails 7.0-8.0 and Ruby 3.2-3.4. Many users are running it in production. See [production requirements](docs/FEATURES.md#production-readiness).
|
|
670
|
+
</details>
|
|
671
|
+
|
|
672
|
+
<details>
|
|
673
|
+
<summary><strong>How does this compare to Sentry/Rollbar/Honeybadger?</strong></summary>
|
|
674
|
+
|
|
675
|
+
**Similar**: Error tracking, grouping, notifications, dashboards
|
|
676
|
+
**Better**: 100% free, self-hosted (your data stays with you), no usage limits, Rails-optimized
|
|
677
|
+
**Trade-offs**: You manage hosting/backups, fewer integrations than commercial services
|
|
678
|
+
|
|
679
|
+
See [full comparison](docs/features/PLATFORM_COMPARISON.md).
|
|
680
|
+
</details>
|
|
681
|
+
|
|
682
|
+
<details>
|
|
683
|
+
<summary><strong>What's the performance impact?</strong></summary>
|
|
684
|
+
|
|
685
|
+
Minimal with async logging enabled:
|
|
686
|
+
- **Synchronous**: ~10-50ms per error (blocks request)
|
|
687
|
+
- **Async (recommended)**: ~1-2ms (queues to background job)
|
|
688
|
+
- **Sampling**: Log only 10% of non-critical errors for high-traffic apps
|
|
689
|
+
|
|
690
|
+
See [Performance Guide](docs/guides/ERROR_SAMPLING_AND_FILTERING.md).
|
|
691
|
+
</details>
|
|
692
|
+
|
|
693
|
+
<details>
|
|
694
|
+
<summary><strong>Can I use a separate database?</strong></summary>
|
|
695
|
+
|
|
696
|
+
Yes! Configure in your initializer:
|
|
697
|
+
|
|
698
|
+
```ruby
|
|
699
|
+
RailsErrorDashboard.configure do |config|
|
|
700
|
+
config.database = :errors # Use separate database
|
|
701
|
+
end
|
|
702
|
+
```
|
|
703
|
+
|
|
704
|
+
See [Database Options Guide](docs/guides/DATABASE_OPTIONS.md).
|
|
705
|
+
</details>
|
|
706
|
+
|
|
707
|
+
<details>
|
|
708
|
+
<summary><strong>How do I migrate from Sentry/Rollbar?</strong></summary>
|
|
709
|
+
|
|
710
|
+
1. Install Rails Error Dashboard
|
|
711
|
+
2. Run both systems in parallel (1-2 weeks)
|
|
712
|
+
3. Verify all errors are captured
|
|
713
|
+
4. Remove old error tracking gem
|
|
714
|
+
5. Update team documentation
|
|
715
|
+
|
|
716
|
+
Historical data cannot be imported (different formats).
|
|
717
|
+
</details>
|
|
718
|
+
|
|
719
|
+
<details>
|
|
720
|
+
<summary><strong>Does it work with API-only Rails apps?</strong></summary>
|
|
721
|
+
|
|
722
|
+
Yes! The error logging works in API-only mode. The dashboard UI requires a browser but can be:
|
|
723
|
+
- Mounted in a separate admin app
|
|
724
|
+
- Run in a separate Rails instance pointing to the same database
|
|
725
|
+
- Accessed via SSH tunnel
|
|
726
|
+
|
|
727
|
+
See [API-only setup](docs/guides/MOBILE_APP_INTEGRATION.md#backend-setup-rails-api).
|
|
728
|
+
</details>
|
|
729
|
+
|
|
730
|
+
<details>
|
|
731
|
+
<summary><strong>How do I track multiple Rails apps?</strong></summary>
|
|
732
|
+
|
|
733
|
+
Automatic! Just set `APP_NAME` environment variable:
|
|
734
|
+
|
|
735
|
+
```bash
|
|
736
|
+
# App 1
|
|
737
|
+
APP_NAME=my-api rails server
|
|
738
|
+
|
|
739
|
+
# App 2
|
|
740
|
+
APP_NAME=my-admin rails server
|
|
741
|
+
```
|
|
742
|
+
|
|
743
|
+
All apps share the same dashboard. See [Multi-App Guide](docs/MULTI_APP_PERFORMANCE.md).
|
|
744
|
+
</details>
|
|
745
|
+
|
|
746
|
+
<details>
|
|
747
|
+
<summary><strong>Can I customize error severity levels?</strong></summary>
|
|
748
|
+
|
|
749
|
+
Yes! Configure custom rules in your initializer:
|
|
750
|
+
|
|
751
|
+
```ruby
|
|
752
|
+
RailsErrorDashboard.configure do |config|
|
|
753
|
+
config.custom_severity_rules = {
|
|
754
|
+
/ActiveRecord::RecordNotFound/ => :low,
|
|
755
|
+
/Stripe::/ => :critical
|
|
756
|
+
}
|
|
757
|
+
end
|
|
758
|
+
```
|
|
759
|
+
|
|
760
|
+
See [Customization Guide](docs/CUSTOMIZATION.md).
|
|
761
|
+
</details>
|
|
762
|
+
|
|
763
|
+
<details>
|
|
764
|
+
<summary><strong>How long are errors stored?</strong></summary>
|
|
765
|
+
|
|
766
|
+
Forever by default. Configure retention policy:
|
|
767
|
+
|
|
768
|
+
```ruby
|
|
769
|
+
RailsErrorDashboard.configure do |config|
|
|
770
|
+
config.retention_days = 90 # Auto-delete after 90 days
|
|
771
|
+
end
|
|
772
|
+
```
|
|
773
|
+
|
|
774
|
+
Or clean up manually with rake tasks. See [Database Optimization](docs/guides/DATABASE_OPTIMIZATION.md).
|
|
775
|
+
</details>
|
|
776
|
+
|
|
777
|
+
<details>
|
|
778
|
+
<summary><strong>Can I get Slack/Discord notifications?</strong></summary>
|
|
779
|
+
|
|
780
|
+
Yes! Enable during installation or configure manually:
|
|
781
|
+
|
|
782
|
+
```ruby
|
|
783
|
+
RailsErrorDashboard.configure do |config|
|
|
784
|
+
config.enable_slack_notifications = true
|
|
785
|
+
config.slack_webhook_url = ENV['SLACK_WEBHOOK_URL']
|
|
786
|
+
end
|
|
787
|
+
```
|
|
788
|
+
|
|
789
|
+
Supports Slack, Discord, Email, PagerDuty, and custom webhooks. See [Notifications Guide](docs/guides/NOTIFICATIONS.md).
|
|
790
|
+
</details>
|
|
791
|
+
|
|
792
|
+
<details>
|
|
793
|
+
<summary><strong>Does it work with Turbo/Hotwire?</strong></summary>
|
|
794
|
+
|
|
795
|
+
Yes! Includes Turbo Streams support for real-time updates. Errors appear in the dashboard instantly without page refresh.
|
|
796
|
+
</details>
|
|
797
|
+
|
|
798
|
+
<details>
|
|
799
|
+
<summary><strong>How do I report errors from mobile apps (React Native/Flutter)?</strong></summary>
|
|
800
|
+
|
|
801
|
+
Make HTTP POST requests to your Rails API:
|
|
802
|
+
|
|
803
|
+
```javascript
|
|
804
|
+
// React Native example
|
|
805
|
+
fetch('https://api.example.com/error_dashboard/api/v1/errors', {
|
|
806
|
+
method: 'POST',
|
|
807
|
+
headers: {
|
|
808
|
+
'Content-Type': 'application/json',
|
|
809
|
+
'Authorization': 'Basic ' + btoa('admin:password')
|
|
810
|
+
},
|
|
811
|
+
body: JSON.stringify({
|
|
812
|
+
error_class: 'TypeError',
|
|
813
|
+
message: 'Cannot read property...',
|
|
814
|
+
platform: 'iOS'
|
|
815
|
+
})
|
|
816
|
+
});
|
|
817
|
+
```
|
|
818
|
+
|
|
819
|
+
See [Mobile App Integration](docs/guides/MOBILE_APP_INTEGRATION.md).
|
|
820
|
+
</details>
|
|
821
|
+
|
|
822
|
+
<details>
|
|
823
|
+
<summary><strong>Can I build custom integrations?</strong></summary>
|
|
824
|
+
|
|
825
|
+
Yes! Use the plugin system:
|
|
826
|
+
|
|
827
|
+
```ruby
|
|
828
|
+
class MyCustomPlugin < RailsErrorDashboard::Plugin
|
|
829
|
+
def on_error_logged(error_log)
|
|
830
|
+
# Your custom logic
|
|
831
|
+
end
|
|
832
|
+
end
|
|
833
|
+
|
|
834
|
+
RailsErrorDashboard::PluginRegistry.register(MyCustomPlugin.new)
|
|
835
|
+
```
|
|
836
|
+
|
|
837
|
+
See [Plugin System Guide](docs/PLUGIN_SYSTEM.md).
|
|
838
|
+
</details>
|
|
839
|
+
|
|
840
|
+
<details>
|
|
841
|
+
<summary><strong>What if I need help?</strong></summary>
|
|
842
|
+
|
|
843
|
+
- **📖 Read the docs**: [docs/README.md](docs/README.md)
|
|
844
|
+
- **🐛 Report bugs**: [GitHub Issues](https://github.com/AnjanJ/rails_error_dashboard/issues)
|
|
845
|
+
- **💡 Ask questions**: [GitHub Discussions](https://github.com/AnjanJ/rails_error_dashboard/discussions)
|
|
846
|
+
- **🔒 Security issues**: See [SECURITY.md](SECURITY.md)
|
|
847
|
+
</details>
|
|
848
|
+
|
|
849
|
+
---
|
|
850
|
+
|
|
668
851
|
## 💬 Support
|
|
669
852
|
|
|
670
853
|
- **📖 Documentation**: [docs/](docs/README.md)
|
|
@@ -673,6 +856,6 @@ Rails Error Dashboard is available as open source under the terms of the [MIT Li
|
|
|
673
856
|
|
|
674
857
|
---
|
|
675
858
|
|
|
676
|
-
**Made with ❤️ by Anjan for the Rails community**
|
|
859
|
+
**Made with ❤️ by [Anjan](https://www.anjan.dev) for the Rails community**
|
|
677
860
|
|
|
678
861
|
*One Gem to rule them all, One Gem to find them, One Gem to bring them all, and in the dashboard bind them.* 🧙♂️
|
metadata
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: rails_error_dashboard
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.28
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Anjan Jagirdar
|
|
@@ -116,7 +116,7 @@ dependencies:
|
|
|
116
116
|
version: 1.3.0
|
|
117
117
|
- - "<"
|
|
118
118
|
- !ruby/object:Gem::Version
|
|
119
|
-
version: 1.3.
|
|
119
|
+
version: 1.3.7
|
|
120
120
|
type: :runtime
|
|
121
121
|
prerelease: false
|
|
122
122
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -126,7 +126,7 @@ dependencies:
|
|
|
126
126
|
version: 1.3.0
|
|
127
127
|
- - "<"
|
|
128
128
|
- !ruby/object:Gem::Version
|
|
129
|
-
version: 1.3.
|
|
129
|
+
version: 1.3.7
|
|
130
130
|
- !ruby/object:Gem::Dependency
|
|
131
131
|
name: rspec-rails
|
|
132
132
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -386,7 +386,7 @@ metadata:
|
|
|
386
386
|
source_code_uri: https://github.com/AnjanJ/rails_error_dashboard
|
|
387
387
|
changelog_uri: https://github.com/AnjanJ/rails_error_dashboard/blob/main/CHANGELOG.md
|
|
388
388
|
post_install_message: "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n
|
|
389
|
-
\ Rails Error Dashboard v0.1.
|
|
389
|
+
\ Rails Error Dashboard v0.1.28\n━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━\n\n\U0001F195
|
|
390
390
|
First time? Quick start:\n rails generate rails_error_dashboard:install\n rails
|
|
391
391
|
db:migrate\n # Add to config/routes.rb:\n mount RailsErrorDashboard::Engine
|
|
392
392
|
=> '/error_dashboard'\n\n\U0001F504 Upgrading from v0.1.x?\n rails db:migrate\n
|