Skip to content

Crons: Celerybeat integration provides invalid Crontab schedule #3131

Open
@gaprl

Description

@gaprl

How do you use Sentry?

Sentry Saas (sentry.io)

Version

2.3.1

Steps to Reproduce

Create a new Celery task with a crontab schedule of "0 0 * * saturday". The monitor for the task won't be upserted in Crons.

Expected Result

The monitor and check-ins should be created in Crons.

Actual Result

This happens because 0 0 * * saturday is not a valid crontab schedule, but it is a valid task schedule in Celery.

This is the complete payload that has failed validation on our end:

{
    "check_in_id": "82f57c609739414a8e21a88165fd52d8",
    "contexts": {
        "trace": {
            "trace_id": "8e424a9d5c7b462b8ccb638b3b9c98cc"
        }
    },
    "duration": 1602.9272508621216,
    "environment": "prod",
    "monitor_config": {
        "schedule": {
            "type": "crontab",
            "value": "0 0 * * saturday"
        },
        "timezone": "UTC"
    },
    "monitor_slug": "schedule-weekly-organization-reports-new",
    "status": "ok"
}

Here's the definition for the task: https://github.com/getsentry/sentry/blob/d92153e4f39810ed5b91a1e5e340a51e3cf507ec/src/sentry/conf/server.py#L1112-L1116

Perhaps we can map these unique Celery schedule definitions to a valid Crontab? Celery also supports solar schedules, so not sure what we want to do there.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    Status

    No status

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions