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.