Alarm Integration with AppDynamics
With the developing technology, the end user experience of software applications used in different sectors has become an important issue. Many companies set up special teams on this subject and analyze the end user experiences and work to increase application performance.
Organizations need Application Performance Management (APM) tools that provide a constant 24/7 performance baseline to monitor performance metrics of their business-critical applications, receive timely alerts in the event of performance issues, and generate reports for periodic performance analysis. Examples of the most well-known APM tools are Dynatrace, AppDynamics, SolarWinds, Riverbed, New Relic… applications. Today, I will talk about the widely used AppDynamics tool and how to create alarms via AppDynamics.
What is AppDynamics?
The AppDynamics Application Performance Management Platform provides a real-time end-to-end view of application performance and its impact on the customer’s digital experience, from end-user devices to the back-end ecosystem. With AppDynamics, you can track your application’s business-critical processes, service endpoints and methods; you can examine the dependencies of the services. In addition, special time intervals are created and it provides the opportunity to easily analyze the error rate in which method and why these errors occurred, and to solve the problem.
Of course, in order to do all of these operations, you need to upload your application’s metrics to the server where your application is running using the AppDynamics agent. If your application works with container orchestration structure, you need to build by adding the appropriate agent package to the programming language your application supports in your Dockerfile. You can find the AppDynamics documentation for installation here. Well, we took the metrics, I hear you say how to create an alarm using them :) Let’s examine the stages of creating an alarm together.
How to Create an Alarm in AppDynamics?
1- Creating a Health Rule:
To create an alarm, come to the AppDynamics interface and click Alert&Respond from the Menu bar.
To set the health rules from the left panel, click Health Rules and then select the context of the health rule from the drop-down menu. The health rule scope determines the set of default health rule types. You can choose the scope to get a set of default health rule types for applications, servers, or databases. For example, when you define a mobile application as the scope, the default health rules such as crash rates and HTTP/network error rates are displayed.
After selecting the health rule scope, you can configure a new health rule details from the Overview panel by clicking the “+” icon.
1- Enter a name for the health rule you will create. If it is an existing name, change it and create it with a different name.
2- Check Enabled to enable the rule, leave the checkbox blank to disable it.
3- You can activate the alarm’s health rule always or only at certain times in “When is this rule enabled?”. For example, if you only want to monitor the time period when your application receives busy traffic during the day, you can select the appropriate time period.
4- How much data we want to use in minutes, we determine it in “Use data from last”.
5- In the “Wait Time after Violation” field, we enter the number of minutes to wait before re-evaluating the rule for the same affected entity where the violation occurred.
The Affected Entities panel allows you to define which assets your health rule affects. The Health Rule Type you choose determines the metrics presented for configuration in the next panels of the health rule.
Although the configuration processes for critical and warning conditions are the same, critical conditions are evaluated before warning conditions. If you have defined a critical condition and a warning condition in the same health rule, the warning condition is evaluated only if the critical condition is not true. In case you choose a metric expression while determining the criteria, you can set the threshold value according to the search and error values defined below or by creating an expression with the variables you specify for your application and the success rate there. You can trigger your alarm if it is greater or less than this threshold.
You can copy the settings between the Critical and Warning status panels and edit the fields if necessary. For example, if you have already defined a critical condition and want to create a similar warning condition, you can proceed by clicking Copy from Critical Condition in the Warning Condition window to populate the fields with settings from the Critical condition.
2- Creating a Policy:
One of the issues that we should pay attention to when creating a policy: receive notification that the alarm has been resolved. And so you need to create clear policies in addition alarm. After specifying the policy name, we click the “enabled” box to activate it. Then you can check the “execute actions in batch” box if you want the actions to start immediately for each triggering event. The policy will be activated when any of the events we select under the Health Rule Violation Events option occurs.
The Object Scope panel defines the objects for which the policy is triggered. In the Action section, they specify the action that the policy should take in the event that occurs when it is triggered. This action can be email, sms or an http request. You can create these templates from the alarm templates on the left panel. If you have added the clear policy while creating your policies, you need to create alarm and clear template separately in Http request templates.
After reaching this stage, you have now managed to generate your alarm :) As I mentioned in the article, you generated the alarm, but it is also important to receive a notification that the alarm has been resolved, otherwise it may seem like the problem still persists even though the alarm has been resolved.
Yes.. In this article, I tried to explain to you what should be considered when creating alarms in general with the features offered by AppDynamics. I hope it has been a useful document.
Happy reading….