My database died on Tuesday. I found out on Sunday. So now a local model reads my Oracle logs while I sleep
Description and use
Night Shift automatically parses Oracle logs, identifies critical issues, and outputs a concise two‑line summary each morning, ensuring timely notification of outages without manual log review.
Problem
A lab Oracle database crashed on Tuesday and was not discovered until Sunday, causing a silent outage with no alerts.
Outcome
Night Shift automatically detects silent outages, summarizes critical issues in two lines, and reliably delivers the brief each morning, reducing manual log review and preventing missed incidents.
Workflow
- 1. Temporal schedule triggers Night Shift at 06:00 America/Chicago.
- 2. Each database log is read in a separate activity with retries.
- 3. Logs are parsed by logs.py into timestamped entries and classified as Critical, Look today, or Routine.
- 4. Critical findings are aggregated; deadlock traces are parsed for session info.
- 5. A small JSON digest is sent to Gemma 4 on Ollama to generate a two‑line summary.
- 6. The summary is validated for format and content; if invalid, a template fallback is used.
- 7. The brief and full list are written to a Markdown file and a desktop notification is sent.
Evidence
On Tuesday afternoon at 18:39 UTC, a background process in one of my lab databases died:
Night Shift reads your Oracle alert and listener logs overnight and leaves you two lines in the morning.
A Temporal Schedule starts it at 06:00 America/Chicago, with the overlap policy set to skip.
- Record date: 2026-10-26T01:11:40.578Z