Skip to content

Flower

Flower coordinates one measurement at a time per flow. A measurement is a time window (start .. deadline) that sinks record into. The deadline can be extended; a measurement cannot be aborted.

Module id: flower.

Configuration

Config type Component ref Description
flow flower.flow.<id> FlowConfiguration is the measurement flow of a flower module (flower.flow.<id>).

The flow names the default channels for measurements.

Triggers do not need to know whether a measurement is already running. They send a start / extend / stop event; flower decides event_ignored, new_measurement_triggered, or deadline_updated.

Rules

  • At most one measurement is active per flow.
  • The start timestamp of a trigger is used only when creating a new measurement.
  • A new measurement is created when none is active and a valid event arrives.
  • A measurement closes when its deadline falls outside the processing window, or when a valid event starts after the current deadline (which also opens a new measurement).
  • A measurement's deadline is extended when an already-active trigger sends a later deadline whose start still overlaps the current window.

The processing window (how far back a start may be) is a module flag (default 300 s). Use --help for the full flag list.

NATS endpoints

Command Request Description
flower.flow.<id>.measurement_event_publish JSON Hands the flow a measurement event: without a measurementRef it starts a new measurement, with one it extends or stops the running one, and an event nothing is running for is ignored. The reply says which, and names the measurement running now.

Sent by the trigger module's measurement action and by algol trigger publish. Request/response: Messaging.