getsentry / getsentry/sentry-java

@SentryCheckIn on @Scheduled methods should support monitor upsert via cron expression

Abierto
#5,467 2 comentarios 0 reacciones 0 asignados Ver en GitHub
Bug Checks Java Platform: Java
Lenguaje dominante
Kotlin
Estrellas
1.4k
Forks
478
Merge medio
2 d 23 h
PR fusionados (30 d)
67

Descripción

### Integration

sentry

### Java Version

21

### Other Error Monitoring Solution

No

### Other Error Monitoring Solution Name

_No response_

### Version

8.41.0 (sentry-spring-boot-4, sentry-spring-7)

### Steps to Reproduce

I am using Spring Boot: 4.0.6

1. Annotate a @Scheduled method with @SentryCheckIn("my-monitor-slug") — do not pre-create the monitor in Sentry
2. Deploy and run the application
3. The scheduled method fires and a check-in is sent

### Expected Result

Since the method is already annotated with @Scheduled(cron = "0 0 4 * * *", zone = "Europe/Berlin"), the Spring integration has all the information needed to auto-create (upsert) the monitor on first check-in. The 6-field Spring cron should be converted to the 5-field Sentry cron format and included in the check-in payload as a MonitorConfig.

### Actual Result

Check-ins fail with the following error in Sentry:

> A check-in was sent for a monitor that does not exist.
If you meant to create a new monitor via upsert, please provide
a valid monitor configuration in the check-in payload.

Additionally, even when creating the monitor manually in the Sentry UI, the cron expression cannot be copied directly from @Scheduled — Spring uses a 6-field cron format (prepended seconds field, e.g. 0 0 4 * * *) while Sentry only accepts the standard 5-field Unix cron format (e.g. 0 4 * * *). This is an undocumented mismatch that requires the developer to know about and manually convert the expression.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.