AppDynamics
Send monitoring eventsfrom AppDynamics to BigPanda.
Supported Versions | Type | Authentication Type |
---|---|---|
up to v21; On-Premise, Dedicated SaaS Deployments | Webhook | Org Bearer Token |
The integration uses a custom HTTP action, policy, and template in AppDynamics. When an event occurs and a policy fires the action, AppDynamics sends an HTTP request to BigPanda as defined by the template. BigPanda then processes and correlates the alert data to create and maintain up-to-date incidents in BigPanda.
Open Integration Manager
The Open Integration Manager is available for use with AppDynamics. For more information, see the Open Integration Manager documentation.
Payload Size
Alert payloads must be 6MB or smaller. Larger payloads will fail to process with BigPanda. We recommend reviewing your configurations to ensure that only actionable, useful information is being sent to BigPanda.
Key Features
- Is resource-efficient for the AppDynamics controller; reuses one server thread for all alerts
- Uses the Custom HTTP action feature in AppDynamics alerts
Install the Integration
Determine Your Version
AppDynamics Webhooks are available in AppDynamics version 4.1 and up.
Create the BigPanda HTTP Request Template
Note: Complete this step only one time per AppDynamics controller.
-
Log in to your AppDynamics controller.
-
Click Alert & Respond.
-
Click HTTP Request Templates.
-
Click New.
-
In the Name field, enter
BigPandaAlertTemplate
. -
In the Request URL section:
- For the method, select POST.
- In the Raw URL field, enter
https://integrations.bigpanda.io/appdynamicsapi_v3/alerts?access_token=<Your access token>&app_key<Your app key>
.
-
In the Payload section:
- In the MIME Type field, enter
application/json
. - In the text area, copy the following template:
{ "account_name": "${account.name}", "account_id": "${account.id}", "action_name": "${action.name}", "action_id": "${action.id}", "action_trigger_time": "${action.triggerTime}", "controller_link_url": "${controllerUrl}", "clamped": ${clamped}, "clamp_limit": ${clampLimit}, "from_web_hook": true, #if (${notes}) "notes": "${notes}", #end "policy_name": "${policy.name}", "policy_id": "${policy.id}", "policy_digest": ${policy.digest}, "full_events_list": [ #foreach(${event} in ${fullEventList}) { #if (${event.healthRuleEvent}) "health_rule_event": ${event.healthRuleEvent}, "health_rule_violation_event": ${event.healthRuleViolationEvent}, "health_rule_id": ${event.healthRule.id}, "health_rule_name": "${event.healthRule.name}", "incident_id": "${event.incident.id}", "incident_name": "${event.incident.name}", "appd_event_type": "health-rule", #else "appd_event_type": "error-event", #end "display_name": "${event.displayName}", "app_id": ${event.application.id}, "app_name": "${event.application.name}", "bt_performance_event": ${event.btPerformanceEvent}, "deep_link_url": "${event.deepLink}", "event_type": "${event.eventType}", "event_message": "${event.eventMessage.replaceAll("\\<[^>]*\\>","")}", "event_type_key": "${event.eventTypeKey}", "event_time": "${event.eventTime}", "guid": "${event.guid}", #if (${event.node_name}) "node_name": "${event.node.name}", "node_id": "${event.node.id}", #end "summary_message": "${event.summaryMessage.replaceAll("\\<[bB][rR]\\>","\\n").replaceAll("\\<[^>]*\\>","")}", "severity": "${event.severity}", "event_type_severity": "#if (${event.eventType.toString().matches(".*((?:CLOSE)|(?:CANCELED)).*|.*((?:SYNTHETIC.*CRITICAL)|(?:CRITICAL.*SYNTHETIC)).*")})${event.eventType.toString().replaceAll(".*((?:CLOSE)|(?:CANCELED)).*|.*((?:SYNTHETIC.*CRITICAL)|(?:CRITICAL.*SYNTHETIC)).*","$1$2").replaceAll(".*((?:CRITICAL)|(?:CLOSE)|(?:CANCELED)).*","$1")}#end", "tag": "bigpanda-api", #if (${event.tier_name}) "tier_name": "${event.tier.name}", "tier_id": "${event.tier.id}", #end #foreach(${entity} in ${event.affectedEntities}) #if(${entity.entityType} == "APPLICATION_COMPONENT")#set($affected_tier = $entity.name)#end #if(${entity.entityType} == "APPLICATION_COMPONENT_NODE")#set($affected_node = $entity.name)#end "${entity.entityType}_name": "${entity.name}", "${entity.entityType}_id": "${entity.id}", #end "object": "${event.application.name}#if(${event.tier_name}) ${event.tier_name}#elseif(${affected_tier}) ${affected_tier}#end#if(${event.node_name}) ${event.node_name}#elseif(${affected_node}) ${affected_node}#end", "title": "${event.application.name}#if(${event.tier_name}): ${event.tier_name}#elseif(${affected_tier}): ${affected_tier}#end#if(${event.node_name}): ${event.node_name}#elseif(${affected_node}): ${affected_node}#end", "affected_entities": [ #foreach(${entity} in ${event.affectedEntities}) { "id": ${entity.id}, "name": "${entity.name}", "type": "${entity.entityType}" }#if ($foreach.hasNext), #end #end ] }#if ($foreach.hasNext), #end #end ] }
- In the MIME Type field, enter
-
In the Response Handling Criteria section, click Add Success Criteria.
-
Select 201 from the Status Code drop-down menu.
-
In the Settings section, ensure that the One Request Per Event check box is not selected.
-
Click Save.
Create an AppDynamics Policy
Note: Repeat this step for each Application.
-
Go to Application > Alert & Respond > Policies, and click Create Policy Manually.
-
In the Create Policy window:
- In the name field, enter
BigPanda
. - Select all check boxes for event types that you would like to send alerts to BigPanda.
- In the name field, enter
Create an AppDynamics Action
-
In the left pane of the Create Policy window, click Actions, and then click +.
-
If you already created a
BigPandaAlert
action for another application in AppDynamics, choose it and then click Select. If you have not created aBigPandaAlert
action for another application in AppDynamics, create the action:- Click Create.
- Select Make an HTTP Request.
- Click OK.
- In the HTTP Request Template field, select BigPandaAlertTemplate.
- The action you just created will now be available in the Select Action list. Click it, then press +.
- Click Save to save the action.
-
Click Save to create the new policy.
AppDynamics Data Model
BigPanda normalizes alert data from AppDynamics into tags. You can use tag values to filter the incident feed and to define filter conditions for Environments. The primary and secondary properties are also used during the deduplication and correlation processes.
Standard Tags
Tags | Description |
---|---|
application | Name of the business application |
message | Summary of the notification. For example: health rules have been violated |
severity | Severity of the alert in AppDynamics |
incident | AppDynamics incident identifier |
app dynamics_url | URL to the Controller UI in AppDynamics for this event |
event_guid | Unique identifier for the AppDynamics event |
appd_event_type | What type of event occurredOptions include: Health-rule or Error-event |
affectedEntities | List of the affected entitiesThis integration supports 4 types of entities: Application, Node, Tier, and Business Transaction.For entities not already mapped to existing tags, BigPanda adds name and ID tags for the entity |
object | Concatenation of the business application, tier name, and node nameprimary_property* |
title | Concatenation of the business application, tier name, and node name, delimited by colons.For Example “Application: Tier: Node” |
notes | Notes describing the event that was triggered |
The BigPanda AppDynamics integration files events into one of two classifications: Health Rule events and Error events. These classifications have tags that are specific to that type of event.
Health Rule Tags
Tags | Description |
---|---|
health_rule | Name of the health rule that was violatedsecondary_property* |
incident_id | Name of the incident that was triggered |
Error Event Tags
Tags | Description |
---|---|
error_name | Normalized name of the error that occurred |
error_display_name | AppDynamics display name for the error that occurred. secondary_property* |
Custom Tags
The AppDynamics alert allows you to add extra fields, to be included as tags on the BigPanda alert. If you wish to add a tag not included in the above list, add the tag to the HTTP request template and update the include_fields list to include the field. For a list of variables that can be used in the AppDynamics HTTP request template, please consult the Predefined Templating Variables section of the AppDynamics documentation.
For more information on adding custom tags to the final BigPanda alert, please see the in-app AppDynamics integration documentation.
Delete the Integration
Deleting an integration requires that you remove the integration in both the integrated system and BigPanda. We recommend that you first uninstall the integration on the integrated system to prevent traffic from being sent and rejected by BigPanda, since the app key will not exist once you delete the integration in BigPanda.
Caution During Replacement
When replacing an existing integration with a new tool or system, we recommend configuring the new integration first to ensure no data is lost.
Deactivate Inbound Integration
If you want to stop sending data to BigPanda but don’t want to delete your integration, you can temporarily deactivate it.
To deactivate an inbound integration:
- In BigPanda, navigate to the Integrations tab and select the desired integration from the list. This will open integration details on the right side of the window.
- At the top of the integration details, click the Active/Inactive toggle next to the application name to change the status of the integration.
In the integrations list, inactive integrations will be marked with a gray bar.
Stop Sending Data to BigPanda
You must delete the BigPanda action, policy, and template from AppDynamics to stop sending alerts to BigPanda via the AppDynamics Webhook integration.
Before you start
Manually resolve any open incidents related to the integration to remove them from your incident feed. Optionally, remove any additional data in BigPanda. For example, modify or remove any Environments or AutoShare rules that reference the integration.
Delete the BigPanda Action, Policy, and Template
- Log in to your AppDynamics controller & navigate to Actions
- Delete the BigPandaAlert action
- Go to Application > Alert > Respond > Policies
- Delete the BigPanda policy
- Go to Alert > Respond > HTTP Request Templates
- Click Delete beside the BigPandaAlertTemplate row
Delete the Integration in BigPanda
Take the following steps to delete the integration from BigPanda:
- In BigPanda, navigate to the Integrations tab and select the desired integration from the list.
- In the integration details on the right of the page, click the trash icon, then confirm you want to delete the integration. The integration will be removed immediately.
️Automatic Alert Resolution for Deleted Integrations
All active alerts from the integration will be resolved after deletion.
Data Removal
This procedure does not remove any data from the integrated system.
Release Notes
v3.0.0 (9/13/23)
- Added Open Integration Manager compatibility
- Tags from BigPanda can now be controlled
v2.0.0 (10/12/21)
- Error alert types now included
- Note Field Added
- Additional Tags Included
v1.0.0
- Initial release
Updated 4 months ago