Getting data into Moog has always been easy and with our v6 AIOps release, we’ve added yet another super easy way to get your data into Moog’s advanced algorithmics: Webhooks.
What’s a Webhook?
The term has been kicking around since about 2007 and is actually based on a much older word in computer programming: “hook”
A hook in computer programming is just a generic term for some code that gets called when something happens (as in, hey, I’d like to hook into that flow) and it was no surprise that when the web came about that someone coined the term webhook. It means the same thing basically, except that instead of one software component calling another software component’s “hook,” with the web, it’s one website calling another website’s “webhook.” And since most modern product user interfaces are web-based, it really just means one product calling another product’s “webhook” when something happens.
Webhooks even have their own logo:
The term is so generic that it really can mean any triggered action. If thing A happens, automatically and programmatically call webhook B.
For example a restaurant could partner with a food delivery company. The food delivery company could publish a webhook on their website and ask the restaurant to make the restaurant’s website automatically call the webhook everytime a customer places an order on the restaurant’s website.
Another well-known example of webhooks is using them to programmatically send messages to Slack, as documented by Slack here.
Another example, in the DevOps / Continuous Delivery world, is using webhooks to have a CI/CD tool (such as Jenkins) automatically create a build if it detects changes to a code repository (such as GitHub).
In the monitoring and service assurance world, webhooks are commonly used to send alarms from one system to another.
There are numerous examples, such as when configuring alarm actions/automations in Microsoft Azure. The screenshot below shows how simple it is to configure Microsoft Azure to send a webhook to Moogsoft as soon as any alarm is generated in Azure (the example shown below is a Percentage CPU is high alarm). The only config required is simply pasting the Moogsoft AIOps webhook URL into the textbox labeled “Webhook,” as shown below. That’s it! Couldn’t be easier.
Using Webhooks in Moogsoft AIOps
Secret be told, Moog has indirectly supported webhooks all along.
Most modern applications implement webhooks by sending a simple blurb of data in JSON format over HTTPS and Moog’s REST LAMs have always been able to easily receive JSON over HTTPS.
With our v6 AIOps launch and our formal Webhook Solution Pak that ships with, we introduce direct support for webhooks.
Of course in the time-honored tradition of software/protocol design, standards are consistently taunted. The simple blurbs of JSON are always JSON, but often have slightly different field names, etc.
That is no worry for Moogsoft AIOps, we’ve built our Webhook Solution Pak and REST LAMs to easily handle any variations. Simply set “accept_all_json” to true in the config file and then you can easily map ANY field that arrives. As a further convenience we also catch all extra fields into a field named “catchAll” where you can use them easily to your heart’s content for further fun and profit in the Moog Webhook bot!
That’s all there is to it! Joy brought to the world one JSON message at a time!
About the author Dave Casper
Dave Casper is CTO of Americas and VP Global Head of Sales Engineering at Moogsoft. Previously, Dave served as Senior Vice President and Executive Director at several of the world's largest financial institutions, including UBS, Merrill Lynch, Bank of America, and Deutsche Bank.