Knowledge Base

The Timeline

The timeline is a component-wise local or global history of statuses and issues. The global timeline, as seen on your status page home as "Recent History," is the product of merging all local component timelines (which themselves can be viewed on each component page as "Recent History") together into a single timeline.

Structure of the Timeline and Status Covering

A timeline is firstly comprised of the entire history of statuses as generated by watchdogs. Every status has a corresponding state that describes the availability of the component concerning the watchdog. This automatically generated history is then overlayed with all issues created by team members or watchdogs.

Since issues can also have a corresponding state, we say that issues override (or annotate) statuses in the timeline for all statuses that are covered by the issue. An issue covers a status whenever both objects affect the same component over overlapping (rather than the exact same) time periods.

For example, say we have two components, C1 and C2. Both components have watchdogs that automatically generate statuses describing their real-time availability. Call two of these statuses S1 and S2, where S1 is a status of C1 and S2 is a status of C2.

Timeline 1

Suppose you create an issue I1 only affecting C1 that takes place at least partially during S1 (that is, I1 does not have the exact same begin/end times as S1, but they still partially overlap in their duration). Then, I1 covers S1, implying that I1 will override S1's state if I1 declares a state override, and will also replace S1 in the timeline.

Timeline 2

Note that S2 is unaffected, regardless of whether its duration overlaps with I1, since I1 does not affect C2. Of course, if another issue I2 was created affecting both C1 and C2, and S2 partially overlapped with I2's time period, then I2 would cover both S1 and S2. Moreover, this also implies that S1 would be annotated by both I1 and I2.

Timeline 3

Annotating and Overriding Statuses

While we use the words "override" and "annotate" to mean essentially the same thing, we prefer to use "override" specifically when an issue declares a state override, which indeed overrides the state of any covered statuses. "Annotation" can either refer to overriding the state of covered statuses, or more generally using issues to simply provide more information about covered statuses.

By default, issues are not created with a state override, and so they fall back to the affected components' statuses. Thus, by default issues merely annotate covered statuses rather than overriding them. In any case, statuses covered by an issue will be replaced by the issue in the timeline, regardless of whether the timeline is local to a component or the global one.

Any ongoing status can be annotated by creating an issue affecting the component concerning the status. Moreover, any past status can be annotated by creating a retrospective issue and using the "Annotate Statuses" modal provided by the retrospective issue form in the dashboard.