- How do I track which background job fails most without a monitoring service?
- Log one row per run — job name, status, duration, timestamp — with a `POST /v1/run` parameterised insert (`GLOBAL-015`) from your job's exit hook, then ask 'failure rate per job this week' in English. nlqdb compiles the GROUP BY, runs it in Postgres, and shows the SQL. The honest limit: you write the run records; nlqdb stores and queries them, it doesn't run or watch your jobs.
- Why not just grep my scheduler or cron logs?
- Because the questions are aggregations — failures per job, p95 duration, runs per day — and grepping flat logs to tally them by hand is fragile and slow as run volume grows. Asking an LLM to count a log hallucinates. nlqdb runs the GROUP BY in Postgres and shows you the SQL it ran, so you can trust the grain.
- Is this a replacement for a cron-monitoring tool like Healthchecks.io or Cronitor?
- No — those ping a heartbeat URL and alert you when a job *doesn't* run, with dead-man's-switch logic built for it. nlqdb is the database half: you log each run that did happen and get a SQL query planner over it for 'per job / per week' reliability questions. They compose; nlqdb doesn't watch for missing runs or page you.
- Can I see the SQL behind a job's failure rate?
- Always — every answer returns the result rows plus the compiled SQL under a trace toggle (`SK-WEB-005`), so you can check the grain (per run vs per job) before trusting a failure rate. nlqdb never hides the SQL behind the answer.