{
  "capacity": 100,
  "events": [
    {
      "category": "ntp",
      "id": 32,
      "kind": "ntp",
      "label": "Upstream reference changed",
      "message": "stratum 3, refid 76.79.67.76 (was stratum 4, refid 76.79.67.76)",
      "severity": "info",
      "source": "ntp5.heppen.be",
      "type": "upstream_changed",
      "unix": 1789941230.134327,
      "uptime_seconds": 28329.83995446749,
      "utc": "2026-09-20T21:53:50Z"
    },
    {
      "category": "ntp",
      "id": 31,
      "kind": "ntp",
      "label": "Upstream reference changed",
      "message": "stratum 4, refid 76.79.67.76 (was stratum 2, refid 76.79.67.76)",
      "severity": "info",
      "source": "ntp5.heppen.be",
      "type": "upstream_changed",
      "unix": 1789937640.757714,
      "uptime_seconds": 24740.459239389747,
      "utc": "2026-09-20T20:54:00Z"
    },
    {
      "category": "clock",
      "id": 30,
      "kind": null,
      "label": "Synchronised",
      "message": "stratum 2, refid 192.168.1.50, ± 8.2 ms from 192.168.1.51, 192.168.1.50, ntp2.heppen.be, ntp5.heppen.be",
      "severity": "notice",
      "source": null,
      "type": "synchronised",
      "unix": 1789936901.3592746,
      "uptime_seconds": 24001.060062364675,
      "utc": "2026-09-20T20:41:41Z"
    },
    {
      "category": "class",
      "id": 29,
      "kind": "ntp",
      "label": "Failed over",
      "message": "serving from the ntp sources: the radio sources had nothing usable for 60 s",
      "severity": "warning",
      "source": null,
      "type": "failover",
      "unix": 1789936901.3592746,
      "uptime_seconds": 24001.060062364675,
      "utc": "2026-09-20T20:41:41Z"
    },
    {
      "category": "clock",
      "id": 28,
      "kind": null,
      "label": "Coasting",
      "message": "no usable source; running on this machine's clock for up to 60 min",
      "severity": "warning",
      "source": null,
      "type": "coasting",
      "unix": 1789936841.309853,
      "uptime_seconds": 23941.006340842694,
      "utc": "2026-09-20T20:40:41Z"
    },
    {
      "category": "class",
      "id": 27,
      "kind": "radio",
      "label": "Class unhealthy",
      "message": "radio sources unhealthy: 0 usable, 1 required",
      "severity": "warning",
      "source": null,
      "type": "class_unhealthy",
      "unix": 1789936841.309853,
      "uptime_seconds": 23941.006340842694,
      "utc": "2026-09-20T20:40:41Z"
    },
    {
      "category": "source",
      "id": 26,
      "kind": "radio",
      "label": "Source lost",
      "message": "lost lock: decoder not locked yet",
      "severity": "warning",
      "source": "local-15",
      "type": "source_lost",
      "unix": 1789936841.309853,
      "uptime_seconds": 23941.006340842694,
      "utc": "2026-09-20T20:40:41Z"
    },
    {
      "category": "clock",
      "id": 25,
      "kind": null,
      "label": "Stratum changed",
      "message": "stratum 1 (was 2), refid WWV",
      "severity": "info",
      "source": null,
      "type": "stratum_changed",
      "unix": 1789935660.211905,
      "uptime_seconds": 22759.908478656784,
      "utc": "2026-09-20T20:21:00Z"
    },
    {
      "category": "class",
      "id": 24,
      "kind": "radio",
      "label": "Failed back",
      "message": "serving from the radio sources again: healthy for 300 s",
      "severity": "notice",
      "source": null,
      "type": "failback",
      "unix": 1789935660.211905,
      "uptime_seconds": 22759.908478656784,
      "utc": "2026-09-20T20:21:00Z"
    },
    {
      "category": "class",
      "id": 23,
      "kind": "radio",
      "label": "Class healthy",
      "message": "radio sources healthy: 1 usable, 1 required",
      "severity": "notice",
      "source": null,
      "type": "class_healthy",
      "unix": 1789935360.1740348,
      "uptime_seconds": 22459.873106122017,
      "utc": "2026-09-20T20:16:00Z"
    },
    {
      "category": "source",
      "id": 22,
      "kind": "radio",
      "label": "Source ready",
      "message": "locked on WWV at 15.000 MHz, offset -356.4 ± 10.6 ms",
      "severity": "notice",
      "source": "local-15",
      "type": "source_ready",
      "unix": 1789935360.1740348,
      "uptime_seconds": 22459.873106122017,
      "utc": "2026-09-20T20:16:00Z"
    },
    {
      "category": "class",
      "id": 21,
      "kind": "radio",
      "label": "Class unhealthy",
      "message": "radio sources unhealthy: 0 usable, 1 required",
      "severity": "warning",
      "source": null,
      "type": "class_unhealthy",
      "unix": 1789935261.0812287,
      "uptime_seconds": 22360.78016560152,
      "utc": "2026-09-20T20:14:21Z"
    },
    {
      "category": "source",
      "id": 20,
      "kind": "radio",
      "label": "Source lost",
      "message": "lost lock: decoder not locked yet",
      "severity": "warning",
      "source": "local-15",
      "type": "source_lost",
      "unix": 1789935261.0812287,
      "uptime_seconds": 22360.78016560152,
      "utc": "2026-09-20T20:14:21Z"
    },
    {
      "category": "class",
      "id": 19,
      "kind": "radio",
      "label": "Class healthy",
      "message": "radio sources healthy: 1 usable, 1 required",
      "severity": "notice",
      "source": null,
      "type": "class_healthy",
      "unix": 1789935246.3171527,
      "uptime_seconds": 22346.016076482832,
      "utc": "2026-09-20T20:14:06Z"
    },
    {
      "category": "source",
      "id": 18,
      "kind": "radio",
      "label": "Source ready",
      "message": "locked on WWV at 15.000 MHz",
      "severity": "notice",
      "source": "local-15",
      "type": "source_ready",
      "unix": 1789935240.3142102,
      "uptime_seconds": 22340.01312759053,
      "utc": "2026-09-20T20:14:00Z"
    },
    {
      "category": "radio",
      "id": 17,
      "kind": "radio",
      "label": "Station identified",
      "message": "hearing WWV",
      "severity": "info",
      "source": "local-15",
      "type": "station_changed",
      "unix": 1789934817.4412751,
      "uptime_seconds": 21917.13974631112,
      "utc": "2026-09-20T20:06:57Z"
    },
    {
      "category": "ntp",
      "id": 16,
      "kind": "ntp",
      "label": "Upstream reference changed",
      "message": "stratum 2, refid 76.79.67.76 (was stratum 3, refid 76.79.67.76)",
      "severity": "info",
      "source": "ntp5.heppen.be",
      "type": "upstream_changed",
      "unix": 1789934047.4842906,
      "uptime_seconds": 21147.181881514378,
      "utc": "2026-09-20T19:54:07Z"
    },
    {
      "category": "ntp",
      "id": 15,
      "kind": "ntp",
      "label": "Upstream reference changed",
      "message": "stratum 3, refid 76.79.67.76 (was stratum 4, refid 76.79.67.76)",
      "severity": "info",
      "source": "ntp5.heppen.be",
      "type": "upstream_changed",
      "unix": 1789930460.3242514,
      "uptime_seconds": 17560.01785193663,
      "utc": "2026-09-20T18:54:20Z"
    },
    {
      "category": "ntp",
      "id": 14,
      "kind": "ntp",
      "label": "Upstream reference changed",
      "message": "stratum 4, refid 76.79.67.76 (was stratum 2, refid 76.79.67.76)",
      "severity": "info",
      "source": "ntp5.heppen.be",
      "type": "upstream_changed",
      "unix": 1789926804.8673558,
      "uptime_seconds": 13904.556965623982,
      "utc": "2026-09-20T17:53:24Z"
    },
    {
      "category": "ntp",
      "id": 13,
      "kind": "ntp",
      "label": "Upstream reference changed",
      "message": "stratum 2, refid 76.79.67.76 (was stratum 3, refid 76.79.67.76)",
      "severity": "info",
      "source": "ntp5.heppen.be",
      "type": "upstream_changed",
      "unix": 1789923217.7858288,
      "uptime_seconds": 10317.471591196954,
      "utc": "2026-09-20T16:53:37Z"
    },
    {
      "category": "clock",
      "id": 12,
      "kind": null,
      "label": "Synchronised",
      "message": "first synchronisation: stratum 2, refid 192.168.1.50, ± 4.7 ms from 192.168.1.51, 192.168.1.50, ntp2.heppen.be, ntp5.heppen.be",
      "severity": "notice",
      "source": null,
      "type": "synchronised",
      "unix": 1789912960.6237211,
      "uptime_seconds": 60.29739247728139,
      "utc": "2026-09-20T14:02:40Z"
    },
    {
      "category": "class",
      "id": 11,
      "kind": "ntp",
      "label": "Failed over",
      "message": "serving from the ntp sources: the radio sources have not been usable since startup",
      "severity": "warning",
      "source": null,
      "type": "failover",
      "unix": 1789912960.6237211,
      "uptime_seconds": 60.29739247728139,
      "utc": "2026-09-20T14:02:40Z"
    },
    {
      "category": "radio",
      "id": 10,
      "kind": "radio",
      "label": "Station identified",
      "message": "hearing WWV",
      "severity": "info",
      "source": "local-10",
      "type": "station_changed",
      "unix": 1789912934.6033604,
      "uptime_seconds": 34.27776654716581,
      "utc": "2026-09-20T14:02:14Z"
    },
    {
      "category": "source",
      "id": 9,
      "kind": "ntp",
      "label": "Source ready",
      "message": "reachable: stratum 3, refid 76.79.67.76, offset +1.2 ± 11.6 ms",
      "severity": "notice",
      "source": "ntp5.heppen.be",
      "type": "source_ready",
      "unix": 1789912906.5819175,
      "uptime_seconds": 6.256324021145701,
      "utc": "2026-09-20T14:01:46Z"
    },
    {
      "category": "source",
      "id": 8,
      "kind": "ntp",
      "label": "Source ready",
      "message": "reachable: stratum 1, refid PPS, offset -3.1 ± 15.5 ms",
      "severity": "notice",
      "source": "ntp2.heppen.be",
      "type": "source_ready",
      "unix": 1789912906.5819175,
      "uptime_seconds": 6.256324021145701,
      "utc": "2026-09-20T14:01:46Z"
    },
    {
      "category": "source",
      "id": 7,
      "kind": "ntp",
      "label": "Source ready",
      "message": "reachable: stratum 1, refid PPS, offset -0.1 ± 1.7 ms",
      "severity": "notice",
      "source": "192.168.1.51",
      "type": "source_ready",
      "unix": 1789912906.5819175,
      "uptime_seconds": 6.256324021145701,
      "utc": "2026-09-20T14:01:46Z"
    },
    {
      "category": "class",
      "id": 6,
      "kind": "ntp",
      "label": "Class healthy",
      "message": "ntp sources healthy: 1 usable, 1 required",
      "severity": "notice",
      "source": null,
      "type": "class_healthy",
      "unix": 1789912906.3317347,
      "uptime_seconds": 6.006140798330307,
      "utc": "2026-09-20T14:01:46Z"
    },
    {
      "category": "source",
      "id": 5,
      "kind": "ntp",
      "label": "Source ready",
      "message": "reachable: stratum 1, refid PPS, offset -0.1 ± 0.4 ms",
      "severity": "notice",
      "source": "192.168.1.50",
      "type": "source_ready",
      "unix": 1789912906.3317347,
      "uptime_seconds": 6.006140798330307,
      "utc": "2026-09-20T14:01:46Z"
    },
    {
      "category": "radio",
      "id": 4,
      "kind": "radio",
      "label": "Receiver connected",
      "message": "streaming from Wideband Websdr by Bas ON5HB and Marian ON3MS (HEPPEN)",
      "severity": "info",
      "source": "local-15",
      "type": "link_up",
      "unix": 1789912900.5763183,
      "uptime_seconds": 0.2507244376465678,
      "utc": "2026-09-20T14:01:40Z"
    },
    {
      "category": "radio",
      "id": 3,
      "kind": "radio",
      "label": "Receiver connected",
      "message": "streaming from Wideband Websdr by Bas ON5HB and Marian ON3MS (HEPPEN)",
      "severity": "info",
      "source": "local-10",
      "type": "link_up",
      "unix": 1789912900.5763183,
      "uptime_seconds": 0.2507244376465678,
      "utc": "2026-09-20T14:01:40Z"
    },
    {
      "category": "radio",
      "id": 2,
      "kind": "radio",
      "label": "Receiver connected",
      "message": "streaming from Wideband Websdr by Bas ON5HB and Marian ON3MS (HEPPEN)",
      "severity": "info",
      "source": "local-5",
      "type": "link_up",
      "unix": 1789912900.5763183,
      "uptime_seconds": 0.2507244376465678,
      "utc": "2026-09-20T14:01:40Z"
    },
    {
      "category": "daemon",
      "id": 1,
      "kind": null,
      "label": "Daemon started",
      "message": "version 0.4.2-15-ge85fdac; 3 radio and 4 NTP source(s); primary radio, secondary standby; healthy with at least 1 radio and 1 NTP",
      "severity": "info",
      "source": null,
      "type": "daemon_started",
      "unix": 1789912900.325779,
      "uptime_seconds": 0.0,
      "utc": "2026-09-20T14:01:40Z"
    }
  ],
  "latest_id": 32,
  "severities": [
    "info",
    "notice",
    "warning",
    "error"
  ],
  "types": [
    {
      "category": "daemon",
      "description": "The daemon started. Everything before this is from a previous run and is gone.",
      "label": "Daemon started",
      "severity": "info",
      "type": "daemon_started"
    },
    {
      "category": "clock",
      "description": "Time is being served from live sources: for the first time, or again after coasting or being unsynchronised.",
      "label": "Synchronised",
      "severity": "notice",
      "type": "synchronised"
    },
    {
      "category": "clock",
      "description": "No time is being served as synchronised: nothing usable, and nothing left to coast on. Clients are told to look elsewhere.",
      "label": "Unsynchronised",
      "severity": "error",
      "type": "unsynchronised"
    },
    {
      "category": "clock",
      "description": "No source is usable, so the served time runs on this machine's crystal from the last good offset, with its claimed accuracy decaying, until the coast limit.",
      "label": "Coasting",
      "severity": "warning",
      "type": "coasting"
    },
    {
      "category": "clock",
      "description": "The stratum being served changed, usually because the time now comes from a different kind of source.",
      "label": "Stratum changed",
      "severity": "info",
      "type": "stratum_changed"
    },
    {
      "category": "clock",
      "description": "Every source in use agrees a leap second is scheduled at the end of the month.",
      "label": "Leap second announced",
      "severity": "notice",
      "type": "leap_pending"
    },
    {
      "category": "clock",
      "description": "The leap second warning is no longer being served.",
      "label": "Leap warning cleared",
      "severity": "info",
      "type": "leap_cleared"
    },
    {
      "category": "class",
      "description": "A class of source (radio or NTP) has at least its configured minimum of usable sources.",
      "label": "Class healthy",
      "severity": "notice",
      "type": "class_healthy"
    },
    {
      "category": "class",
      "description": "A class of source has fallen below its configured minimum of usable sources. If it is the primary, the failover countdown starts.",
      "label": "Class unhealthy",
      "severity": "warning",
      "type": "class_unhealthy"
    },
    {
      "category": "class",
      "description": "The primary class had nothing usable for the failover interval, and the time now comes from the secondary.",
      "label": "Failed over",
      "severity": "warning",
      "type": "failover"
    },
    {
      "category": "class",
      "description": "The primary class stayed healthy for the failback interval and serves the time again.",
      "label": "Failed back",
      "severity": "notice",
      "type": "failback"
    },
    {
      "category": "class",
      "description": "In cold mode, the secondary sources were connected because the primary lost its sources.",
      "label": "Cold standby brought up",
      "severity": "info",
      "type": "standby_up"
    },
    {
      "category": "class",
      "description": "In cold mode, the secondary sources were disconnected because the primary has been healthy long enough.",
      "label": "Cold standby stood down",
      "severity": "info",
      "type": "standby_down"
    },
    {
      "category": "source",
      "description": "A source became usable: a receiver's decoder locked, or an upstream server became reachable with a filtered offset.",
      "label": "Source ready",
      "severity": "notice",
      "type": "source_ready"
    },
    {
      "category": "source",
      "description": "A usable source stopped being usable, and why.",
      "label": "Source lost",
      "severity": "warning",
      "type": "source_lost"
    },
    {
      "category": "source",
      "description": "A source disagrees with the others of its kind by more than any delay model can explain, and is kept out of the served time.",
      "label": "Source refused",
      "severity": "warning",
      "type": "source_refused"
    },
    {
      "category": "source",
      "description": "A refused source agrees with the others again and is used.",
      "label": "Source accepted again",
      "severity": "notice",
      "type": "source_accepted"
    },
    {
      "category": "source",
      "description": "A source refused for long enough was made to drop its lock and acquire from nothing.",
      "label": "Source sent to re-acquire",
      "severity": "warning",
      "type": "source_reacquire"
    },
    {
      "category": "radio",
      "description": "Audio started streaming from an UberSDR receiver.",
      "label": "Receiver connected",
      "severity": "info",
      "type": "link_up"
    },
    {
      "category": "radio",
      "description": "The audio stream from a receiver stopped, or a connection to it failed.",
      "label": "Receiver disconnected",
      "severity": "warning",
      "type": "link_down"
    },
    {
      "category": "radio",
      "description": "The decoder decided which transmitter it is hearing (WWV, WWVH or WWVB), or changed its mind.",
      "label": "Station identified",
      "severity": "info",
      "type": "station_changed"
    },
    {
      "category": "radio",
      "description": "A receiver decoded a time whole seconds or more from where its own history puts it -- a misread bit in the time code, since UTC does not jump -- and the decode was not used.",
      "label": "Decoded time refused",
      "severity": "warning",
      "type": "time_refused"
    },
    {
      "category": "radio",
      "description": "A decoded time that contradicted a receiver's history held for long enough that the history was taken to be the wrong one, and replaced.",
      "label": "New decoded time taken",
      "severity": "warning",
      "type": "time_adopted"
    },
    {
      "category": "ntp",
      "description": "An upstream NTP server changed its own stratum or reference: it is now synchronised to something else.",
      "label": "Upstream reference changed",
      "severity": "info",
      "type": "upstream_changed"
    },
    {
      "category": "ntp",
      "description": "An upstream server told this daemon to go away (RATE, DENY or RSTR).",
      "label": "Kiss-o'-death",
      "severity": "error",
      "type": "kiss_of_death"
    }
  ]
}
