Geo: Put "sync jobs" in "network-intensive" queue, and use higher alerting thresholds
I think it makes sense to use this on at least "sync jobs" because in that case, the secondary has no control over how long it will take to download the file or fetch the repo, and it can legitimately be on the order of hours.
Using worker_has_external_dependencies!
will have the following effect:
Most external dependencies (such as web-hooks) do not provide SLOs, and therefore we cannot guarantee the execution latencies on these jobs. Since we cannot guarantee execution latency, we cannot ensure throughput and therefore, in high-traffic environments, we need to ensure that jobs with external dependencies are separated from high urgency jobs, to ensure throughput on those queues.
Errors in jobs with external dependencies have higher alerting thresholds as there is a likelihood that the cause of the error is external.
Implementation Guide
-
Add worker_has_external_dependencies!
toGeo::ProjectSyncWorker
-
Add worker_has_external_dependencies!
toGeo::ContainerRepositorySyncWorker
-
Add worker_has_external_dependencies!
toGeo::DesignRepositorySyncWorker
-
Add worker_has_external_dependencies!
toGeo::MetricsUpdateWorker
-
Open follow up issue to introduce Geo::ReplicationWorker
forGeo::RegistrySyncWorker
to enqueue instead ofGeo::EventWorker
. Useworker_has_external_dependencies!
in the new worker.