Welcome to OmniView
OmniView is a powerful Go-based CLI tool designed for seamless monitoring of Oracle database background trace activities through Advanced Queuing (AQ). Built with performance and reliability in mind, it provides real-time insights into your Oracle database operations.What is OmniView?
OmniView connects to your Oracle database and monitors trace messages generated by background processes. Using Oracle’s Advanced Queuing with sharded queues, it efficiently handles high-volume trace data through a multi-subscriber architecture, allowing you to track and debug database operations in real-time.Key Features
Real-Time Monitoring
Listen to Oracle trace messages as they happen using Advanced Queuing subscriptions with automatic message consumption.
Multi-Subscriber Support
Register multiple subscribers to the same queue, enabling distributed monitoring and team collaboration.
Hexagonal Architecture
Clean separation of concerns with ports and adapters pattern, making the codebase maintainable and testable.
Native Oracle Integration
Built with CGO and ODPI-C for direct Oracle connectivity, eliminating the need for external drivers.
Auto-Deployment
Automatically deploys required PL/SQL packages (OMNI_TRACER_API) and manages queue initialization.
Cross-Platform
Supports Windows, macOS (ARM64), and Linux with platform-specific build configurations.
Architecture Highlights
OmniView follows hexagonal architecture (ports and adapters) with clear domain-driven design principles:- Core Domain: Business logic isolated in
internal/core/domainandinternal/core/ports - Adapters: Oracle adapter using ODPI-C, BoltDB for local state persistence
- Services: Permission management, tracer deployment, and subscriber registration
- Infrastructure: Configuration loading, auto-updates, and graceful shutdown
- Direct connection to Oracle databases
- Advanced Queuing with sharded queue support
- Efficient bulk dequeue operations
- Thread-safe concurrent message processing
How It Works
- Initialization: OmniView connects to your Oracle database and checks for required permissions
- Package Deployment: Automatically deploys
OMNI_TRACER_APIpackage if not present - Queue Setup: Creates a sharded queue (
OMNI_TRACER_QUEUE) for high-performance message handling - Subscriber Registration: Registers your client as a subscriber to the trace queue
- Event Listening: Starts a blocking consumer loop that processes trace messages in real-time
- Message Display: Formats and displays trace messages with timestamp, log level, and payload
Get Started
Installation
Install OmniView and set up prerequisites including Go 1.24+ and Oracle Instant Client.
Quick Start
Get up and running in minutes with your first trace message.
Use Cases
- Background Job Monitoring: Track long-running database jobs and processes
- Performance Debugging: Identify bottlenecks in PL/SQL procedures
- Audit Logging: Maintain detailed logs of database operations
- Development Tracing: Debug complex business logic in Oracle applications
- Real-Time Alerts: Monitor critical operations and respond to events immediately
Technology Stack
- Language: Go 1.24
- Oracle Integration: CGO + ODPI-C (Oracle Database Programming Interface for C)
- Local Storage: BoltDB (embedded key-value database)
- Build System: GNU Make with cross-platform support
- Architecture: Hexagonal architecture with Domain-Driven Design
OmniView requires Oracle Instant Client and CGO-enabled Go environment. Make sure to review the installation prerequisites before proceeding.