ref(devserver): Overhaul interplay between kafka consumers and --workers#51664
ref(devserver): Overhaul interplay between kafka consumers and --workers#51664
Conversation
Some of our kafka consumers implicitly started when --workers was not provided, and some of them started even though kafka itself was disabled in sentry.conf.py This new setup removes a ton of duplicated sanity-checks around kafka, and replaces it with one flow: * --workers is required to start ANY Kafka consumer (breaking change) * --ingest requires --workers, because without --workers there's no ingest consumer (breaking change) * Relay is not started without --workers (plain devserver literally only starts webpack and uwsgi no matter what) (also breaking change) * Random product feature flags append to kafka_consumers list * If that list ends up being non-empty but we find no kafka/zookeeper containers, we tell the user to fix it (use kafka eventstream or SENTRY_USE_RELAY)
|
tagging some random teams that I think deal most with kafka consumers in sentry |
Codecov Report
Additional details and impacted files@@ Coverage Diff @@
## master #51664 +/- ##
=========================================
+ Coverage 79.80 81.31 +1.51
=========================================
Files 4873 4899 +26
Lines 205257 205744 +487
Branches 11068 11068
=========================================
+ Hits 163797 167287 +3490
+ Misses 41215 38212 -3003
Partials 245 245 |
Should this be implicit? Having just
|
this PR makes devserver explicitly reject --ingest without --workers. would you prefer it to implicitly enable --workers? |
Yeah, Instead of having to write out both options, |
|
Done! |
Some of our kafka consumers implicitly started when --workers was not
provided, and some of them started even though kafka itself was disabled
in sentry.conf.py. This causes great confusion because in the case of
getsentry outcomes consumer, we started a consumer without ensuring kafka
was running.
This new setup removes a ton of duplicated sanity-checks around kafka,
and replaces it with one flow:
ingest consumer (breaking change)
starts webpack and uwsgi no matter what) (also breaking change)
containers, we tell the user to fix it (use kafka eventstream or
SENTRY_USE_RELAY)