We have seen interest and adoption of serverless architectures pick up immensely since we released our first function monitoring capabilities for AWS Lambda. Our customers have taken advantage of the unique ability to monitor Lambda functions in 1-second real-time with Splunk Infrastructure Monitoring. We are excited to extend the same analytics capabilities to our Microsoft Azure customers so they too can monitor their functions in real-time.
For those familiar with AWS Lambda, Azure Functions work a bit different than Lambda functions. With Azure Functions, a customer has a Function App, and within each Function App they can have multiple functions of different languages which all share the same underlying infrastructure. Azure Monitor, the equivalent of CloudWatch for AWS, monitors Function Apps at the Function App level. Azure Monitor aggregates all invocations, compute duration, bytes IO, etc. from all Azure Functions.
Azure Monitor and the Azure Functions Navigator
Much like our capabilities for monitoring Lambda, when using the standard Microsoft Azure integration and Azure Monitor metrics we provide an Infrastructure Navigator and several new built-in dashboards. The metrics for these dashboards are sent in automatically if you are syncing with Azure Monitor.
As with all other services that Infrastructure Navigator visualizes, we give you advanced filtering capabilities for drilling down to the subset of functions you are interested in, grouping them using a variety of standard dimensions including custom Azure tags that you’ve applied, and changing the time span that you are looking at.
When you select (Azure) Function Apps in the platform you see a summary dashboard below. Not only does this provide point-in-time information about the current state of your functions, but it also shows you trends, so you can see a breakdown of functions by account and by region, number of invocations, and even errors by function. The screenshot below show the dashboards in an enlarged format, available on the Dashboards page within Splunk Infrastructure Monitoring.
When you select a particular function, we’ll drill down to a dashboard about that specific function.
Splunk Infrastructure Monitoring Azure Function Wrapper
As useful as the basic metrics provided by Azure Monitor can be, there are often times when you need to capture details about invocations or errors in a more timely, more granular fashion. To address this we’ve built a wrapper specifically for Azure Functions that includes calls to the Splunk Infrastructure Monitoring service with the count of invocations and errors, and the execution duration.
Much like we did for AWS Lambda, our Azure Functions wrapper provides the ability for insight at a per function level.
We currently have wrapper code in multiple languages for your Azure Functions including Java, Node.js, and C#. We will continue to add more supported languages in the future. To get started with our Azure Functions wrappers visit our GitHub repo.
These wrappers also provide an easy mechanism for instrumenting your code for the custom metrics that matter to you most. It’s as simple as adding a few additional lines of code within your function to capture and send out those metrics to Splunk. The example below shows how to send a custom metric from an Azure Function using our Java wrapper.
We’ve also gone to great lengths to make sure that your Azure Functions metrics get to Splunk Infrastructure Monitoring with the 1-second resolution and minimal 1-2 second latency that you have grown to expect from Splunk. In conjunction with the rest of your Azure environment, you now have the ability to correlate all of your Azure resources with your Azure Function metrics at the Splunk native 1-second resolution. Furthermore, if you are using multiple cloud providers or even on-premises services, you can consolidate all of these metrics within Splunk for a true single pane of glass experience.
All the Usual Splunk Benefits
As always, getting metrics into Splunk is just the start for monitoring your functions. Once the data is coming into Splunk, not only do you have immediate access to the prebuilt Azure specific dashboards, but you also have the ability to use that data in custom charts using advanced Splunk Infrastructure Monitoring analytics, set up real-time alerts that will warn you about issues before they impact your customers, or automate any processes using instant webhooks.
We’ve Made it Easy to Get Started
Azure Functions offer big benefits to development teams that just want a place to run their code without having to worry about anything else. Splunk is the first vendor to deliver a truly real-time monitoring solution that matches the speed, scale, and variety of data coming from your modern stack. That’s why we encourage you to try Splunk Infrastructure Monitoring for your Azure Functions.