gisila_rose library

GisilaRose — an optional, Flower-style observability dashboard for gisila_queue.

This is a separate entry point from package:gisila_queue/gisila_queue.dart so the core stays dependency-light: importing it pulls in the dart:io HTTP server only when you actually want a dashboard.

Wire a QueueEventSink into your GisilaQueue (producers and workers) so lifecycle events flow, then run a GisilaRose against the matching QueueEventSource:

// In producer/worker processes:
final app = GisilaQueue(
  broker: RedisBroker(host: 'localhost'),
  events: RedisEventSink(host: 'localhost'),
);

// In the monitor process (or see bin/rose.dart):
final rose = GisilaRose(
  source: RedisEventSource(host: 'localhost'),
  broker: RedisBroker(host: 'localhost'),
  port: 5555,
);
await rose.start();
print('dashboard on http://localhost:5555');

For a single-isolate app or tests, share one InMemoryEventBus as both the app's events sink and the rose's source.

Classes

GisilaRose
A Flower-equivalent observability dashboard for gisila_queue.
MonitorState
Aggregates the QueueEvent stream into a live, queryable model of tasks, workers, and counters — the in-memory state a GisilaRose dashboard renders. This is the gisila_queue analogue of Flower's event-driven state.
TaskInfo
A monitor's view of a single task, folded from its lifecycle events.
WorkerInfo
A monitor's view of a worker process, folded from its heartbeats.