<div dir="ltr"><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div><div>Hey,<br><br></div>I'm looking for some suggestions for implementing a service check on a redundant host pair that access a shared resource.<br>

<br></div>Here's our setup:<br><br></div>We have N hosts that process (via delayed_job) a shared job queue (mysql/redis).  We have several checks that are host-specific (# of workers on that host), but we also have several checks that examine the shared job queue (# of unprocessed jobs).<br>

<br></div>I have several possible implementations:<br><br>============<br></div>1. Shared Job Queue check on single processing host (current setup)<br>Pros:<br></div></div>* We only get notified once when the shared queue is high<br>

<br>Cons:<br></div>* If the single host goes down, we lose the shared queue check<br><br>============<br></div>2. Shared Job Queue check on all processing hosts<br><br></div>Pros:<br></div>* If a single processing host goes down, the shared queue check still functions<br>

<br>Cons:<br></div>* Multiple emails from hosts when the shared check fails<br><br>============<br></div>3. Shared Job Queue check on job queue host (ie the DB box)<br></div><br></div>Pros:<br></div>* If the DB goes down, you can't reach the queue anyway<br>

</div>* Single email on failure<br><br>Cons:<br></div>* The check requires app knowledge, which requires having the app deployed on the job queue host<br><br></div>How are others adding a check like this?  #2 and just bite the bullet for multiple emails?<br>

<br></div>Thanks<br></div>