Integrations2 min read
AppDynamics
Integrate AppDynamics with OpsKnight.
AppDynamics Integration
Receive health rule violations from AppDynamics.
Endpoint
POST /api/integrations/appdynamics?integrationId=YOUR_INTEGRATION_ID
Setup
Step 1: Create Integration in OpsKnight
- In OpsKnight, go to Service -> Integrations.
- Add a AppDynamics integration.
- Copy the Webhook URL:
https://[YOUR_DOMAIN]/api/integrations/appdynamics?integrationId=[ID]
Step 2: Configure AppDynamics
- Go to Alert & Respond -> HTTP Request Templates.
- Create a new Template named "OpsKnight".
- Request URL: Paste the OpsKnight Webhook URL.
- Method:
POST. - Payload MIME Type:
application/json. - Add this template to your policies.
Payload Format
Template your AppDynamics HTTP Request with JSON:
{
"summary": "${latestEvent.displayName}",
"severity": "${latestEvent.severity}",
"eventType": "${latestEvent.eventType}",
"incidentId": "${latestEvent.id}",
"eventMessage": "${latestEvent.summaryMessage}",
"application": "${latestEvent.application.name}"
}
Event Mapping
| AppDynamics Event | OpsKnight Action |
|---|---|
POLICY_OPEN |
Trigger incident |
POLICY_CLOSE |
Resolve incident |
POLICY_UPGRADED |
Trigger (Update) |
Deduplication
Dedup key is generated from appdynamics-{incidentId}.
Testing
Using cURL
curl -X POST "https://YOUR_OPSKNIGHT_URL/api/integrations/appdynamics?integrationId=YOUR_ID" \
-H "Content-Type: application/json" \
-d '{
"summary": "Health Rule Violation",
"severity": "ERROR",
"eventType": "POLICY_OPEN",
"incidentId": "101",
"application": "E-Commerce"
}'
Troubleshooting
Variable Substitution Not Working
Ensure you are using the correct ${variable} syntax in the AppDynamics HTTP Template editor. Check AppDynamics documentation for the exact variable names available in your version.
Event Logic
- Summary: Derived from
summary,eventMessage, oreventType. - Urgency: Maps
severityoreventSeverityto OpsKnight urgency (automatically normalized). - Deduplication: Uses
incidentIdoreventIdto group updates.
Last updated for v1
Edit this page on GitHub