Skip to main content

Overview

AppDynamics is a business and application performance monitoring platform. EasyContact integrates with AppDynamics via HTTP Request Actions, receiving health rule violations and policy events.

Setup Instructions

1

Create Integration in EasyContact

  1. Go to ConfigurationIntegrations
  2. Click Add Integration
  3. Select AppDynamics as the type
  4. Enter a name (e.g., “Production AppDynamics”)
  5. Save and copy the webhook URL
2

Create HTTP Request Template

  1. Go to Alert & RespondHTTP Request Templates
  2. Click New
  3. Configure the template (see below)
3

Create Policy Action

  1. Go to Alert & RespondActions
  2. Click Create
  3. Select HTTP Request
  4. Choose your template
4

Add Action to Policies

  1. Edit your health rule policies
  2. Add the HTTP action to trigger on violations

HTTP Request Template

Basic Configuration

FieldValue
NameEasyContact Webhook
MethodPOST
Raw URLYour EasyContact webhook URL
Content-Typeapplication/json

Payload Template

{
  "event_type": "${latestEvent.eventType}",
  "event_id": "${latestEvent.id}",
  "event_guid": "${latestEvent.guid}",
  "event_name": "${latestEvent.displayName}",
  "severity": "${latestEvent.severity}",
  "summary": "${latestEvent.summaryMessage}",
  "incident_id": "${latestEvent.incident.id}",
  "app_name": "${latestEvent.application.name}",
  "app_id": "${latestEvent.application.id}",
  "tier_name": "${latestEvent.tier.name}",
  "tier_id": "${latestEvent.tier.id}",
  "node_name": "${latestEvent.node.name}",
  "node_id": "${latestEvent.node.id}",
  "health_rule_name": "${latestEvent.healthRule.name}",
  "health_rule_id": "${latestEvent.healthRule.id}",
  "policy_name": "${policy.name}",
  "event_time": "${latestEvent.eventTime}",
  "deep_link": "${latestEvent.deepLink}",
  "controller_url": "${controllerUrl}",
  "account_name": "${account.name}"
}

Template Variables

AppDynamics uses Apache Velocity syntax:
VariableDescription
${latestEvent.eventType}Event type (POLICY_OPEN_*, etc.)
${latestEvent.id}Event ID
${latestEvent.severity}Severity (INFO, WARN, ERROR)
${latestEvent.summaryMessage}Event summary
${latestEvent.application.name}Application name
${latestEvent.tier.name}Tier name
${latestEvent.node.name}Node name
${latestEvent.healthRule.name}Health rule name
${policy.name}Policy name
${latestEvent.deepLink}Link to event in AppDynamics
${controllerUrl}Controller URL
${account.name}Account name

Field Mapping

AppDynamics FieldEasyContact Field
incident_id / event_idEvent ID
event_name / summaryTitle
summaryDescription
event_typeEvent type tag
severitySeverity
node_name / tier_nameHost
app_nameService
deep_linkURL
health_rule_nameHealth rule tag

Event Types

Event TypeDescriptionStatus
POLICY_OPEN_WARNINGWarning threshold violatedProblem
POLICY_OPEN_CRITICALCritical threshold violatedProblem
POLICY_CLOSEPolicy condition clearedOK
POLICY_UPGRADEDWarning escalated to criticalProblem
POLICY_DOWNGRADEDCritical downgraded to warningProblem
POLICY_CONTINUES_WARNINGWarning continuesProblem
POLICY_CONTINUES_CRITICALCritical continuesProblem
POLICY_CANCELEDPolicy canceledOK

Severity Mapping

AppDynamics SeverityEasyContact Severity
ERRORCritical
WARNWarning
INFOInfo

Custom Mapping

{
  "severityMapping": {
    "sourceField": "severity",
    "mappings": {
      "ERROR": "critical",
      "WARN": "high",
      "INFO": "info"
    },
    "default": "warning"
  }
}

Example Payload

{
  "event_type": "POLICY_OPEN_CRITICAL",
  "event_id": "12345",
  "event_guid": "abc-123-def",
  "event_name": "Business Transaction Error Rate is Critical",
  "severity": "ERROR",
  "summary": "Error rate exceeded 5% threshold",
  "incident_id": "67890",
  "app_name": "E-Commerce Application",
  "app_id": "111",
  "tier_name": "Web Tier",
  "tier_id": "222",
  "node_name": "web-server-01",
  "node_id": "333",
  "health_rule_name": "Business Transaction Error Rate",
  "health_rule_id": "444",
  "policy_name": "Production Critical Policy",
  "event_time": "1705315800000",
  "deep_link": "https://controller.example.com/controller/#/location=APP_EVENT_VIEWER&eventId=12345",
  "controller_url": "https://controller.example.com",
  "account_name": "mycompany"
}

Enrichment Examples

{
  "enrichment": {
    "tags.source": "appdynamics",
    "tags.environment": "production",
    "tags.monitoring_type": "apm"
  }
}

Policy Configuration

Creating a Policy

  1. Go to Alert & RespondPolicies
  2. Click Create Policy
  3. Configure triggers:
    • Health Rule Violation events
    • Specific health rules or all
  4. Add your HTTP Request action

Health Rule Integration

Link policies to specific health rules:
  • Application health rules
  • Business transaction rules
  • Backend rules
  • Custom rules

Troubleshooting

  1. Verify HTTP Request Template is configured correctly
  2. Check that action is added to the policy
  3. Verify health rule is enabled and triggering
  4. Test template from AppDynamics UI
  1. Ensure variables include node and tier
  2. Some events may not have node-level data
  3. Use tier as fallback when node is empty
  1. Include POLICY_CLOSE event type in policy
  2. Verify event_id/incident_id matches between open and close
  3. Check policy action triggers on all event states
  1. Test template with “Test” button
  2. Check variable syntax (Apache Velocity)
  3. Ensure all referenced fields exist

Best Practices

Use incident_id for event correlation to properly group and resolve related alerts.
Include close/cancel events in your policy to automatically resolve incidents.
Monitor business transaction health for business-impact visibility.