ProductDocumentationExamplesBlogRoadmapGitHubGet Started
Preview

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)

PathPurpose
GET /healthzCoordinator liveness.
GET /readyzCoordinator readiness.
GET /metricsPrometheus 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.