Kubernetes CronJob Monitoring

Monitor Kubernetes CronJobs beyond pod status

Kubernetes marks a CronJob as 'Succeeded' even when your application code exits with an error. Cronping adds application-level monitoring on top of pod-level health — alerting you when your actual script fails, not just when the container exits.

cronjob.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: db-cleanup
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: db-cleanup
            image: your-image:latest
            command: ["/bin/sh", "-c"]
            args:
            - >
              ./cleanup.sh &&
              curl -fsS https://ping.cronping.com/YOUR_TOKEN
          restartPolicy: Never

One line added to your script. Cronping handles the rest.

The cost of silent failures

"Succeeded" pods that actually failed

Kubernetes reports job success at the container level. If your script exits 0 after encountering an application error, Kubernetes sees a successful run. Your data was never processed.

CronJobs skipped under cluster pressure

Under memory pressure or scheduler overload, Kubernetes can skip or delay CronJob executions. The cluster looks healthy. Your job never ran.

startingDeadlineSeconds exceeded silently

If a CronJob misses its startingDeadlineSeconds window (e.g., due to node unavailability), Kubernetes skips that run without raising an alert.

Multi-cluster visibility gaps

Managing CronJob status across prod, staging, and regional clusters requires checking multiple dashboards. One missed run in one cluster can go unnoticed for days.

Set up in under 2 minutes

  1. 1

    Create a heartbeat

    Set up a heartbeat in Cronping with the same cron schedule as your CronJob — e.g., `0 2 * * *`. Set a grace period to account for pod startup time.

  2. 2

    Add the ping to your container command

    Append `curl -fsS https://ping.cronping.com/YOUR_TOKEN` to your container's command. The ping only fires if your script completes successfully.

  3. 3

    Get alerted when jobs fail or are skipped

    If the pod is skipped, the container crashes, or your script fails before the ping, Cronping alerts your team. Application-level health, not just pod health.

Everything you need

No SDK, no dashboard agent, no infrastructure to manage.

Application-level monitoring

Kubernetes knows the pod exited 0. Cronping knows your script actually completed its work. Monitor what matters — not just container health.

Works with any container

Any container with outbound HTTPS access can ping Cronping. No sidecar, no init container, no cluster-level agent needed.

Skipped run detection

If Kubernetes skips a CronJob execution, the ping never fires. Cronping alerts you when the window passes without a check-in — regardless of why.

Grace periods for pod startup

Account for image pull time and pod scheduling latency. Set a grace period so late starts don't trigger false alarms.

90-day run history

Full execution history across all your CronJobs. Identify patterns in failures or slowdowns at a glance.

Multi-cluster dashboard

Monitor CronJobs from production, staging, and regional clusters in a single Cronping dashboard — organized by team and environment.

Frequently asked questions

Kubernetes tells you the pod exited successfully. Cronping tells you your application logic completed its work. If your script exits 0 after silently failing mid-way, Kubernetes reports success — Cronping will alert you because the ping URL was never called.

No. You only need to add the curl command to your container's command args. No additional deployments, no cluster-level changes, no service accounts. The container just needs outbound HTTPS access to ping.cronping.com.

You can use wget instead: `wget -q -O /dev/null https://ping.cronping.com/YOUR_TOKEN`. Alternatively, add curl to your Dockerfile, or use a multi-stage build to include it.

If a previous job is still running when the new one should start, Kubernetes skips the new run. Cronping will detect this as a missed heartbeat and alert you — which is the correct behavior.

You'll need the pods to reach ping.cronping.com. Options include: NAT gateway egress, a proxy pod, or a cluster-internal forwarding service. Most production clusters have some form of controlled egress.

Stop discovering failures when it's too late.

Free to start. No credit card required. Add your first heartbeat in under 5 minutes.