ParkAPI Quality Agent AI triage console

Dashboard

Latest job runs

Generated 2026-05-31 03:58 UTC

Back to overview

Previous job runs

JobStatusStartedFinishedDurationDetails
reporter success 2026-05-30 15:54:50 2026-05-30 15:54:55 4531 ms
Show process log (9 events)
[
  {
    "job_name": "reporter",
    "message": "report cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T15:54:50.745764+00:00"
  },
  {
    "data": {
      "search_query": ""
    },
    "job_name": "reporter",
    "message": "building reporter dashboard context",
    "status": "running",
    "step": "context.build",
    "timestamp": "2026-05-30T15:54:50.758368+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-30T15:54:50.778217+00:00"
  },
  {
    "data": {
      "incident_count": 0,
      "provider_count": 0
    },
    "job_name": "reporter",
    "message": "incident memory refreshed",
    "status": "success",
    "step": "incidents.refresh",
    "timestamp": "2026-05-30T15:54:55.084579+00:00"
  },
  {
    "data": {
      "reason": "no_provider_summaries"
    },
    "job_name": "reporter",
    "message": "llm recommendation refresh skipped",
    "status": "success",
    "step": "llm.refresh",
    "timestamp": "2026-05-30T15:54:55.084780+00:00"
  },
  {
    "data": {
      "llm_count": 0
    },
    "job_name": "reporter",
    "message": "recommendations prepared",
    "status": "success",
    "step": "recommendations.load",
    "timestamp": "2026-05-30T15:54:55.097950+00:00"
  },
  {
    "job_name": "reporter",
    "message": "reporter dashboard context built",
    "status": "success",
    "step": "context.build",
    "timestamp": "2026-05-30T15:54:55.172451+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-30T15:54:55.277004+00:00"
  },
  {
    "data": {
      "duration_ms": 4531
    },
    "job_name": "reporter",
    "message": "report cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T15:54:55.277299+00:00"
  }
]
Show run details
{
  "duration_ms": 4531,
  "events": [
    {
      "job_name": "reporter",
      "message": "report cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T15:54:50.745764+00:00"
    },
    {
      "data": {
        "search_query": ""
      },
      "job_name": "reporter",
      "message": "building reporter dashboard context",
      "status": "running",
      "step": "context.build",
      "timestamp": "2026-05-30T15:54:50.758368+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-30T15:54:50.778217+00:00"
    },
    {
      "data": {
        "incident_count": 0,
        "provider_count": 0
      },
      "job_name": "reporter",
      "message": "incident memory refreshed",
      "status": "success",
      "step": "incidents.refresh",
      "timestamp": "2026-05-30T15:54:55.084579+00:00"
    },
    {
      "data": {
        "reason": "no_provider_summaries"
      },
      "job_name": "reporter",
      "message": "llm recommendation refresh skipped",
      "status": "success",
      "step": "llm.refresh",
      "timestamp": "2026-05-30T15:54:55.084780+00:00"
    },
    {
      "data": {
        "llm_count": 0
      },
      "job_name": "reporter",
      "message": "recommendations prepared",
      "status": "success",
      "step": "recommendations.load",
      "timestamp": "2026-05-30T15:54:55.097950+00:00"
    },
    {
      "job_name": "reporter",
      "message": "reporter dashboard context built",
      "status": "success",
      "step": "context.build",
      "timestamp": "2026-05-30T15:54:55.172451+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-30T15:54:55.277004+00:00"
    },
    {
      "data": {
        "duration_ms": 4531
      },
      "job_name": "reporter",
      "message": "report cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T15:54:55.277299+00:00"
    }
  ],
  "output_name": "index.html",
  "refresh_seconds": 60,
  "report_path": "/app/reports/index.html"
}
fetcher success 2026-05-30 15:54:49 2026-05-30 15:55:07 17968 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-30T15:54:49.294097+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:49.322286+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:50.795939+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:50.796092+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28303
    },
    "job_name": "fetcher",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:55:00.588801+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:55:00.589914+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:55:01.179290+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:01.179450+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots",
      "record_count": 3663
    },
    "job_name": "fetcher",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:01.387844+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:01.388014+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28303
    },
    "job_name": "fetcher",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:03.931756+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:03.931933+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:03.943243+00:00"
  },
  {
    "job_name": "fetcher",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T15:55:03.943359+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 511,
      "parking_spot_record_count": 1379
    },
    "job_name": "fetcher",
    "message": "active realtime parking entities refreshed",
    "status": "success",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T15:55:07.260018+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28303,
        "parking-sites-realtime-active": 511,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 17968
    },
    "job_name": "fetcher",
    "message": "fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T15:55:07.261880+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28303,
    "parking-sites-realtime-active": 511,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 17968,
  "events": [
    {
      "data": {
        "endpoints": [
          "parking-spots",
          "parking-sites",
          "sources"
        ]
      },
      "job_name": "fetcher",
      "message": "fetch cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T15:54:49.294097+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:49.322286+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:50.795939+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:50.796092+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28303
      },
      "job_name": "fetcher",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:55:00.588801+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:55:00.589914+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:55:01.179290+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:01.179450+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots",
        "record_count": 3663
      },
      "job_name": "fetcher",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:01.387844+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:01.388014+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28303
      },
      "job_name": "fetcher",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:03.931756+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:03.931933+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:03.943243+00:00"
    },
    {
      "job_name": "fetcher",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T15:55:03.943359+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 511,
        "parking_spot_record_count": 1379
      },
      "job_name": "fetcher",
      "message": "active realtime parking entities refreshed",
      "status": "success",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T15:55:07.260018+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28303,
          "parking-sites-realtime-active": 511,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 17968
      },
      "job_name": "fetcher",
      "message": "fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T15:55:07.261880+00:00"
    }
  ]
}
analyzer-realtime running 2026-05-30 15:54:49 - - ms -
fetcher-realtime success 2026-05-30 15:54:49 2026-05-30 15:55:06 16845 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-30T15:54:49.294972+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:49.310793+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-30T15:54:50.526873+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:50.527028+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28303
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:59.706293+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:59.706593+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:54:59.769573+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:54:59.769935+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-30T15:55:00.588545+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:00.589604+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28303
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:02.834832+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:02.835039+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:55:02.851222+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T15:55:02.851420+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 511,
      "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-30T15:55:06.137977+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28303,
        "parking-sites-realtime-active": 511,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 16845
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T15:55:06.139898+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28303,
    "parking-sites-realtime-active": 511,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 16845,
  "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-30T15:54:49.294972+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:49.310793+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-30T15:54:50.526873+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:50.527028+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28303
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:59.706293+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:59.706593+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:54:59.769573+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:54:59.769935+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-30T15:55:00.588545+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:00.589604+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28303
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:02.834832+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:02.835039+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:55:02.851222+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T15:55:02.851420+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 511,
        "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-30T15:55:06.137977+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28303,
          "parking-sites-realtime-active": 511,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 16845
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T15:55:06.139898+00:00"
    }
  ],
  "refresh_seconds": 600
}
analyzer running 2026-05-30 15:54:49 - - ms -
fetcher-realtime success 2026-05-30 15:47:47 2026-05-30 15:48:03 15528 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-30T15:47:47.614785+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:47:47.631013+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-30T15:47:48.844468+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:47:48.844633+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-30T15:47:57.397137+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:47:57.397323+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:47:57.454655+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:47:57.454817+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-30T15:47:57.605858+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:47:57.606044+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-30T15:47:59.885414+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:47:59.885613+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:47:59.897867+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T15:47:59.898007+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-30T15:48:03.139571+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 15528
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T15:48:03.141427+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": 15528,
  "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-30T15:47:47.614785+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:47:47.631013+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-30T15:47:48.844468+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:47:48.844633+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-30T15:47:57.397137+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:47:57.397323+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:47:57.454655+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:47:57.454817+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-30T15:47:57.605858+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:47:57.606044+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-30T15:47:59.885414+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:47:59.885613+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:47:59.897867+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T15:47:59.898007+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-30T15:48:03.139571+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 15528
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T15:48:03.141427+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 15:37:31 2026-05-30 15:37:47 15979 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-30T15:37:31.574660+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:37:31.589176+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-30T15:37:32.828333+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:37:32.828555+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28303
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:37:42.059307+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:37:42.059653+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:37:42.118679+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:37:42.118961+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-30T15:37:42.290132+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:37:42.290476+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites",
      "record_count": 28303
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:37:44.419142+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:37:44.419412+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:37:44.430266+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T15:37:44.430412+00:00"
  },
  {
    "data": {
      "parking_site_record_count": 511,
      "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-30T15:37:47.550814+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28303,
        "parking-sites-realtime-active": 511,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 15979
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T15:37:47.552771+00:00"
  }
]
Show run details
{
  "counts": {
    "parking-sites": 28303,
    "parking-sites-realtime-active": 511,
    "parking-spots": 3663,
    "parking-spots-realtime-active": 1379,
    "sources": 67
  },
  "duration_ms": 15979,
  "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-30T15:37:31.574660+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:37:31.589176+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-30T15:37:32.828333+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:37:32.828555+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28303
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:37:42.059307+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:37:42.059653+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:37:42.118679+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:37:42.118961+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-30T15:37:42.290132+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:37:42.290476+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites",
        "record_count": 28303
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:37:44.419142+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:37:44.419412+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:37:44.430266+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T15:37:44.430412+00:00"
    },
    {
      "data": {
        "parking_site_record_count": 511,
        "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-30T15:37:47.550814+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28303,
          "parking-sites-realtime-active": 511,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 15979
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T15:37:47.552771+00:00"
    }
  ],
  "refresh_seconds": 600
}
fetcher-realtime success 2026-05-30 15:27:14 2026-05-30 15:27:31 17050 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-30T15:27:14.467531+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:27:14.478029+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-30T15:27:16.028687+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:27:16.028869+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-30T15:27:26.181186+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "fetching endpoint payload",
    "status": "running",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:27:26.181368+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload fetched",
    "status": "success",
    "step": "endpoint.fetch",
    "timestamp": "2026-05-30T15:27:26.238206+00:00"
  },
  {
    "data": {
      "endpoint": "parking-spots"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:27:26.238371+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-30T15:27:26.390694+00:00"
  },
  {
    "data": {
      "endpoint": "parking-sites"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:27:26.390862+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-30T15:27:28.526327+00:00"
  },
  {
    "data": {
      "endpoint": "sources"
    },
    "job_name": "fetcher-realtime",
    "message": "persisting endpoint payload",
    "status": "running",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:27:28.526513+00:00"
  },
  {
    "data": {
      "endpoint": "sources",
      "record_count": 67
    },
    "job_name": "fetcher-realtime",
    "message": "endpoint payload persisted",
    "status": "success",
    "step": "endpoint.persist",
    "timestamp": "2026-05-30T15:27:28.536987+00:00"
  },
  {
    "job_name": "fetcher-realtime",
    "message": "refreshing active realtime parking entities",
    "status": "running",
    "step": "endpoint.refresh_realtime_sites",
    "timestamp": "2026-05-30T15:27:28.537107+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-30T15:27:31.514741+00:00"
  },
  {
    "data": {
      "counts": {
        "parking-sites": 28304,
        "parking-sites-realtime-active": 512,
        "parking-spots": 3663,
        "parking-spots-realtime-active": 1379,
        "sources": 67
      },
      "duration_ms": 17050
    },
    "job_name": "fetcher-realtime",
    "message": "realtime fetch cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T15:27:31.516602+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": 17050,
  "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-30T15:27:14.467531+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:27:14.478029+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-30T15:27:16.028687+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:27:16.028869+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-30T15:27:26.181186+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "fetching endpoint payload",
      "status": "running",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:27:26.181368+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload fetched",
      "status": "success",
      "step": "endpoint.fetch",
      "timestamp": "2026-05-30T15:27:26.238206+00:00"
    },
    {
      "data": {
        "endpoint": "parking-spots"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:27:26.238371+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-30T15:27:26.390694+00:00"
    },
    {
      "data": {
        "endpoint": "parking-sites"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:27:26.390862+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-30T15:27:28.526327+00:00"
    },
    {
      "data": {
        "endpoint": "sources"
      },
      "job_name": "fetcher-realtime",
      "message": "persisting endpoint payload",
      "status": "running",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:27:28.526513+00:00"
    },
    {
      "data": {
        "endpoint": "sources",
        "record_count": 67
      },
      "job_name": "fetcher-realtime",
      "message": "endpoint payload persisted",
      "status": "success",
      "step": "endpoint.persist",
      "timestamp": "2026-05-30T15:27:28.536987+00:00"
    },
    {
      "job_name": "fetcher-realtime",
      "message": "refreshing active realtime parking entities",
      "status": "running",
      "step": "endpoint.refresh_realtime_sites",
      "timestamp": "2026-05-30T15:27:28.537107+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-30T15:27:31.514741+00:00"
    },
    {
      "data": {
        "counts": {
          "parking-sites": 28304,
          "parking-sites-realtime-active": 512,
          "parking-spots": 3663,
          "parking-spots-realtime-active": 1379,
          "sources": 67
        },
        "duration_ms": 17050
      },
      "job_name": "fetcher-realtime",
      "message": "realtime fetch cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T15:27:31.516602+00:00"
    }
  ],
  "refresh_seconds": 600
}
analyzer-realtime running 2026-05-30 15:26:59 - - ms -
reporter success 2026-05-30 15:17:00 2026-05-30 15:17:00 294 ms
Show process log (9 events)
[
  {
    "job_name": "reporter",
    "message": "report cycle started",
    "status": "running",
    "step": "cycle.start",
    "timestamp": "2026-05-30T15:17:00.507352+00:00"
  },
  {
    "data": {
      "search_query": ""
    },
    "job_name": "reporter",
    "message": "building reporter dashboard context",
    "status": "running",
    "step": "context.build",
    "timestamp": "2026-05-30T15:17:00.516851+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-30T15:17:00.536957+00:00"
  },
  {
    "data": {
      "incident_count": 0,
      "provider_count": 0
    },
    "job_name": "reporter",
    "message": "incident memory refreshed",
    "status": "success",
    "step": "incidents.refresh",
    "timestamp": "2026-05-30T15:17:00.614512+00:00"
  },
  {
    "data": {
      "reason": "no_provider_summaries"
    },
    "job_name": "reporter",
    "message": "llm recommendation refresh skipped",
    "status": "success",
    "step": "llm.refresh",
    "timestamp": "2026-05-30T15:17:00.614623+00:00"
  },
  {
    "data": {
      "llm_count": 0
    },
    "job_name": "reporter",
    "message": "recommendations prepared",
    "status": "success",
    "step": "recommendations.load",
    "timestamp": "2026-05-30T15:17:00.647468+00:00"
  },
  {
    "job_name": "reporter",
    "message": "reporter dashboard context built",
    "status": "success",
    "step": "context.build",
    "timestamp": "2026-05-30T15:17:00.735005+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-30T15:17:00.801109+00:00"
  },
  {
    "data": {
      "duration_ms": 294
    },
    "job_name": "reporter",
    "message": "report cycle completed",
    "status": "success",
    "step": "cycle.finish",
    "timestamp": "2026-05-30T15:17:00.801410+00:00"
  }
]
Show run details
{
  "duration_ms": 294,
  "events": [
    {
      "job_name": "reporter",
      "message": "report cycle started",
      "status": "running",
      "step": "cycle.start",
      "timestamp": "2026-05-30T15:17:00.507352+00:00"
    },
    {
      "data": {
        "search_query": ""
      },
      "job_name": "reporter",
      "message": "building reporter dashboard context",
      "status": "running",
      "step": "context.build",
      "timestamp": "2026-05-30T15:17:00.516851+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-30T15:17:00.536957+00:00"
    },
    {
      "data": {
        "incident_count": 0,
        "provider_count": 0
      },
      "job_name": "reporter",
      "message": "incident memory refreshed",
      "status": "success",
      "step": "incidents.refresh",
      "timestamp": "2026-05-30T15:17:00.614512+00:00"
    },
    {
      "data": {
        "reason": "no_provider_summaries"
      },
      "job_name": "reporter",
      "message": "llm recommendation refresh skipped",
      "status": "success",
      "step": "llm.refresh",
      "timestamp": "2026-05-30T15:17:00.614623+00:00"
    },
    {
      "data": {
        "llm_count": 0
      },
      "job_name": "reporter",
      "message": "recommendations prepared",
      "status": "success",
      "step": "recommendations.load",
      "timestamp": "2026-05-30T15:17:00.647468+00:00"
    },
    {
      "job_name": "reporter",
      "message": "reporter dashboard context built",
      "status": "success",
      "step": "context.build",
      "timestamp": "2026-05-30T15:17:00.735005+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-30T15:17:00.801109+00:00"
    },
    {
      "data": {
        "duration_ms": 294
      },
      "job_name": "reporter",
      "message": "report cycle completed",
      "status": "success",
      "step": "cycle.finish",
      "timestamp": "2026-05-30T15:17:00.801410+00:00"
    }
  ],
  "output_name": "index.html",
  "refresh_seconds": 60,
  "report_path": "/app/reports/index.html"
}
Page 11 of 12