| name | analyze-job-history-iris |
| description | Run the Iris harbor job-history analyzer (scripts/iris/analyze_iris_harbor_job.py) on a datagen/eval job and read its JSON sidecar for trustworthy throughput / preemption / productive-trial stats. Use whenever a status check needs REAL metrics (gen tok/s, cycles, non_empty rate, harbor exceptions) instead of an eyeballed log tail. It now queries the finelog log store directly (live ∪ GCS, deduped) — FAST (seconds, not minutes) and it ASSERTS completeness across all preempted attempts/generations, failing loud rather than returning fragments. |
analyze-job-history-iris
📍 Iris orientation — read first. Before acting on anything in this skill, read the Iris tools
catalog (.agents/ops/iris/ops.md) and the Iris ops directory (.agents/ops/iris/ — the
CoreWeave GPU particulars in ops.md, the TPU marin particulars in ops.md).
They carry the binding access/preamble/gotchas and the helper-script inventory the steps below rely on.
scripts/iris/analyze_iris_harbor_job.py pulls an Iris job's complete log from the finelog store
(parquet, queried by SQL) — the live deployment ∪ the GCS archive, deduped on the monotonic seq — then
computes: §1 preemption count + time-to-preempt, §2 per-cycle trace progress (from harbor GCS output), §3
serving throughput. It writes a markdown report to --output and a JSON sidecar to <output>.json.
Always read the sidecar with python — never eyeball the markdown.
This is now FAST and COMPLETE (the old "it's slow, page it" recipe is gone)
The analyzer used to paginate iris job logs by time windows — minutes per job, 15+ min on a multi-day job.
It now queries finelog directly: for a training/small job, for a 60 h / 16M-row
datagen job. So: