Skip to content

Releases: bart-oz/solid_observer

v0.1.1 - Storage Mode

10 Feb 19:17
a8cdfa9

Choose a tag to compare

🚀 Changes:

  • Real-time mode (storage_mode: :realtime) — run SolidObserver without database migrations
  • Queue status and job management CLI commands work without any SolidObserver database
  • storage_mode configuration option (:persistence default, :realtime for no-DB operation)
  • persistence_mode? and realtime_mode? configuration predicates
  • Graceful CLI::Storage message when in real-time mode
  • Event buffering, metric incrementing, and cleanup automatically disabled in real-time mode

📦 Upgrade

bundle update solid_observer

v0.1.0 - Initial Release

26 Dec 21:59

Choose a tag to compare

🎉 SolidObserver v0.1.0 - Initial Release

Observability for the Solid Stack generation

We're excited to announce the first stable release of SolidObserver - production-grade observability for Rails 8's Solid Stack! 🚀

What is SolidObserver?

SolidObserver brings professional monitoring and debugging capabilities to Rails 8's Solid Stack without external services or complexity. Monitor your ActiveJob queues, track performance metrics, and debug production issues with confidence - all stored in your existing database.

Zero external dependencies. Zero recurring costs. Zero complexity.

✨ Highlights

  • 📊 Rich CLI Tools - Instant insights without leaving your terminal
  • 🚀 Performance Optimized - Sub-5ms overhead with buffered writes
  • 🔄 Automatic Retention - Configurable cleanup policies
  • 🔌 APM Integration - Works with Datadog, New Relic, Sentry
  • 🧵 Thread-Safe - Production-ready concurrent operations
  • 📈 Queue Metrics - Track trends and patterns over time
  • ⚙️ Highly Configurable - 17+ configuration options
  • 🧪 Battle-Tested - 291 tests, 93%+ coverage

🚀 Quick Start

# Install
gem install solid_observer

# Generate configuration and migrations
rails generate solid_observer:install
rails db:migrate

# Start monitoring
rails solid_observer:status

📋 What's Included

Core Features

Queue Monitoring

  • Real-time Solid Queue status (ready, scheduled, claimed, failed jobs)
  • Queue depth tracking per queue name
  • Worker count monitoring
  • Event collection with buffered writes
  • Job lifecycle tracking (enqueue, perform, retry, discard)

CLI Tools

rails solid_observer:status                    # Queue overview with stats
rails solid_observer:storage                   # Storage info & database health
rails solid_observer:jobs:list                 # List jobs with filters
rails "solid_observer:jobs:show[ID]"           # Detailed job inspection
rails "solid_observer:jobs:retry[ID]"          # Retry failed jobs
rails "solid_observer:jobs:discard[ID]"        # Discard failed jobs
rails solid_observer:version                   # Show version info

Configuration

SolidObserver.configure do |config|
  # Retention
  config.event_retention = 30.days

  # Performance
  config.sampling_rate = 1.0
  config.buffer_size = 1000
  config.flush_interval = 10.seconds

  # APM Integration
  config.correlation_id_generator = -> {
    Datadog::Tracing.active_trace&.id
  }
end

APM Integration

Built-in support for:

  • Datadog
  • New Relic
  • Sentry
  • OpenTelemetry
  • Custom correlation ID generators

Performance Features

  • Buffered writes - Events batched in memory before database insertion
  • Configurable sampling - Reduce overhead in high-traffic apps
  • Bulk operations - insert_all! for efficient batch inserts
  • Smart fallback - Automatic retry with smaller batches on failure

Database & Migrations

  • Queue events table with optimized indexes
  • Metrics table for aggregated data
  • Storage info table for health tracking
  • Automatic cleanup job for retention policies
  • Multi-database support (SQLite, PostgreSQL, MySQL)

Developer Experience

  • Rails generator for easy setup
  • Production-aware defaults (UI disabled in production)
  • Rails idiomatic configuration (30.days, 10.seconds)
  • Comprehensive documentation
  • YARD API documentation
  • Security policy (SECURITY.md)
  • Contribution guidelines (CONTRIBUTING.md)

📊 Quality Metrics

  • 291 tests - Comprehensive test coverage
  • 93.23% code coverage - Well-tested codebase
  • Multi-version CI - Ruby 3.2-4.0, Rails 8.0-8.1
  • StandardRB - Clean, consistent code style
  • Reek - No code smells
  • Security audits - bundler-audit + brakeman
  • Performance benchmarks - Verified thresholds

🔧 Requirements

  • Ruby >= 3.2.0
  • Rails >= 8.0
  • Solid Queue (for queue monitoring)

📚 Documentation

🗺️ What's Next

Check out our roadmap for upcoming features:

v0.2.0 - Solid Cache observability

  • Cache hit/miss tracking
  • Operation duration monitoring
  • Storage size tracking

v0.3.0 - Solid Cable observability

  • Connection monitoring
  • Message tracking
  • Channel statistics

v0.4.0 - Storage Management

  • Automatic backup creation
  • Restore functionality
  • Export/import tools

💎 Installation

Add to your Gemfile:

gem 'solid_observer'

Or install directly:

gem install solid_observer

🙏 Acknowledgments

Built with ❤️ for the Rails community and the Solid Stack generation.

Special thanks to the Rails core team for creating the Solid Stack, and to everyone who provided feedback during development.

🐛 Found a Bug?

Please open an issue with details about the problem.

🔒 Security

Found a security vulnerability? Please email bartek.ozdoba@gmail.com instead of opening a public issue.


Ready to observe your Solid Stack?

gem install solid_observer

Get insights in 60 seconds. No external services required.

Made with 🎯 by @BartOz