One of the things I absolutely love about my job is getting to work/play with our many partners and their cool solutions. So, when a business friend of mine recently reached out to ask me if I knew much about integrating Datadog with F5 I was thrilled to reply, “Ah...not much”. Guess it’s time to play.
In this two-part series we’ll take a look at two integrations utilizing F5 and Datadog services. To start with we’ll configure our Datadog account to send alert notifications to F5’s application visibility and monitoring service, F5 Beacon. For the second integration, we’ll walk through configuring the F5 BIG-IP with Telemetry Streaming to steam log data to Datadog.
F5 Beacon & Datadog Synthetics
What’s “F5 Beacon” all about?
F5 Beacon is one of F5 Cloud Services latest SaaS offerings providing holistic application visibility. F5 Beacon ingests and merges telemetry data from various sources to provide end-to-end monitoring of the application from a single pane of glass.
For this walk through I’ll be ingesting Datadog Synthetic notifications into F5 Beacon. The notification stream will in-turn be utilized as a health monitor for my application, (https://app.aserracorp.com).
Datadog is a SaaS analytics vendor, (and partner of F5) providing several cloud-scale monitoring services including application performance monitoring, (APM), network monitoring, log management, synthetic application monitoring and more.
I’ll be using a Datadog Synthetic test to monitor my backend application server. The Test results will be delivered to my F5 Beacon monitoring service for increased application health visibility.
F5 Beacon Account- F5 Beacon is an F5 Cloud Services SaaS offering. F5 does offer a 45-day free trial which is a great way to check it out for yourself.
Datadog Account - Datadog offers a SaaS based monitoring service. Similar to F5 Beacon, Datadog offers a 14-day trial.
Step 1 - Generate an F5 Beacon Telemetry Token
Alert notifications triggered by a Datadog Synthetic test will be periodically delivered to my F5 Beacon service. This will be accomplished through webhooks which i’ll configure in my Datadog portal, (more of that later). An authorization token must accompany each notification.
This is a good place to mention the majority of the configurations I’ll be doing with F5 Beacon can be accomplished either with direct API calls or via the GUI portal. For convenience, I’ve included a Postman collection at the bottom of this post to help get you started. Note, this is offered as a sample similar to what was utilized for this post. For additional reference, checkout F5 CloudDocs.
Okay, sorry about that slight digression. To create a telemetry token I’ll make two API calls, (see screenshots below) to the F5 Beacon system to login and generate a new token.
Step 2 - Create Datadog Webhooks and Alert Notification
With my token in hand I can now turn my attention to Datadog. I will create two webhooks, (one triggered by a test failure and one triggered when restored) and associate them to a Synthetics test of my sample application, (https://app.aserracorp.com).
After logging in to the Datadog portal, I select ‘Integrations’ → ‘Integrations’ and select the ‘Webhooks’ tile, (see below). If the tile is not visible, you may need to first install the integration by entering webhooks in the search window provided.
In the popup window scroll down to the webhooks section and select ‘New+’. I'll use the URL and JSON snippet provided to create the two webhooks as shown below.
"name":"Aserracorp App Status",
"description": "Backend App server Status",
"healthStatusReason":"Probe Down. Follow link more info: $LINK"
The next step is to create a Synthetics test and associate my webhooks. From the Datadog portal, I select ‘UX Monitoring’ → ‘Synthetics Test’. From the main page I select ‘Get Started’, (see below) and select ‘New API Test’.
I will complete the test setup form as shown below. This will test the availability of my application’s backend server. Under step 6, (Notify Your Team) I specify the two previously created webhooks. Depending upon the alert event, (failure or recover) the appropriate webhook will send a notification to the F5 Beacon service.
With the test configured and after an event has been triggered, Datadog will automatically be added to my F5 Beacon service as a new source. Which is a great segway to our last step.
Step 3 - Associate Synthetic Event with F5 Beacon Application
Now that I have Datadog configured to send notifications, let’s take a look at the F5 Beacon portal. After logging into the portal, (https://beacon.f5.com) I select ‘Configuration’ from the drop-down menu in the middle pane. Under the ‘Sources’ tab i can see a Datadog source has been created.
To associate the Synthetic metric to my application, (previously deployed) I navigate to my application by selecting ‘Application Landscape’ → ‘List View’.
From the application list, I select the application name to open the app. In the center pane, I’ll select the ‘Edit Mode’ switch. I select the ‘Application Service’ node which represents my backend service and select ‘Edit Node’.
On the 'Edit Node' for 'Measurement' I select 'beacon-health-source' and from the 'Name/Source' drop-down I will have a single option representing my previously configured Synthetic notification, (see above).
Now that i have associated my Datadog Synthetic test notification with my application service node, any notifications received will be visible in the application landscape. This monitoring piece, along with checks performed on different application resources, will greatly aid in troubleshooting application issues and further enhance overall application visibility.