Every roll outcome goes to process.stdout, which the plugin routes to app.debug — off unless someone enabled debug for this plugin. status() reports recorder and socket counters only, so it keeps printing "Recording" while every roll fails and the hot store grows until the disk is full.
signalk-parquet-history-provider#13 routes roll failures to stderr, which reaches app.error. What it does not do is put roll health in the status line, because there is no writer→plugin channel for it — the protocol carries samples and acknowledgements, nothing about the store's state.
Wanted: the hot store's row count and the age of the last successful roll in the plugin status, and a plugin error after N consecutive failures. That means a status message on the writer protocol.
Every roll outcome goes to
process.stdout, which the plugin routes toapp.debug— off unless someone enabled debug for this plugin.status()reports recorder and socket counters only, so it keeps printing "Recording" while every roll fails and the hot store grows until the disk is full.signalk-parquet-history-provider#13 routes roll failures to stderr, which reaches
app.error. What it does not do is put roll health in the status line, because there is no writer→plugin channel for it — the protocol carries samples and acknowledgements, nothing about the store's state.Wanted: the hot store's row count and the age of the last successful roll in the plugin status, and a plugin error after N consecutive failures. That means a status message on the writer protocol.