The sentry-ruby repository is the official SDK for Ruby, designed for error tracking, performance monitoring, and distributed tracing. It functions as an instrumentation layer that captures exceptions, transactions, logs, and metrics from Ruby applications and transmits them to the Sentry backend. The architecture follows a Hub/Scope/Client pattern, ensuring thread and fiber isolation for context management across concurrent requests. It supports a wide range of integrations including Rails, Sidekiq, Resque, and OpenTelemetry, making it a central piece of observability infrastructure for the Ruby ecosystem. The SDK manages the full lifecycle of telemetry data, from capture to transport. It implements sophisticated sampling logic to maintain consistent sampling rates across distributed services using deterministic algorithms. The transport layer handles rate limiting, compression, and envelope serialization, ensuring efficient communication with the Sentry server. The codebase is structured as a monorepo with a core gem (sentry-ruby) and modular integrations (sentry-rails, sentry-sidekiq, etc.), allowing for targeted updates and version compatibility testing across multiple Ruby and framework versions. Data flows from the application through the SDK's Scope and Client, where events are processed, sampled, and buffered before being sent via HTTP or Spotlight. The system supports structured logging and metrics collection, adhering to the Sentry Logs Protocol. It includes robust testing infrastructure with matrix testing across Ruby versions (2.7-4.0) and framework versions (Rails 5.2-8.1.3), ensuring stability and compatibility. The SDK is actively maintained with recent commits and issue triage, reflecting its critical role in production environments.
Bugsink is a self-hosted, Sentry-compatible error tracking service built with Django. It ingests error events from any Sentry SDK (Python, JavaScript, PHP, Go, etc.), groups them into issues using multiple grouping mechanisms (v1/v2), and provides a full-featured web UI for triage, search, and alerting. The system includes a custom background task queue (Snappea) backed by SQLite, pluggable event and file storage backends, and integrations with Slack, Discord, Telegram, Mattermost, Microsoft Teams, and custom webhooks. It supports multi-tenant isolation via per-tenant SQLite databases (enterprise edition), quotas, retention policies, and sourcemap/minidump processing. The codebase is well-structured with extensive tests, CI/CD, and a Docker-based deployment model. While the architecture is solid, there are some maintenance risks from vendored Sentry code, a custom task queue that is Linux-specific, and a large number of migrations and management commands.
This is a Go-based Kubernetes agent that watches cluster events (Kubernetes Event objects and Pod status changes) and sends them to Sentry for error tracking and monitoring. It runs as a read-only sidecar inside a Kubernetes cluster, using client-go informers and watchers to observe Jobs, CronJobs, Deployments, ReplicaSets, Events, and Pods. When a warning or error event occurs, the agent enriches it with Kubernetes metadata (owner references, node names, namespace) and captures it as a Sentry error event. It also supports Sentry Crons monitoring for CronJobs, custom DSN per resource via annotations, GKE integration for cluster metadata, and client-side filtering by event reason or source. The architecture is cleanly separated into watchers, enhancers, filters, and backoff logic, with comprehensive unit tests and CI/CD pipelines.
LaraBug is a Laravel SDK/package that provides error monitoring and reporting functionality for Laravel applications. It captures unhandled exceptions, monitors queued job failures, tracks JavaScript errors via a blade view and API endpoint, and scans composer.lock files for known CVEs. The architecture follows Laravel package conventions with a service provider registering bindings, a facade for easy access, and specialized components for exception handling, queue monitoring, HTTP communication, and CVE scanning. Key features include automatic exception reporting through Laravel's error handler, intelligent batching of queue events based on load, dynamic CVE scanning triggers, and configurable data filtering to protect sensitive information. The package integrates seamlessly with Laravel 6 through 13 and supports PHP 7.4+.
This repository is a Nuxt.js 2 module that integrates Sentry error tracking into Nuxt applications. It provides client-side and server-side Sentry initialization, lazy loading, performance tracing, release management, and extensive integration configuration. The module hooks into Nuxt's build process via a custom shim for @nuxt/kit, generating plugin templates and configuring webpack. It supports both JavaScript and TypeScript projects, with options for custom integrations and runtime configuration. The codebase is well-structured with clear separation of concerns (module entry, hooks, options resolution, utilities, templates) and includes a comprehensive test suite using vitest and playwright. However, it is specifically designed for Nuxt 2, which is now deprecated, and the official Sentry Nuxt module is recommended for Nuxt 3+. The repository appears to be in maintenance mode with the last release in September 2024 and no recent commits.