Skip to the content.

🦦 OtterMQ

OtterMQ is a high-performance message broker written in Go, aiming for compatibility with the AMQP 0.9.1 protocol and interoperability with RabbitMQ clients. It includes a broker backend and a modern management UI built with Vue 3 + Quasar.

This site tracks project status and documentation for users and contributors. For full source code and issue tracking, visit the GitHub repository:

Highlights

RabbitMQ Extensions

Metrics & Observability

OtterMQ includes built-in metrics collection for monitoring broker performance in real-time.

Available Metrics

Broker-Level

Queue Metrics (per queue)

Channel Metrics (per channel)

Exchange Metrics (per exchange)

Access via Management API

All metrics are available via REST endpoints:

# Get all channels with live metrics
curl http://localhost:3000/api/channels | jq

# Response includes rates:
{
  "channels": [{
    "number": 1,
    "connection_name": "127.0.0.1:54321",
    "state": "running",
    "publish_rate": 125.4,
    "deliver_rate": 120.8,
    "ack_rate": 118.2
  }]
}

Time-series data: Metrics include 5-minute history by default (configurable), enabling trend analysis and charting in the management UI.

Configuration

Metrics are enabled by default with minimal performance overhead. Configure via environment variables:

OTTERMQ_ENABLE_METRICS=true              # Enable/disable
OTTERMQ_METRICS_WINDOW_SIZE=5m           # Retention window
OTTERMQ_METRICS_MAX_SAMPLES=60           # History samples
OTTERMQ_METRICS_SAMPLES_INTERVAL=5       # Sample frequency (seconds)

See Configuration Reference for all available settings.

Future: Prometheus exporter and Grafana dashboards are planned for advanced monitoring workflows.

Getting started

See the repository README for detailed steps and configuration options.

Contributing documentation

Status pages live in this /docs folder and are deployed from the pages branch via GitHub Pages. When implementing or changing AMQP features (classes/methods), please keep the Status Matrix up to date.