Skip to main content

Episode fields

Follow severity and lifecycle changes. Observation fields qualify when a condition began or cleared.

FieldTypeUnitMeaning
sparklogs.episode.idstringUnique episode ID, retained throughout the condition's lifecycle.
sparklogs.episode.event_seqintegercountCounts this episode's events from 1. Survives an agent restart, so a consumer can tell whether an event is newer than what it holds without trusting a clock.
sparklogs.episode.occurrenceintegercountWhich time this is that the condition has opened on this subject on this agent. Counted locally and kept across a reinstall; a wiped host resets it.
sparklogs.episode.phasestringWhere the episode stands: onset, held, recovering, recovered or ended.
sparklogs.episode.transitionstringLifecycle change: opened, recovering, relapsed, closed, ended, severity_raised or severity_lowered. Absent without a transition.
sparklogs.episode.first_observed_tsstringtimestampWhen the episode opened.
sparklogs.episode.age_basisstringonset: witnessed start. observed: already present when first seen, making age a lower bound. unknown_ongoing: no meaningful onset time.
sparklogs.episode.last_confirmed_tsstringtimestampThe last time the condition was seen still true.
sparklogs.episode.max_observation_gap_sintegersecondsLongest observation gap during the episode, in seconds.
sparklogs.episode.post_gap_sintegersecondsDuration of the observation gap preceding this event, in seconds. Present only on the first event after a gap.
sparklogs.episode.presence_seen_countintegercountSamples containing this subject during its tracked lifetime. Present only with presence_observed_count, the denominator.
sparklogs.episode.presence_observed_countintegercountSamples in which this subject could have been observed. Denominator for presence_seen_count.
sparklogs.episode.recovery_attemptsintegercountNumber of recovery attempts during this episode. An attempt does not establish that recovery completed.
sparklogs.episode.recovering_total_sintegersecondsHow long, in total observed time, the episode has spent recovering.
sparklogs.episode.last_transition_tsstringtimestampWhen this episode last emitted a transition, whatever it was. Answers how long it has been at this severity without scanning its other events.
sparklogs.episode.peak_severitystringThe highest severity this episode has carried, so one closing event can say it peaked here and lasted this long.
sparklogs.episode.pending_transitionstringThe transition a debounce window is currently accumulating toward. Present only while one is running, and what explains readings sitting under the severity the episode still asserts.
sparklogs.episode.pending_since_tsstringtimestampWhen the running debounce window started holding. Rides with the transition it is accumulating toward or not at all.
sparklogs.episode.replaced_idstringThe episode this one superseded, linking a chain where one condition gave way to another on the same subject.
sparklogs.episode.cleared_tsstringtimestampWhen the condition stopped being true. Closure only.
sparklogs.episode.clear_time_basisstringWhether the clearing time was witnessed (observed) or clamped back to the last confirmation because the agent was not watching when it cleared (unobserved_gap).
sparklogs.episode.end_reasonstringWhy tracking stopped rather than why the condition cleared, for an episode that ended without recovering: the subject went away, or the condition was retired.