ParkAPI Quality Agent AI triage console

Dashboard

Latest job runs

Generated 2026-05-30 18:03 UTC

Back to overview

Previous job runs

JobStatusStartedFinishedDurationDetails
analyzer running 2026-05-30 17:01:37 - - ms -
fetcher-realtime success 2026-05-30 17:01:37 2026-05-30 17:01:53 15878 ms
Show process log (16 events)
[
  {
    "data": {
      "endpoints": [
        "parking-spots",
        "parking-sites",
        "sources"
      ],
      "refresh_seconds": 600
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T17:01:37.615863+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:37.636457+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:38.786566+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:38.786715+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:47.453608+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:47.453790+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:48.166656+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:48.166813+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:48.350333+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:48.350543+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:50.671695+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:50.671914+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:50.683959+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T17:01:50.684100+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 1379
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T17:01:53.491521+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 15878
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T17:01:53.493332+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 15878,
  "events": [
    {
      "data": {
        "endpoints": [
          "parking-spots",
          "parking-sites",
          "sources"
        ],
        "refresh_seconds": 600
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T17:01:37.615863+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:37.636457+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:38.786566+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:38.786715+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:47.453608+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:47.453790+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:48.166656+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:48.166813+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:48.350333+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:48.350543+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:50.671695+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:50.671914+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:50.683959+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T17:01:50.684100+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 1379
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T17:01:53.491521+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 15878
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T17:01:53.493332+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher success 2026-05-30 17:01:37 2026-05-30 17:01:52 14996 ms
Show process log (16 events)
[
  {
    "data": {
      "endpoints": [
        "parking-spots",
        "parking-sites",
        "sources"
      ]
    },
    "job_name": "fetcher",
    "message": "fetch cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T17:01:37.614175+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:37.638910+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:38.681786+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:38.681968+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:46.572103+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:46.572276+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:01:46.632795+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:46.632968+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:47.455702+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:47.455944+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:49.731254+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:49.731731+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:01:49.748323+00:00"
  },
  {
    "job_name": "fetcher",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T17:01:49.748534+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 1379
    },
    "job_name": "fetcher",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T17:01:52.608117+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 14996
    },
    "job_name": "fetcher",
    "message": "fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T17:01:52.610564+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 14996,
  "events": [
    {
      "data": {
        "endpoints": [
          "parking-spots",
          "parking-sites",
          "sources"
        ]
      },
      "job_name": "fetcher",
      "message": "fetch cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T17:01:37.614175+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:37.638910+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:38.681786+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:38.681968+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:46.572103+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:46.572276+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:01:46.632795+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:46.632968+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:47.455702+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:47.455944+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:49.731254+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:49.731731+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:01:49.748323+00:00"
    },
    {
      "job_name": "fetcher",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T17:01:49.748534+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 1379
      },
      "job_name": "fetcher",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T17:01:52.608117+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 14996
      },
      "job_name": "fetcher",
      "message": "fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T17:01:52.610564+00:00"
    }
  ]
}
fetcher-realtime success 2026-05-30 16:54:58 2026-05-30 16:55:13 15077 ms
Show process log (16 events)
[
  {
    "data": {
      "endpoints": [
        "parking-spots",
        "parking-sites",
        "sources"
      ],
      "refresh_seconds": 600
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T16:54:58.905617+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:54:58.921252+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:54:59.985191+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:54:59.985416+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:55:08.608652+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:55:08.608847+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:55:08.665957+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:55:08.666102+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:55:08.834240+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:55:08.834423+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:55:10.971981+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:55:10.972154+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:55:10.981950+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:55:10.982075+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 1379
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:55:13.979389+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 15077
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T16:55:13.981305+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 15077,
  "events": [
    {
      "data": {
        "endpoints": [
          "parking-spots",
          "parking-sites",
          "sources"
        ],
        "refresh_seconds": 600
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T16:54:58.905617+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:54:58.921252+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:54:59.985191+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:54:59.985416+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:55:08.608652+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:55:08.608847+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:55:08.665957+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:55:08.666102+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:55:08.834240+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:55:08.834423+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:55:10.971981+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:55:10.972154+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:55:10.981950+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:55:10.982075+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 1379
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:55:13.979389+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 15077
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T16:55:13.981305+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 16:44:42 2026-05-30 16:44:58 15851 ms
Show process log (16 events)
[
  {
    "data": {
      "endpoints": [
        "parking-spots",
        "parking-sites",
        "sources"
      ],
      "refresh_seconds": 600
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T16:44:42.982202+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:44:42.994843+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:44:43.867477+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:44:43.867642+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:44:53.193055+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:44:53.193422+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:44:53.254744+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:44:53.255086+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:44:53.457019+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:44:53.457240+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:44:55.892136+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:44:55.892587+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:44:55.908045+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:44:55.908266+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 1379
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:44:58.828801+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 15851
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T16:44:58.831463+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 15851,
  "events": [
    {
      "data": {
        "endpoints": [
          "parking-spots",
          "parking-sites",
          "sources"
        ],
        "refresh_seconds": 600
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T16:44:42.982202+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:44:42.994843+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:44:43.867477+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:44:43.867642+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:44:53.193055+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:44:53.193422+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:44:53.254744+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:44:53.255086+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:44:53.457019+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:44:53.457240+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:44:55.892136+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:44:55.892587+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:44:55.908045+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:44:55.908266+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 1379
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:44:58.828801+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 15851
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T16:44:58.831463+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 16:34:26 2026-05-30 16:34:42 16597 ms
Show process log (16 events)
[
  {
    "data": {
      "endpoints": [
        "parking-spots",
        "parking-sites",
        "sources"
      ],
      "refresh_seconds": 600
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T16:34:26.310471+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:34:26.325737+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:34:27.630462+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:34:27.630627+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:34:37.265729+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:34:37.266054+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:34:37.343040+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:34:37.343192+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:34:37.520383+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:34:37.520598+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:34:39.849002+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:34:39.849259+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:34:39.864866+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:34:39.865062+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 1379
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:34:42.903553+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 16597
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T16:34:42.906650+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 16597,
  "events": [
    {
      "data": {
        "endpoints": [
          "parking-spots",
          "parking-sites",
          "sources"
        ],
        "refresh_seconds": 600
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T16:34:26.310471+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:34:26.325737+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:34:27.630462+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:34:27.630627+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:34:37.265729+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:34:37.266054+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:34:37.343040+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:34:37.343192+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:34:37.520383+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:34:37.520598+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:34:39.849002+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:34:39.849259+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:34:39.864866+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:34:39.865062+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 1379
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:34:42.903553+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 16597
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T16:34:42.906650+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 16:24:08 2026-05-30 16:24:26 17431 ms
Show process log (16 events)
[
  {
    "data": {
      "endpoints": [
        "parking-spots",
        "parking-sites",
        "sources"
      ],
      "refresh_seconds": 600
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T16:24:08.815448+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:24:08.831332+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:24:10.572752+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:24:10.572959+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:24:20.815318+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:24:20.815541+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T16:24:20.876694+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:24:20.877046+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:24:21.044967+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:24:21.045177+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28304
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:24:23.279270+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:24:23.279623+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T16:24:23.291948+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:24:23.292284+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 1379
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T16:24:26.243441+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 17431
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T16:24:26.245398+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 17431,
  "events": [
    {
      "data": {
        "endpoints": [
          "parking-spots",
          "parking-sites",
          "sources"
        ],
        "refresh_seconds": 600
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T16:24:08.815448+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:24:08.831332+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:24:10.572752+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:24:10.572959+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:24:20.815318+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:24:20.815541+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T16:24:20.876694+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:24:20.877046+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:24:21.044967+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:24:21.045177+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28304
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:24:23.279270+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:24:23.279623+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T16:24:23.291948+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:24:23.292284+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 1379
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T16:24:26.243441+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 17431
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T16:24:26.245398+00:00"
    }
  ],
  "refresh_seconds": 600
}
reporter success 2026-05-30 16:13:51 2026-05-30 16:13:56 4439 ms
Show process log (9 events)
[
  {
    "job_name": "reporter",
    "message": "report cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T16:13:51.987535+00:00"
  },
  {
    "data": {
      "search_query": ""
    },
    "job_name": "reporter",
    "message": "building reporter dashboard context",
    "status": "running",
    "step": "context.build",
    "timestamp": "2026-05-30T16:13:52.003529+00:00"
  },
  {
    "data": {
      "dashboard_metric_count": 3,
      "metric_count": 4
    },
    "job_name": "reporter",
    "message": "latest quality metrics loaded",
    "status": "success",
    "step": "metrics.load",
    "timestamp": "2026-05-30T16:13:52.024815+00:00"
  },
  {
    "data": {
      "incident_count": 0,
      "provider_count": 0
    },
    "job_name": "reporter",
    "message": "incident memory refreshed",
    "status": "success",
    "step": "incidents.refresh",
    "timestamp": "2026-05-30T16:13:56.220320+00:00"
  },
  {
    "data": {
      "reason": "no_provider_summaries"
    },
    "job_name": "reporter",
    "message": "llm recommendation refresh skipped",
    "status": "success",
    "step": "llm.refresh",
    "timestamp": "2026-05-30T16:13:56.220536+00:00"
  },
  {
    "data": {
      "llm_count": 0
    },
    "job_name": "reporter",
    "message": "recommendations prepared",
    "status": "success",
    "step": "recommendations.load",
    "timestamp": "2026-05-30T16:13:56.233662+00:00"
  },
  {
    "job_name": "reporter",
    "message": "reporter dashboard context built",
    "status": "success",
    "step": "context.build",
    "timestamp": "2026-05-30T16:13:56.312504+00:00"
  },
  {
    "data": {
      "output": "/app/reports/index.html",
      "template": "index.html"
    },
    "job_name": "reporter",
    "message": "report rendered",
    "status": "success",
    "step": "report.render",
    "timestamp": "2026-05-30T16:13:56.426649+00:00"
  },
  {
    "data": {
      "duration_ms": 4439
    },
    "job_name": "reporter",
    "message": "report cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T16:13:56.427096+00:00"
  }
]
Show run details
{
  "duration_ms": 4439,
  "events": [
    {
      "job_name": "reporter",
      "message": "report cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T16:13:51.987535+00:00"
    },
    {
      "data": {
        "search_query": ""
      },
      "job_name": "reporter",
      "message": "building reporter dashboard context",
      "status": "running",
      "step": "context.build",
      "timestamp": "2026-05-30T16:13:52.003529+00:00"
    },
    {
      "data": {
        "dashboard_metric_count": 3,
        "metric_count": 4
      },
      "job_name": "reporter",
      "message": "latest quality metrics loaded",
      "status": "success",
      "step": "metrics.load",
      "timestamp": "2026-05-30T16:13:52.024815+00:00"
    },
    {
      "data": {
        "incident_count": 0,
        "provider_count": 0
      },
      "job_name": "reporter",
      "message": "incident memory refreshed",
      "status": "success",
      "step": "incidents.refresh",
      "timestamp": "2026-05-30T16:13:56.220320+00:00"
    },
    {
      "data": {
        "reason": "no_provider_summaries"
      },
      "job_name": "reporter",
      "message": "llm recommendation refresh skipped",
      "status": "success",
      "step": "llm.refresh",
      "timestamp": "2026-05-30T16:13:56.220536+00:00"
    },
    {
      "data": {
        "llm_count": 0
      },
      "job_name": "reporter",
      "message": "recommendations prepared",
      "status": "success",
      "step": "recommendations.load",
      "timestamp": "2026-05-30T16:13:56.233662+00:00"
    },
    {
      "job_name": "reporter",
      "message": "reporter dashboard context built",
      "status": "success",
      "step": "context.build",
      "timestamp": "2026-05-30T16:13:56.312504+00:00"
    },
    {
      "data": {
        "output": "/app/reports/index.html",
        "template": "index.html"
      },
      "job_name": "reporter",
      "message": "report rendered",
      "status": "success",
      "step": "report.render",
      "timestamp": "2026-05-30T16:13:56.426649+00:00"
    },
    {
      "data": {
        "duration_ms": 4439
      },
      "job_name": "reporter",
      "message": "report cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T16:13:56.427096+00:00"
    }
  ],
  "output_name": "index.html",
  "refresh_seconds": 60,
  "report_path": "/app/reports/index.html"
}
reporter success 2026-05-30 16:13:51 2026-05-30 16:13:56 4438 ms
Show process log (9 events)
[
  {
    "job_name": "reporter",
    "message": "report cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T16:13:51.987435+00:00"
  },
  {
    "data": {
      "search_query": ""
    },
    "job_name": "reporter",
    "message": "building reporter dashboard context",
    "status": "running",
    "step": "context.build",
    "timestamp": "2026-05-30T16:13:51.998981+00:00"
  },
  {
    "data": {
      "dashboard_metric_count": 3,
      "metric_count": 4
    },
    "job_name": "reporter",
    "message": "latest quality metrics loaded",
    "status": "success",
    "step": "metrics.load",
    "timestamp": "2026-05-30T16:13:52.021842+00:00"
  },
  {
    "data": {
      "incident_count": 0,
      "provider_count": 0
    },
    "job_name": "reporter",
    "message": "incident memory refreshed",
    "status": "success",
    "step": "incidents.refresh",
    "timestamp": "2026-05-30T16:13:56.229615+00:00"
  },
  {
    "data": {
      "reason": "no_provider_summaries"
    },
    "job_name": "reporter",
    "message": "llm recommendation refresh skipped",
    "status": "success",
    "step": "llm.refresh",
    "timestamp": "2026-05-30T16:13:56.229820+00:00"
  },
  {
    "data": {
      "llm_count": 0
    },
    "job_name": "reporter",
    "message": "recommendations prepared",
    "status": "success",
    "step": "recommendations.load",
    "timestamp": "2026-05-30T16:13:56.258618+00:00"
  },
  {
    "job_name": "reporter",
    "message": "reporter dashboard context built",
    "status": "success",
    "step": "context.build",
    "timestamp": "2026-05-30T16:13:56.358479+00:00"
  },
  {
    "data": {
      "output": "/app/reports/index.html",
      "template": "index.html"
    },
    "job_name": "reporter",
    "message": "report rendered",
    "status": "success",
    "step": "report.render",
    "timestamp": "2026-05-30T16:13:56.425834+00:00"
  },
  {
    "data": {
      "duration_ms": 4438
    },
    "job_name": "reporter",
    "message": "report cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T16:13:56.426241+00:00"
  }
]
Show run details
{
  "duration_ms": 4438,
  "events": [
    {
      "job_name": "reporter",
      "message": "report cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T16:13:51.987435+00:00"
    },
    {
      "data": {
        "search_query": ""
      },
      "job_name": "reporter",
      "message": "building reporter dashboard context",
      "status": "running",
      "step": "context.build",
      "timestamp": "2026-05-30T16:13:51.998981+00:00"
    },
    {
      "data": {
        "dashboard_metric_count": 3,
        "metric_count": 4
      },
      "job_name": "reporter",
      "message": "latest quality metrics loaded",
      "status": "success",
      "step": "metrics.load",
      "timestamp": "2026-05-30T16:13:52.021842+00:00"
    },
    {
      "data": {
        "incident_count": 0,
        "provider_count": 0
      },
      "job_name": "reporter",
      "message": "incident memory refreshed",
      "status": "success",
      "step": "incidents.refresh",
      "timestamp": "2026-05-30T16:13:56.229615+00:00"
    },
    {
      "data": {
        "reason": "no_provider_summaries"
      },
      "job_name": "reporter",
      "message": "llm recommendation refresh skipped",
      "status": "success",
      "step": "llm.refresh",
      "timestamp": "2026-05-30T16:13:56.229820+00:00"
    },
    {
      "data": {
        "llm_count": 0
      },
      "job_name": "reporter",
      "message": "recommendations prepared",
      "status": "success",
      "step": "recommendations.load",
      "timestamp": "2026-05-30T16:13:56.258618+00:00"
    },
    {
      "job_name": "reporter",
      "message": "reporter dashboard context built",
      "status": "success",
      "step": "context.build",
      "timestamp": "2026-05-30T16:13:56.358479+00:00"
    },
    {
      "data": {
        "output": "/app/reports/index.html",
        "template": "index.html"
      },
      "job_name": "reporter",
      "message": "report rendered",
      "status": "success",
      "step": "report.render",
      "timestamp": "2026-05-30T16:13:56.425834+00:00"
    },
    {
      "data": {
        "duration_ms": 4438
      },
      "job_name": "reporter",
      "message": "report cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T16:13:56.426241+00:00"
    }
  ],
  "output_name": "index.html",
  "refresh_seconds": 60,
  "report_path": "/app/reports/index.html"
}
analyzer-realtime running 2026-05-30 16:13:50 - - ms -
Page 2 of 4