getsentry / team-sdks

A meta repository for tracking work across all SDK teams.
0 stars 0 forks source link

Project: Cron Monitoring #11

Open stephanie-anderson opened 1 year ago

stephanie-anderson commented 1 year ago

Project Board

See our project board to track this initiative across all SDKs

Description

This project is to track that each SDK which can support, and has reasonable demand for Cron Monitors at Sentry, has initial support.

Client Reports

We've recently added support for client reports for Crons using the monitor data category. Adding support to all of our SDKs would be helpful to troubleshoot customers if their check-ins are getting discarded for some reason (network issues, rate limits, etc). The envelope item type for monitor check-ins is check_in and the data category for client reports should be monitor.

Thresholds in Monitor Config (Failure & Recovery)

We've just added two additional fields to Relay (https://github.com/getsentry/relay/pull/2842) allowing customers to provide the following properties in their monitor config:

This is a especially helpful feature for orgs that have lots of monitors and want to configure their monitors programmatically.

Attachments

In Q1, we are planning on implementing the ability to attach files to a check-in and potentially context as well. On attachments, it's likely we'll update the attachment envelope to support a check-in ID or a new envelope dedicated for check-in attachments. We'll discuss with ingest and update with requirements here. The idea is to enable customers to attach log files and other relevant metadata for each job run.

Implementation Overview

### Tasks
- [ ] https://github.com/getsentry/relay/pull/2842
- [ ] https://github.com/getsentry/develop/pull/1108

SDK Overview

### Support for Cron Monitoring
- [x] PHP
- [x] Laravel
- [ ] Symfony
- [x] Python
- [x] Python: Celery
- [x] Node.js
- [x] Next.js
- [x] SvelteKit
- [x] Remix
- [x] Golang
- [x] Java
- [x] Java: Spring boot
- [x] Ruby
- [ ] .NET
### Thresholds in Monitor Config
- [x]
- [ ] https://github.com/getsentry/sentry-java/issues/3131
- [ ] Python SDK
- [ ] Go SDK
- [ ] Java: https://github.com/getsentry/sentry-java/issues/3131
- [ ] Sentry CLI: https://github.com/getsentry/sentry-cli/issues/1919
### Node SDK
- [ ] Support Check-ins
- [ ] Wrapper Support
- [ ] Client Reports
- [ ] https://github.com/getsentry/sentry-javascript/pull/10225
### Python SDK
- [ ] [Python] Client Reports
- [ ] [Python] Support Check-ins
- [ ] [Python] Wrapper Support
### PHP SDK
- [x] [PHP] Support Check-ins
- [x] [PHP] Wrapper Support
- [ ] [PHP] Client Reports
- [ ] https://github.com/getsentry/sentry-php/pull/1685
- [ ] https://github.com/getsentry/sentry-laravel/pull/838
### Laravel SDK
- [x] [Laravel] Support Check-ins
- [x] [Laravel] Wrapper Support
- [ ] [Laravel] Client Reports
- [ ] https://github.com/getsentry/sentry-laravel/pull/838
### Symfony SDK
- [x] [Symfony] Support Check-ins
- [x] [Symfony] Wrapper Support
- [ ] [Symfony] Client Reports
### Ruby SDK
- [x] [Ruby] Support Check-ins
- [x] [Ruby] Upsert
- [x] [Ruby] Heartbeat
- [x] [Ruby] Wrapper Support
- [ ] [Ruby] Client Reports
- [x] [Ruby] Instrument `sidekiq-cron`
- [x] [Ruby] Instrument `sidekiq-scheduler`
### Java SDK
- [x] [Java] Support Check-ins
- [ ] [Java] Client Reports
- [ ] [Java] Wrapper Support
- [ ] https://github.com/getsentry/sentry-java/issues/2875
- [ ] https://github.com/getsentry/sentry-java/issues/3131
- [ ] https://github.com/getsentry/sentry-java/issues/3122
- [ ] https://github.com/getsentry/sentry-java/issues/3165
- [ ] https://github.com/getsentry/sentry-java/issues/2963
### .NET SDK
- [ ] [.NET] Support Check-ins
- [ ] [.NET] Wrapper Support
- [ ] [.NET] Client Reports
- [ ] https://github.com/getsentry/sentry-dotnet/issues/2239
- [ ] https://github.com/getsentry/sentry-dotnet/issues/3150
### Go SDK
- [x] [Go] Support Check-ins
- [x] [Go] Upsert
- [x] [Go] Heartbeat
- [ ] [Go] Wrapper Support
- [ ] [Go] Client Reports
### Elixir SDK
- [ ] [Elixir] Support Check-ins
- [ ] [Elixir] Upsert
- [ ] [Elixir] Heartbeat
- [ ] [Elixir] Wrapper Support
- [ ] [Elixir] Client Reports
### Sentry CLI
- [ ] [CLI] Support Check-ins
- [ ] [CLI] Wrapper Support
- [ ] [CLI] Client Reports
- [ ] https://github.com/getsentry/sentry-cli/issues/1919
smeubank commented 8 months ago

I think it is fair to set this project to done @stephanie-anderson . What do you think?

All relevant platforms are covered for the crons GA, and there are different issues to cover rollout of more specific things

stephanie-anderson commented 8 months ago

Let's merge all the Crons projects into this one, @smeubank. I will go ahead and integrate them

gaprl commented 7 months ago

Should we add Airflow support here as well?