Module Munin.Run
Runs, as a listing reads them.
A value of type t is a run as it was when read: what its start record states, which never changes, its tags and notes, and its status (The writer and the status of a run). Reading one costs the first and last records of its log, whatever the log's length, its tag files and notes, and a probe of its lock. Everything else the run logged is its History.
Store.runs and Store.run read runs, and History.run is a run as its history last read it. A value does no I/O: its accessors give what was read.
type status = [ - #
| `Running(*A process holds the run's lock. It may be a child the writer forked without
*)exec, which keeps the lock after the writer exits (The writer and the status of a run), so`Runningproves a holder of the lock, and not that the program that started the run still runs. - #
| `Silent(*The reader could not probe the lock (The writer and the status of a run), so a live writer and a dead one look the same.
*)updated_atis when the run last wrote. - #
| `Crashed(*The log has no end and its writer has exited, since no process holds the lock or the writer's machine has booted since.
*) - #
| `Finished(*The writer ended the run as finished.
*) - #
| `Failed of string(*The writer ended the run with this error.
*) - #
| `Killed(*The writer ended the run as killed.
*)
]The type for statuses (The writer and the status of a run).
type tThe type for runs as read.
What the start states
parent r is the id of the run r belongs to, if it named one. That run may since have been deleted.
steps r is the largest step r declared it will log, if it declared one. A reader shows progress as the latest step over it.
val provenance : t -> Provenance.tprovenance r is the provenance r's start recorded. A resume records its own (History.resumes).
diff r is the absolute path of r's git.diff (Files a run logged), if it had one when read.