Observing a running job
See what a streaming job is doing right now — status, progress, plan.
From Python
import krishiv as ks
session = ks.Session.from_env()
for job in session.jobs():
print(job.id(), job.name(), job.state())
# Or for a specific job handle
handle = session.submit_async(plan)
print(handle.status(), handle.progress())
Explain the plan
df = session.sql("SELECT customer_id, SUM(amount) FROM orders GROUP BY customer_id")
print(df.explain()) # DataFusion logical + physical plan
print(df.explain_logical()) # logical plan only
HTTP endpoints (single-node or distributed)
| Path | Purpose |
|---|---|
GET /healthz | Coordinator liveness. |
GET /readyz | Coordinator readiness. |
GET /metrics | Prometheus metrics (when KRISHIV_METRICS_PORT is set). |
Logs
Set the log filter via KRISHIV_LOG (e.g. info,krishiv_scheduler=debug). The scheduler is the most common place to look first when a job is stuck.