sentry-ruby icon indicating copy to clipboard operation
sentry-ruby copied to clipboard

Enable setting Cron monitor name

Open sethherr opened this issue 1 year ago • 0 comments

Cron monitors created via Ruby use the slug as the name, and there isn't a way to programatically set the name.

There should be a way to set the name in sentry_monitor_check_ins via the monitor_config.

And ideally, the name should be the name of the class by default (rather than the slug)

Why do you think it's beneficial to most of the users

Slugs are much less readable, because they're only lower case, than the job name.

We've gone through and updated the Cron monitor names to be the job names in Sentry - but having to do that seems unreasonable.

Possible implementation

I don't know what the server API is like, but maybe this can just be added to the Sentry::Cron::MonitorCheckIns sentry_monitor_check_ins method?

def sentry_monitor_check_ins(slug: nil, monitor_config: nil)
  name = monitor_config&.dig(:name) || self.name

  if monitor_config && Sentry.configuration
    cron_config = Sentry.configuration.cron
    monitor_config.checkin_margin ||= cron_config.default_checkin_margin
    monitor_config.max_runtime ||= cron_config.default_max_runtime
    monitor_config.timezone ||= cron_config.default_timezone
  end

  @sentry_monitor_slug = slug
  @sentry_monitor_name = name
  @sentry_monitor_config = monitor_config

  prepend Patch
end

sethherr avatar Apr 05 '24 21:04 sethherr