Features

Bulk Import

Already have cron jobs running? Import them all at once from your crontab or Kubernetes CronJob manifests. Preview before importing and pick exactly which entries to create.

Bulk import lets you create monitors from existing infrastructure definitions instead of adding them manually. DeadPing parses crontab files and Kubernetes CronJob YAML manifests, extracts job names and schedules, and creates monitors with a single click after you preview the results.

Using the Dashboard

The easiest way to bulk import is through the dashboard UI at /dashboard/import. Paste your crontab or Kubernetes YAML, preview the parsed entries, and select which monitors to create.

  1. Navigate to Dashboard → Import
  2. Select the format: Crontab or Kubernetes YAML
  3. Paste your configuration
  4. Review the parsed entries in the preview table
  5. Deselect any entries you don't want to import
  6. Click Import Selected

Crontab Format

Paste the output of crontab -l. DeadPing parses each line to extract the cron expression and uses the command name as the monitor name. Comments and blank lines are ignored.

crontab
# Database backup - runs every 5 minutes
*/5 * * * * /usr/bin/backup-db.sh

# Nightly report generation
0 2 * * * /usr/local/bin/nightly-report.py

# Health check every 6 hours
0 */6 * * * /opt/scripts/health-check.sh

# Weekly cleanup on Sundays at midnight
0 0 * * 0 /usr/bin/weekly-cleanup.sh

This would create four monitors named backup-db.sh, nightly-report.py, health-check.sh, and weekly-cleanup.sh with their respective schedules.

Kubernetes YAML Format

Paste one or more Kubernetes CronJob manifests. DeadPing extracts the schedule from spec.schedule and the monitor name from metadata.name.

kubernetes.yaml
apiVersion: batch/v1
kind: CronJob
metadata:
  name: nightly-backup
spec:
  schedule: "0 2 * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: backup
              image: my-backup:latest
              command: ["./backup.sh"]
---
apiVersion: batch/v1
kind: CronJob
metadata:
  name: hourly-sync
spec:
  schedule: "0 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
            - name: sync
              image: my-sync:latest
              command: ["./sync.sh"]

This would create two monitors: nightly-backup with a 0 2 * * * schedule and hourly-sync with a 0 * * * * schedule.

API Endpoint

You can also import monitors programmatically via the API:

POST /api/monitors/import

bash
# Import from crontab
curl -X POST https://deadping.io/api/monitors/import \
  -H "X-API-Key: dp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "format": "crontab",
    "content": "*/5 * * * * /usr/bin/backup-db.sh
0 2 * * * /usr/local/bin/nightly-report.py"
  }'
bash
# Import from Kubernetes YAML
curl -X POST https://deadping.io/api/monitors/import \
  -H "X-API-Key: dp_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "format": "kubernetes",
    "content": "apiVersion: batch/v1
kind: CronJob
metadata:
  name: nightly-backup
spec:
  schedule: "0 2 * * *"
..."
  }'

What Gets Parsed

FormatMonitor NameSchedule
CrontabCommand filename (e.g. backup-db.sh)Cron expression from the line
Kubernetesmetadata.namespec.schedule

Tips

  • Import counts against your plan's monitor limit (Free: 20, Pro: 100, Business: 200)
  • Duplicate names are allowed – DeadPing will create separate monitors for each entry
  • After importing, you'll need to add the ping curl command to each job's script using the generated token
  • Use the preview step to verify that cron expressions were parsed correctly before importing