Add weekly support to VSPC.

This commit is contained in:
Marsell Kukuljevic 2026-06-25 10:55:03 +02:00
parent c9c2130ea6
commit 80c4c33939
3 changed files with 22 additions and 7 deletions

View File

@ -220,7 +220,24 @@ def process(mAgents, bAgents, jobs, restores):
}) })
continue continue
if sched != "Daily": warnDays = 0
critDays = 0
if sched == "Daily":
# We use 1.2 & 2.2 here to give wiggle room for jobs to complete if
# they take longer than expected.
warnDays = 1.2
critDays = 2.2
elif sched == "Weekly":
# Ditto, but for a week
warnDays = 7.2
critDays = 8.2
elif sched == "NotScheduled":
results[host].append({
"status": WARN,
"message": f"Backup agent {bAgentId} job {jobId} is not scheduled."
})
continue
else:
results[host].append({ results[host].append({
"status": WARN, "status": WARN,
"message": f"Backup agent {bAgentId} job {jobId} has scheduleType unknown to CheckMK plugin: {sched}." "message": f"Backup agent {bAgentId} job {jobId} has scheduleType unknown to CheckMK plugin: {sched}."
@ -228,14 +245,12 @@ def process(mAgents, bAgents, jobs, restores):
continue continue
if daysSinceLastRun is not None: if daysSinceLastRun is not None:
# We use 1.2 & 2.2 here to give wiggle room for jobs to complete if if daysSinceLastRun > critDays:
# they take longer than expected.
if daysSinceLastRun > 2.2:
results[host].append({ results[host].append({
"status": CRIT, "status": CRIT,
"message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago." "message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago."
}) })
elif daysSinceLastRun > 1.2: elif daysSinceLastRun > warnDays:
results[host].append({ results[host].append({
"status": WARN, "status": WARN,
"message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago." "message": f"Backup agent {bAgentId} job {jobId} is late! Last backup ran {daysSinceLastRun:.1f} days ago."
@ -254,12 +269,12 @@ def process(mAgents, bAgents, jobs, restores):
timeSinceLastSuccess = datetime.now(timezone.utc) - datetime.fromisoformat(lastRestorePoint) timeSinceLastSuccess = datetime.now(timezone.utc) - datetime.fromisoformat(lastRestorePoint)
daysSinceLastSuccess = timeSinceLastSuccess.seconds / SECONDS_PER_DAY daysSinceLastSuccess = timeSinceLastSuccess.seconds / SECONDS_PER_DAY
if daysSinceLastSuccess > 2.2: if daysSinceLastSuccess > critDays:
results[host].append({ results[host].append({
"status": CRIT, "status": CRIT,
"message": f"Job {jobId} last SUCCESSFULLY ran {daysSinceLastSuccess:.1f} days ago!" "message": f"Job {jobId} last SUCCESSFULLY ran {daysSinceLastSuccess:.1f} days ago!"
}) })
elif daysSinceLastSuccess > 1.2: elif daysSinceLastSuccess > warnDays:
results[host].append({ results[host].append({
"status": WARN, "status": WARN,
"message": f"Job {jobId} last SUCCESSFULLY ran {daysSinceLastSuccess:.1f} days ago!" "message": f"Job {jobId} last SUCCESSFULLY ran {daysSinceLastSuccess:.1f} days ago!"

Binary file not shown.