Feature - Subscription Monitoring

Meteor Subscription Monitoring for real-time apps

DDP publications are long-lived, stateful and expensive to get wrong. SkySignal surfaces observer lifetime, driver mix, over-fetching and reactive efficiency so you can ship real-time features with confidence.

Why it is hard

Publications are servers within your server

A Meteor publication is not a request. It is a long-lived server process that holds a cursor open, observes a MongoDB collection and pushes changes down DDP. A generic APM cannot see any of that because no HTTP round trip fires when a document changes. You need a tool that understands pub/sub internals.

When a publication goes bad, it fails quietly. An observer falls back to polling instead of using change streams. A shared multiplexer key disappears and every connection spawns its own observer. A forgotten this.ready()leaves users waiting forever. SkySignal watches for all of these patterns continuously.

Every signal DDP can give you

SkySignal instruments publications at the observer level, not just at the subscription edge, so you see the full picture.

Response time

Time from SUB message to the first ready signal, plus ongoing update latency when documents change.

Observer count and lifetime

See how many server-side observers are alive, how long they stay open and how many DDP clients share each one.

Driver mix

Every observer is tagged as change stream, oplog or polling so you can see exactly what is backing each subscription.

Doc counts and payload

Documents published per subscription, average payload size and update frequency over time.

Reactive efficiency

Know when you have fallen back to polling

Since Meteor 3.5 there are three drivers that can power an observer: change streams, oplog tailing and polling. Polling is orders of magnitude more expensive on MongoDB. SkySignal computes a reactive efficiency ratio - (changeStream + oplog) / total - so you can track the percentage of your observers that are running the right way and catch silent regressions.

Observer drivers94% reactive
changeStream62%
oplog32%
polling6%

How it works

Instrumented at the observer, not at the edge

01

Wrap publish

The agent wraps Meteor.publish so every subscription is tagged with a publication name and connection id.

02

Detect driver

For each observer, the agent inspects the internal multiplexer to record whether it is change streams, oplog or polling.

03

Track lifecycle

Subscribe, ready, update and stop events flow to SkySignal with full context so you can chart lifetime and efficiency.

Over-fetching detection

SkySignal can flag publications that return fields the client never reads. Tighten your field projections, shrink the DDP payload and keep mergebox memory lean.

Leaks get a dedicated tool

Subscriptions that keep observers alive after the client is gone are ranked with 7-signal confidence scoring. See the dedicated Observer Leak Detection page for how that works.

See what your publications are really doing

Install the agent, refresh your dashboard, done.