Repository navigation
Conversation
Co-Authored-By: Claude <[email protected]>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
1 Skipped Deployment
|
Co-Authored-By: Claude <[email protected]>
Co-Authored-By: Claude <[email protected]>
…nto tmp-m20051 # Conflicts: # docs/platforms/dotnet/common/crons/quartz/index.mdx
|
The plan checks Quartz crons page loads, .NET client errors, and .NET not-found counts. It also checks Hangfire and crons index loads on the same section. An issue escalates when errors or not-found counts rise, or those sibling pages stop loading. Services: Mention PlanWhat changedThe Quartz.NET crons page now documents MonitorAllJobs and ExcludedJobs. Readers can monitor every scheduled job without a SentryMonitorSlug attribute. sentry-docs must deploy before this copy is live. Production does not yet serve this Quartz page. RiskWrong copy can lead readers to skip job attributes and miss check-ins. A broken code tab can crash the Quartz page in the browser. A missing static path returns 404 for that URL. Shared .NET crons pages can fail if the doc tree breaks. Intended effectThis change is a docs edit. Telemetry cannot confirm the new MonitorAllJobs copy. Loads of the Quartz crons page show only that the page is served. That path has no loads now. Treat the effect as absent if this path stays at zero while sibling crons pages still load.
A zero after deploy can mean no visits. Traffic on this page may stay sparse. Regression watchThis diff can break the Quartz page, its new code tabs, or sibling .NET crons pages. Pair error counts with .NET page loads. Quartz-path errors start at zero because the page is not served.
These sibling counts are small. Escalate if they fall to zero while .NET loads stay near 1200 per 48h. If Quartz error counts rise, inspect code tab exceptions on that page. Not observableThe new MonitorAllJobs headings and sample code are not in telemetry. Customer SDK check-ins from this copy are not visible here. docs.page.not_found stores only the first two path segments, so a Quartz 404 mixes with other .NET 404s. Get Slack DMs about this change: cursor.com/automations/rollouts |
Co-Authored-By: Claude <[email protected]>
…nto danf/dotnet-quartz-bulk-crons-docs # Conflicts: # docs/platforms/dotnet/common/crons/quartz/index.mdx
…nto danf/dotnet-quartz-bulk-crons-docs
…bulk-crons-docs Co-Authored-By: Claude <[email protected]>
|
|
||
| ### Monitor All Jobs | ||
|
|
||
| We recommend monitoring every scheduled job. Set `MonitorAllJobs`, and jobs whose trigger has a schedule Sentry can send are monitored without adding an attribute to each class. Jobs aren't monitored when they're started by a trigger that fires once (such as `TriggerJob`), use a calendar or a cron expression Sentry can't express (`L`, `W`, `#`, or a year), or are built without `WithIdentity`. Jobs whose triggers have different schedules, or that share a slug with a job on a different schedule, aren't monitored either, since Sentry can't create one monitor for them. |
There was a problem hiding this comment.
This list leaves out some jobs MonitorAllJobs skips. A run is only monitored when Sentry can send its trigger's schedule (IsMonitoredByDefault), so these are skipped too:
- Cron expressions without a fixed seconds value, or, on Quartz.NET 3.x, without
?in exactly one of the day fields. - Simple triggers that don't repeat forever at a whole number of minutes, hours or days, such as every 30 seconds or a set number of repeats. A trigger that fires once is only one case.
- Cron triggers whose time zone has no IANA ID (Windows IDs on .NET Framework).
The last one disagrees with Monitor Schedule, which says those triggers are "sent without a schedule". That's true for jobs with [SentryMonitorSlug], but with MonitorAllJobs the job isn't monitored at all.
Rather than repeating the full list here, how about pointing to that section: "Jobs aren't monitored when the trigger that started them has a schedule Sentry can't send (see Monitor Schedule), or when they're built without WithIdentity."
| ``` | ||
|
|
||
| If you delete a monitor while its job still has `[SentryMonitorSlug]`, the next run creates it again. To stop monitoring a job, disable the monitor in Sentry, or remove the attribute. | ||
| If you delete a monitor while its job is still monitored, the next run creates it again. To stop monitoring a job, disable the monitor in Sentry, remove the attribute, or add the job to `ExcludedJobs`. |
There was a problem hiding this comment.
A run only creates the monitor again when its check-in includes a schedule. That isn't the case when SendMonitorConfig is off, or when the trigger's schedule can't be sent. With MonitorAllJobs and SendMonitorConfig = false, for example, a deleted monitor never comes back.
| If you delete a monitor while its job is still monitored, the next run creates it again. To stop monitoring a job, disable the monitor in Sentry, remove the attribute, or add the job to `ExcludedJobs`. | |
| If you delete a monitor while its job is still monitored, the next run that sends a schedule creates it again. To stop monitoring a job, disable the monitor in Sentry, remove the attribute, or add the job to `ExcludedJobs`. |
DESCRIBE YOUR PR
The .NET Quartz.NET Crons page now covers
MonitorAllJobsandExcludedJobs, which monitor every scheduled job without theSentryMonitorSlugattribute.SDK PR: getsentry/sentry-dotnet#5741
Stacked on #19790.
Merge after the SDK release that includes it.
IS YOUR CHANGE URGENT?