ParkAPI Quality Agent AI triage console

Dashboard

Latest job runs

Generated 2026-05-30 19:08 UTC

Back to overview

Previous job runs

JobStatusStartedFinishedDurationDetails
fetcher-realtime success 2026-05-30 19:04:55 2026-05-30 19:05:11 15946 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-30T19:04:55.549840+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T19:04:55.561260+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-30T19:04:56.627101+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T19:04:56.627284+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-30T19:05:05.978539+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T19:05:05.978805+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T19:05:06.036885+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T19:05:06.037045+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-30T19:05:06.232496+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T19:05:06.232724+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-30T19:05:08.548332+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T19:05:08.548827+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T19:05:08.568504+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T19:05:08.568710+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-30T19:05:11.493139+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 15946
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T19:05:11.495543+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": 15946,
  "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-30T19:04:55.549840+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T19:04:55.561260+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-30T19:04:56.627101+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T19:04:56.627284+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-30T19:05:05.978539+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T19:05:05.978805+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T19:05:06.036885+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T19:05:06.037045+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-30T19:05:06.232496+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T19:05:06.232724+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-30T19:05:08.548332+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T19:05:08.548827+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T19:05:08.568504+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T19:05:08.568710+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-30T19:05:11.493139+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 15946
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T19:05:11.495543+00:00"
    }
  ],
  "refresh_seconds": 600
}
reporter success 2026-05-30 19:01:45 2026-05-30 19:01:47 2266 ms
Show process log (9 events)
[
  {
    "job_name": "reporter",
    "message": "report cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T19:01:45.408958+00:00"
  },
  {
    "data": {
      "search_query": ""
    },
    "job_name": "reporter",
    "message": "building reporter dashboard context",
    "status": "running",
    "step": "context.build",
    "timestamp": "2026-05-30T19:01:45.419892+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-30T19:01:45.431102+00:00"
  },
  {
    "data": {
      "incident_count": 0,
      "provider_count": 0
    },
    "job_name": "reporter",
    "message": "incident memory refreshed",
    "status": "success",
    "step": "incidents.refresh",
    "timestamp": "2026-05-30T19:01:47.599469+00:00"
  },
  {
    "data": {
      "reason": "no_provider_summaries"
    },
    "job_name": "reporter",
    "message": "llm recommendation refresh skipped",
    "status": "success",
    "step": "llm.refresh",
    "timestamp": "2026-05-30T19:01:47.599690+00:00"
  },
  {
    "data": {
      "llm_count": 0
    },
    "job_name": "reporter",
    "message": "recommendations prepared",
    "status": "success",
    "step": "recommendations.load",
    "timestamp": "2026-05-30T19:01:47.613023+00:00"
  },
  {
    "job_name": "reporter",
    "message": "reporter dashboard context built",
    "status": "success",
    "step": "context.build",
    "timestamp": "2026-05-30T19:01:47.673996+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-30T19:01:47.675060+00:00"
  },
  {
    "data": {
      "duration_ms": 2266
    },
    "job_name": "reporter",
    "message": "report cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T19:01:47.675837+00:00"
  }
]
Show run details
{
  "duration_ms": 2266,
  "events": [
    {
      "job_name": "reporter",
      "message": "report cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T19:01:45.408958+00:00"
    },
    {
      "data": {
        "search_query": ""
      },
      "job_name": "reporter",
      "message": "building reporter dashboard context",
      "status": "running",
      "step": "context.build",
      "timestamp": "2026-05-30T19:01:45.419892+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-30T19:01:45.431102+00:00"
    },
    {
      "data": {
        "incident_count": 0,
        "provider_count": 0
      },
      "job_name": "reporter",
      "message": "incident memory refreshed",
      "status": "success",
      "step": "incidents.refresh",
      "timestamp": "2026-05-30T19:01:47.599469+00:00"
    },
    {
      "data": {
        "reason": "no_provider_summaries"
      },
      "job_name": "reporter",
      "message": "llm recommendation refresh skipped",
      "status": "success",
      "step": "llm.refresh",
      "timestamp": "2026-05-30T19:01:47.599690+00:00"
    },
    {
      "data": {
        "llm_count": 0
      },
      "job_name": "reporter",
      "message": "recommendations prepared",
      "status": "success",
      "step": "recommendations.load",
      "timestamp": "2026-05-30T19:01:47.613023+00:00"
    },
    {
      "job_name": "reporter",
      "message": "reporter dashboard context built",
      "status": "success",
      "step": "context.build",
      "timestamp": "2026-05-30T19:01:47.673996+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-30T19:01:47.675060+00:00"
    },
    {
      "data": {
        "duration_ms": 2266
      },
      "job_name": "reporter",
      "message": "report cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T19:01:47.675837+00:00"
    }
  ],
  "output_name": "index.html",
  "refresh_seconds": 60,
  "report_path": "/app/reports/index.html"
}
fetcher-realtime success 2026-05-30 18:54:39 2026-05-30 18:54:55 15558 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-30T18:54:39.936334+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:54:39.948755+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-30T18:54:40.961683+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:54:40.961874+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-30T18:54:50.627632+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:54:50.627810+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:54:50.684458+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:54:50.684612+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-30T18:54:50.856281+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:54:50.856496+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-30T18:54:52.946988+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:54:52.947189+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:54:52.958646+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:54:52.958818+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 198
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:54:55.491281+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 198,
        "sources": 67
      },
      "duration_ms": 15558
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T18:54:55.492365+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 198,
    "sources": 67
  },
  "duration_ms": 15558,
  "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-30T18:54:39.936334+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:54:39.948755+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-30T18:54:40.961683+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:54:40.961874+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-30T18:54:50.627632+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:54:50.627810+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:54:50.684458+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:54:50.684612+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-30T18:54:50.856281+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:54:50.856496+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-30T18:54:52.946988+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:54:52.947189+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:54:52.958646+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:54:52.958818+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 198
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:54:55.491281+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 198,
          "sources": 67
        },
        "duration_ms": 15558
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T18:54:55.492365+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 18:44:23 2026-05-30 18:44:39 16390 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-30T18:44:23.474339+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:44:23.488776+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-30T18:44:24.791443+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:44:24.791667+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-30T18:44:34.380071+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:44:34.380358+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:44:34.636411+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:44:34.636579+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-30T18:44:34.812078+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:44:34.812320+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-30T18:44:37.130890+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:44:37.131083+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:44:37.145484+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:44:37.145662+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 198
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:44:39.861214+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 198,
        "sources": 67
      },
      "duration_ms": 16390
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T18:44:39.862793+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 198,
    "sources": 67
  },
  "duration_ms": 16390,
  "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-30T18:44:23.474339+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:44:23.488776+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-30T18:44:24.791443+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:44:24.791667+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-30T18:44:34.380071+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:44:34.380358+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:44:34.636411+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:44:34.636579+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-30T18:44:34.812078+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:44:34.812320+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-30T18:44:37.130890+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:44:37.131083+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:44:37.145484+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:44:37.145662+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 198
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:44:39.861214+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 198,
          "sources": 67
        },
        "duration_ms": 16390
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T18:44:39.862793+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 18:34:07 2026-05-30 18:34:23 16061 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-30T18:34:07.344165+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:34:07.354139+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-30T18:34:08.835459+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:34:08.835759+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-30T18:34:18.275446+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:34:18.276133+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:34:18.357345+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:34:18.357908+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-30T18:34:18.542653+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:34:18.543036+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-30T18:34:20.802155+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:34:20.802666+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:34:20.815203+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:34:20.815360+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 198
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:34:23.402873+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 198,
        "sources": 67
      },
      "duration_ms": 16061
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T18:34:23.404062+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 198,
    "sources": 67
  },
  "duration_ms": 16061,
  "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-30T18:34:07.344165+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:34:07.354139+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-30T18:34:08.835459+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:34:08.835759+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-30T18:34:18.275446+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:34:18.276133+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:34:18.357345+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:34:18.357908+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-30T18:34:18.542653+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:34:18.543036+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-30T18:34:20.802155+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:34:20.802666+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:34:20.815203+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:34:20.815360+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 198
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:34:23.402873+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 198,
          "sources": 67
        },
        "duration_ms": 16061
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T18:34:23.404062+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 18:23:51 2026-05-30 18:24:07 16045 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-30T18:23:51.223268+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:23:51.233261+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-30T18:23:52.464684+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:23:52.464886+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-30T18:24:01.479244+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:24:01.479431+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:24:01.537845+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:24:01.537994+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-30T18:24:01.721811+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:24:01.722007+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-30T18:24:04.073056+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:24:04.073290+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:24:04.086609+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:24:04.086792+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-30T18:24:07.264848+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 16045
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T18:24:07.266864+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": 16045,
  "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-30T18:23:51.223268+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:23:51.233261+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-30T18:23:52.464684+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:23:52.464886+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-30T18:24:01.479244+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:24:01.479431+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:24:01.537845+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:24:01.537994+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-30T18:24:01.721811+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:24:01.722007+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-30T18:24:04.073056+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:24:04.073290+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:24:04.086609+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:24:04.086792+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-30T18:24:07.264848+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 16045
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T18:24:07.266864+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 18:13:34 2026-05-30 18:13:51 16199 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-30T18:13:34.965180+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:13:34.981525+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-30T18:13:36.304635+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:13:36.304820+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-30T18:13:45.157003+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:13:45.157181+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:13:45.215180+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:13:45.215332+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-30T18:13:45.405152+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:13:45.405372+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-30T18:13:47.647893+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:13:47.648161+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:13:47.660153+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:13:47.660283+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 512,
      "parking_spot_record_count": 198
    },
    "job_name": "fetcher-realtime",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:13:51.162123+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 198,
        "sources": 67
      },
      "duration_ms": 16199
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T18:13:51.163176+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28304,
    "parking-sites-realtime-active": 512,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 198,
    "sources": 67
  },
  "duration_ms": 16199,
  "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-30T18:13:34.965180+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:13:34.981525+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-30T18:13:36.304635+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:13:36.304820+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-30T18:13:45.157003+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:13:45.157181+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:13:45.215180+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:13:45.215332+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-30T18:13:45.405152+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:13:45.405372+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-30T18:13:47.647893+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:13:47.648161+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:13:47.660153+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:13:47.660283+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 512,
        "parking_spot_record_count": 198
      },
      "job_name": "fetcher-realtime",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:13:51.162123+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 198,
          "sources": 67
        },
        "duration_ms": 16199
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T18:13:51.163176+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 18:03:18 2026-05-30 18:03:34 16137 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-30T18:03:18.771116+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:03:18.787681+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-30T18:03:20.042541+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:03:20.042737+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-30T18:03:29.430700+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:03:29.430876+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T18:03:29.488462+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:03:29.488620+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-30T18:03:29.651437+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:03:29.651615+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-30T18:03:31.828934+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:03:31.829144+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T18:03:31.840994+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T18:03:31.841178+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-30T18:03:34.905488+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 16137
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T18:03:34.907319+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": 16137,
  "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-30T18:03:18.771116+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:03:18.787681+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-30T18:03:20.042541+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:03:20.042737+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-30T18:03:29.430700+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:03:29.430876+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T18:03:29.488462+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:03:29.488620+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-30T18:03:29.651437+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:03:29.651615+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-30T18:03:31.828934+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:03:31.829144+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T18:03:31.840994+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T18:03:31.841178+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-30T18:03:34.905488+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 16137
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T18:03:34.907319+00:00"
    }
  ],
  "refresh_seconds": 600
}
reporter success 2026-05-30 18:01:43 2026-05-30 18:01:45 2227 ms
Show process log (9 events)
[
  {
    "job_name": "reporter",
    "message": "report cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T18:01:43.172074+00:00"
  },
  {
    "data": {
      "search_query": ""
    },
    "job_name": "reporter",
    "message": "building reporter dashboard context",
    "status": "running",
    "step": "context.build",
    "timestamp": "2026-05-30T18:01:43.182987+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-30T18:01:43.193592+00:00"
  },
  {
    "data": {
      "incident_count": 0,
      "provider_count": 0
    },
    "job_name": "reporter",
    "message": "incident memory refreshed",
    "status": "success",
    "step": "incidents.refresh",
    "timestamp": "2026-05-30T18:01:45.323817+00:00"
  },
  {
    "data": {
      "reason": "no_provider_summaries"
    },
    "job_name": "reporter",
    "message": "llm recommendation refresh skipped",
    "status": "success",
    "step": "llm.refresh",
    "timestamp": "2026-05-30T18:01:45.324010+00:00"
  },
  {
    "data": {
      "llm_count": 0
    },
    "job_name": "reporter",
    "message": "recommendations prepared",
    "status": "success",
    "step": "recommendations.load",
    "timestamp": "2026-05-30T18:01:45.331951+00:00"
  },
  {
    "job_name": "reporter",
    "message": "reporter dashboard context built",
    "status": "success",
    "step": "context.build",
    "timestamp": "2026-05-30T18:01:45.397177+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-30T18:01:45.398426+00:00"
  },
  {
    "data": {
      "duration_ms": 2227
    },
    "job_name": "reporter",
    "message": "report cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T18:01:45.399169+00:00"
  }
]
Show run details
{
  "duration_ms": 2227,
  "events": [
    {
      "job_name": "reporter",
      "message": "report cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T18:01:43.172074+00:00"
    },
    {
      "data": {
        "search_query": ""
      },
      "job_name": "reporter",
      "message": "building reporter dashboard context",
      "status": "running",
      "step": "context.build",
      "timestamp": "2026-05-30T18:01:43.182987+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-30T18:01:43.193592+00:00"
    },
    {
      "data": {
        "incident_count": 0,
        "provider_count": 0
      },
      "job_name": "reporter",
      "message": "incident memory refreshed",
      "status": "success",
      "step": "incidents.refresh",
      "timestamp": "2026-05-30T18:01:45.323817+00:00"
    },
    {
      "data": {
        "reason": "no_provider_summaries"
      },
      "job_name": "reporter",
      "message": "llm recommendation refresh skipped",
      "status": "success",
      "step": "llm.refresh",
      "timestamp": "2026-05-30T18:01:45.324010+00:00"
    },
    {
      "data": {
        "llm_count": 0
      },
      "job_name": "reporter",
      "message": "recommendations prepared",
      "status": "success",
      "step": "recommendations.load",
      "timestamp": "2026-05-30T18:01:45.331951+00:00"
    },
    {
      "job_name": "reporter",
      "message": "reporter dashboard context built",
      "status": "success",
      "step": "context.build",
      "timestamp": "2026-05-30T18:01:45.397177+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-30T18:01:45.398426+00:00"
    },
    {
      "data": {
        "duration_ms": 2227
      },
      "job_name": "reporter",
      "message": "report cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T18:01:45.399169+00:00"
    }
  ],
  "output_name": "index.html",
  "refresh_seconds": 60,
  "report_path": "/app/reports/index.html"
}
fetcher-realtime success 2026-05-30 17:53:01 2026-05-30 17:53:18 17449 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:53:01.263780+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:53:01.275072+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:53:02.925968+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:53:02.926157+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:53:13.160208+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T17:53:13.160385+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:53:13.219874+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:53:13.220040+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:53:13.378743+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:53:13.378912+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:53:15.489350+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T17:53:15.489558+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:53:15.500949+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T17:53:15.501148+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:53:18.709352+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 17449
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T17:53:18.711391+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": 17449,
  "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:53:01.263780+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:53:01.275072+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:53:02.925968+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:53:02.926157+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:53:13.160208+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T17:53:13.160385+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:53:13.219874+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:53:13.220040+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:53:13.378743+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:53:13.378912+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:53:15.489350+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T17:53:15.489558+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:53:15.500949+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T17:53:15.501148+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:53:18.709352+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 17449
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T17:53:18.711391+00:00"
    }
  ],
  "refresh_seconds": 600
}
Page 1 of 5