A NerdPack that lets you see what Alert Conditions are targeting a Synthetics Monitor Entity
Last month, Alerts functionality was removed from the Synthetics UI. The blocker here is it’s no longer possible to see what Synthetic Alert Conditions are targeting a monitor from that Monitors UI. The workaround, if you aren’t already very well organised, requires searching through all your Alert policies for Conditions containing the monitor Name.
@alanbuckley and I decided to see if we could find a workaround for customers while work was being done on the Product to add this functionality to New Relic One.
To show the power of the new Platform we decided to build a NerdPack to replace this functionality as closely as possible to make it more seamless for the User Experience. Not only does this app get information on Single and Multi-Location Conditions targeting the Monitor, it also grabs NRQL Conditions targeting it based on the Monitor Name, ID or general FACETs on both. All the user needs is the account REST API key of the Account that the monitor is provisioned on, but the NerdPack also creates a link to the Account page where you can copy/paste the key from.
At the moment, there is quite a disparity between our REST API’s and NerdGraph. On top of this, our REST API’s use the older Monitor Id whereas NerdGraph uses GUID so collecting all the necessary data together to make this possible involves quite a few steps.
For each monitor the application performs:
- 1 NerdGraph query to get the Account ID
- 1 NerdGraph NRQL Query to get the Monitor ID and Account License Key
- It uses the License Key to auto-detect the Region and make sure EU accounts use EU Rest API endpoints
- 1 NerdGraph query to get all policies associated with the account
- 1 REST API request to validate the API Key
- 2 REST API queries for each policy to pull the conditions
- 4 More NerdGraph queries to fetch data on NRQL Alert Conditions related to the monitor
10+ Requests per Monitor…Dude!
Shout out to Benedicto Tan for doing extensive testing and working with me on improving the functionality to get it ready for Customers. He has already demoed it to one of his customers who has logged the first Feature Request. Ben is already working on this, which will allow Admins to save API Keys for each account which will obfuscate the key from normal users but also remove the need to enter the Key in the app, streamlining the whole process.
Feel free to comment below if you are running into issues deploying this.
This project is now Open-Sourced and available on GitHub: