getsentry / getsentry/sentry-ruby

Enable setting Cron monitor name

Open
#2,290 0 comments 0 reactions 1 assignee Claimed by @sl0thentr0py View on GitHub
Crons Improvement Ruby
Dominant language
Ruby
Stars
987
Forks
541
Avg merge
17h 40m
Merged PRs (30d)
19

Description

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?

```ruby
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
```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.