Cron monitoring for Java services
One annotation. Then you know.
Marsolen reads the schedule off your @Scheduled method, so it
already knows when the next run is due. If the ping does not arrive, the team that owns
the job hears about it.
Free for 5 monitors · no credit card · Boot 3.5 and 4.1
ReportJob.java
@Componentclass ReportJob { @Scheduled(cron = "0 0 3 * * *", zone = "Europe/Paris") @MonitoredSchedule("nightly-report") void generateNightly() { reports.nightly(); }}
nightly-report
Down 42m
44 runs
expected 03:00 Europe/Paris
Ingest budget · p99
50ms
Overdue sweep
30s
Ping timeout in your JVM
2s, non-blocking
Dependencies added
0transitive
Two lines in the job you already have
Add the starter once per service. Every annotated method registers itself when your service starts, with its cron expression and zone already known.
ReportJob.java
1@Component2class ReportJob {3 4 @Scheduled(cron = "0 0 3 * * *", zone = "Europe/Paris")5 @MonitoredSchedule("nightly-report")6 void generateNightly() {7 reports.nightly();8 }9}
ReportQuartzJob.java
1public class ReportQuartzJob implements Job {2 3 @Override4 @MonitoredSchedule("nightly-report")5 public void execute(JobExecutionContext ctx) {6 reports.nightly();7 }8}
pom.xml
1<dependency>2 <groupId>io.marsolen</groupId>3 <artifactId>marsolen-spring-boot-starter</artifactId>4 <version>0.1.0</version>5</dependency>
application.properties
1marsolen.enabled=true2marsolen.base-url=https://marsolen.com3marsolen.timeout=2s
Spring Boot 3.5 and 4.1
Java 17 and up
Quartz and plain cron
Never blocks your job
Three places to be told
Verified addresses only, so an alert cannot land in a mailbox nobody reads.
Webhook
JSON on state change, retried with backoff. Private address ranges are refused.
Slack
One incoming webhook per channel. Down, and again on recovery. Nothing else.
Priced per monitor
Free
$0
Your own jobs, one service.
- 5 monitors
- Email alerts
- 7-day ping history
Pro
Most teams$19/ month
One product team's batch estate.
- 50 monitors
- Email, webhook, Slack
- 90-day ping history
- Grace period per monitor
Scale
$49/ month
Many services, one bill.
- 250 monitors
- 1-year ping history
- Per-monitor webhook targets