Hey @mfletcher - that’s a good use case for NRQL alerts.
For your warning threshold, to Alert when there is a failure from your private location a query like below should help:
SELECT count(*) FROM SyntheticCheck WHERE result = 'FAILED' and locationLabel = 'myPrivateLocation'
Your critical threshold is a little more difficult.
Every Synthetics event is a single monitor run, which is from only one location. Therefore a query that features something like:
WHERE locationLabel = 'myPrivateLocation' AND locationLabel in ('publicLocation1', 'publicLocation2', 'publicLocation3')
will not work. Each event cannot come from multiple locations, so the
AND clause in that query will result in it never working.
Alternatively you can use
OR in a query like below:
SELECT count(*) FROM SyntheticCheck WHERE result = 'FAILED' and (locationLabel = 'myPrivateLocation' OR locationLabel in ('publicLocation1', 'publicLocation2', 'publicLocation3'))
You can then run that query on an alert set up as
SUM OF query results > 1 in X Minutes.
Note - This query will alert if any 2 locations fail in your selected time period. This could be 2 public locations, not including your private location too.
Where your requirement is
1 Private Location + 1 or more Public Locations.
Let us know if that helps.