Do you have the following questions when considering Serverless360?
- Why should I use Serverless360 when the Azure portal already has Application Insights?
- How different is Serverless360 from Application Insights?
Below are the strong straight forward reasons for the above questions.
1. Resource Vs Application
- The core use case for Application Insights is for 1 instance of Application Insights to receive telemetry information from 1 Azure Resource and to give you a deep dive into the analysis of how that resource is performing and to help troubleshoot complex errors.
- The core use case for Serverless360 is to bring together several Azure Serverless resources which work together to deliver a solution and to help create an application view across the Serverless resources which make up the solution. Serverless360 lets you manage and monitor Business Applications.
2. Target Users
- Application Insights built for an experienced person who understands deeply the solution and can troubleshoot accordingly.
- Serverless360 built to allow you to lower your Total Cost of Ownership by allowing less experienced people to manage your solutions and to free up the demands on the time of your more expensive and higher skilled resources.
This article would substantiate the above statements with more valuable technical details to provide reader clarity on how Serverless360 is different from Application Insights in monitoring Azure Serverless Applications. Though these 2 products cannot be treated as competing solutions there is an overlap in the Azure technologies that they monitor.
|What are these tools?||Serverless360 is a One platform to Manage and Monitor Azure resources related to Serverless services. In real time scenario, the integrated cloud applications are not built with single technology stack, it typically involves multiple Azure Services. Currently, Azure Portal is designed more on vertical technology silos and it's difficult to visualize and manage such connected solutions. Serverless360 is one tool that you can depend on to manage and monitor all your distributed Azure Services from one place. Serverless360 is crafted with capabilities to complement the Azure Portal.||Application Insights is an extensible Application Performance Management (APM) service. Used to monitor live web application. It will automatically detect performance anomalies. It includes powerful analytics tools to help diagnose issues and to understand what users do with the app. It's designed to help continuously improve performance and usability. It works for apps on a wide variety of platforms including .NET, Node.js and Java EE, hosted on-premises, hybrid, or any public cloud. It integrates with your DevOps process, and has connection points to a variety of development tools|
|For whom are these of use?|
|What do they offer in a nutshell?||Extensive Toolset to manage and variety of monitors to offer Consolidated monitoring on Composite Applications which represent the business solution.||Continuous monitoring on web app requests, exceptions, and dependencies in web role.|
|How much do they cost?||Pricing of Serverless360 SaaS version depends on the number of entities associated and the activities configured.|
Number of Monitors does not influence the Serverless360 pricing. User can create as many numbers of monitors as required without any impact in the pricing.
Data Monitor will have a minimal impact on the Azure billing. Please refer Metric Query pricing here (Free 10,00,000 standard API calls per month)
What can they monitor?
Function App is the only Azure entity that can be monitored using both Application Insights and Serverless360 as of now. Web App and APIM would get added to this list very soon. Further in this article let us dive deep into the management and monitoring capabilities offered by Serverless360 against capabilities in Application insights.
Monitoring Azure Function App using Application Insights
Select Application Insights while creating a Function App, just press On and select the location you want it to be deployed. Proceed with creating the Function App. This will make sure the newly created Application Insights instance will be used by the Function App.
It can also be later turned on in a Function App that was created neglecting Application Insights. Following are the key capabilities.
All the Metrics at a Glance
Get details such as server instances running at this time; the response times of your functions and how many requests are being handled at a specific timespan in the Overview page.
Clicking on either one of these graphs will fetch more details!
Live stream option presents lot of graphs and telemetry data which gives a good first impression of the status of the application.
Performance page, this is especially useful if public HTTP triggered endpoints are exposed via your Azure Functions.
You can do some filtering, selecting timespans and inspect a lot of other metrics which have to do with performance of your piece of code.
Logging & Exceptions
Logging is available and one can query through it quite fast. All the Azure Function logging stored in Application Insights (if configured), can be Searched through in the Search page.
Failure page can help check out if there have been any exceptions.
On this page find when exceptions have occurred, and which type of exceptions have been thrown.
Clicking on a specific exception will provide some more details.
Zooming in further on such an exception will provide a lot of information of the client, server and even the stack trace of the exception.
Set Alerts to receive notifications when unexpected issues like increase in exceptions or Errors/Critical logs stored to applications. Get notified when there’s something important to look at.
Analytics section most often meant for power users of this system.
Execute the SQL-like statements to create charts, query and visualize.
Monitoring Azure Function App using Serverless360
When an Azure Function App is associated with a Serverless360 Composite Application, it is possible to monitor the Function app in various perspectives using the monitors in Serverless360.
Monitor Azure Function App State
If the intention is to monitor the state, say the business demands the Function App, that handles the critical computation, to be always running, Serverless360 can monitor the current state of the Function App against the expected state. By associating a Function App to a Status Monitor or Threshold Monitor, it is possible to monitor the state and alert through configured notification channels by comparing the current state against the expected state. Please find documentation on Status Monitor and Threshold Monitor.
Status monitor can send a consolidated health report on configured properties to all the entities in a Composite Application.
Threshold monitor to detect violation in the configured properties of the entities. With respect to Function App state can be monitored.
Monitor Azure Function based on Metrics
If the intention is to understand the efficiency, reliability or consumption of the Azure Function App then the choice should be a Serverless360 Data Monitor. Configure the Data Monitor for an Azure Function App on an extensive set of metrics. If the requirement is to monitor, any errors encountered by the Azure Function App that makes it unavailable for the consuming application. Configure a data monitor with Http Server Errors being monitored against appropriate warning and error threshold values set as in figure below.
To monitor on the consumption of the Azure Function App it would be required to define a Data Monitor with configuration done for metrics like Memory Working Set, Executions, as the billing on an Azure Function is influenced by the number of executions and the memory consumed. Choose the metrics available from the extensive set based on which configure the Azure Function App data monitoring as per the monitoring requirement.
This monitor will invite an additional minimal cost in the user’s Azure subscription as in the background, Serverless360 fires Metric Queries to perform Data Monitoring. However, there are 10,00,000 standard API calls per month included as Free Units. The charge beyond this also very less. Please refer monitor pricing details.
Data monitor an entity in various perspectives like Consumption, Performance, Availability, Reliability and so on.
Monitor Azure Function for Failure
Serverless360 Watch Monitor can be a solution to get notified on the failure in any invocation of an Azure Function. When an Azure Function App in a Composite Application is associated to a Watch Monitor, it can be monitored for failure in any of its Functions and the alert will be sent on the configured notification channels within 5 minutes of the failure occurrence. However, this capability is right now restricted only to 1.0X functions.
Watch monitor in Serverless360 can detect exceptions and errors on Logic Apps, Function App and API endpoint executions report within specified duration.
Serverless360 Management Capabilities in Addition to Monitoring
In addition to the monitoring capabilities offered by Serverless360 for Function Apps, following operations are also possible:
- Start/Stop/Restart the Azure Function
- Delete the Azure Function
- View Function App Properties
- View Function Properties
- Access Invocation Logs (1.x functions alone)
- Access Invocation Details (1.x functions alone)
- Audit User action on the Function App
Solutions offered by Serverless360 in Function Apps monitoring and management is clearly distinct from those monitoring options in Application Insights.
Serverless360 provides a consolidated monitoring for Composite applications that represent the Business solution built using Azure Serverless Services. Whereas Application insights offers continuous monitoring on an Azure web role.
They clearly solve different problems for different target users.
Serverless360 can be used on a Function App or Web App with or without Application Insights enabled. When used along with Application insights, will complement the same by providing monitoring at various perspectives at Application level.