TallyCloudEventsSilent
sum by (cloud) (increase(tally_events_ingested_total{source="collector"}[1h])) == 0 and sum by (cloud) (increase(tally_events_ingested_total{source="collector"}[24h])) > 0, for: 15m.
Symptom
A cloud that ingested collector events at some point in the last 24 hours has ingested none for more than an hour. The second half of the expression is what keeps a cloud that is idle by design, or one that has been decommissioned, from firing this alert forever.
Impact on billing
Every create, delete, and resize the cloud performed inside the gap is unbilled or overbilled until a reconciliation run turns the difference into synthetic events. A resource that is created and deleted inside the gap is invisible for good: no run ever observes it, so nothing books it, and no later repair recovers it. That is the accepted limitation of the event-driven design, listed under Known limitations in the concept.
First checks
- The collector process beside the broker:
/healthzand/readyzonTALLY_OSC_HTTP_PORT, the gaugestally_collector_buffer_depthandtally_collector_oldest_buffered_seconds, and the countertally_collector_delivery_errors_total. A buffer that grows says the collector still consumes and cannot deliver; a readiness that fails names its reason in the log (the HTTP routes and the gauges and the counter). The lastsummaryline of the collector's log carries the same numbers for the last interval, andconnectedthere says whether the consumer holds a session. - The broker connection.
--dumpprints one line per delivery and reads nothing but the AMQP variables, so it says whether the bus carries notifications at all. It consumes through a queue of its own and takes no delivery away from a running collector. - The Reporting API as the collector reaches it: the base URL in
TALLY_OSC_REPORTING_URL, and an ingest credential whose scope matchesTALLY_OSC_CLOUD. An event outside that scope is refused with the reasonscopeand is never resent. - Whether reconciliation still runs for the cloud (
tally_sync_runs_total{status="completed"}). It is what heals the gap, so a silent collector and a stale sync together cost more than either alone.