Add a propagation_run_timings table so the wall-clock duration of each (run_time, forecast_hour) step is queryable long after the run is over. Keyed by (run_time, forecast_hour) with a status column that captures whether the step succeeded or bailed out, and an error string on failure. PropagationGridWorker stamps every step (ok and failed) via Propagation.record_run_timing/1. Timing inserts are wrapped in rescue + changeset-error handling so the instrumentation can never brick the chain. |
||
|---|---|---|
| .. | ||
| migrations | ||
| import_contacts.exs | ||
| import_weather.exs | ||
| seeds.exs | ||