{"id":52661,"date":"2025-09-11T12:31:58","date_gmt":"2025-09-11T12:31:58","guid":{"rendered":"https:\/\/www.devopsschool.com\/blog\/?p=52661"},"modified":"2026-02-21T08:19:28","modified_gmt":"2026-02-21T08:19:28","slug":"appdynamics-complete-guide-for-appdynamics-alert","status":"publish","type":"post","link":"https:\/\/www.devopsschool.com\/blog\/appdynamics-complete-guide-for-appdynamics-alert\/","title":{"rendered":"Appdynamics: Complete Guide for Appdynamics Alert"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"399\" height=\"597\" src=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/09\/image-3.png\" alt=\"\" class=\"wp-image-52664\" srcset=\"https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/09\/image-3.png 399w, https:\/\/www.devopsschool.com\/blog\/wp-content\/uploads\/2025\/09\/image-3-201x300.png 201w\" sizes=\"auto, (max-width: 399px) 100vw, 399px\" \/><\/figure>\n\n\n\n<p>Step-by-step guide to set up and work with alerts in AppDynamics (the screen you shared is the <strong>Alert &amp; Respond \u2192 Policies<\/strong> page).<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">0) How AppDynamics alerts are wired<\/h1>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Health Rules<\/strong>: \u201cwhat to watch\u201d (e.g., CPU &gt; 85% for 5 min).<\/li>\n\n\n\n<li><strong>Policies<\/strong>: \u201cwhen\/where to notify\u201d (tie events like <em>Health Rule Violation \u2013 Opens\/Closes<\/em> to actions).<\/li>\n\n\n\n<li><strong>Actions<\/strong>: \u201chow to notify\/run something\u201d (email, HTTP webhook for Slack\/PagerDuty\/Jira, diagnostic dump, script).<\/li>\n\n\n\n<li><strong>(Optional) Anomaly Detection<\/strong>: AppD\u2019s ML events you can also alert on.<\/li>\n\n\n\n<li><strong>Templates &amp; Digests<\/strong>: re-usable message bodies and scheduled summary emails.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>You\u2019ll usually create <strong>Actions \u2192 Health Rules \u2192 Policies<\/strong> (in that order).<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">1) Prepare notifications<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">1.1 Configure email\/SMS (once)<\/h3>\n\n\n\n<p><strong>Alert &amp; Respond \u2192 Email \/ SMS Configuration<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Add SMTP server (host, port, auth, From address).<\/li>\n\n\n\n<li>(Optional) Add SMS provider if you\u2019ll send SMS.<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">1.2 Create actions you\u2019ll reuse<\/h3>\n\n\n\n<p><strong>Alert &amp; Respond \u2192 Actions \u2192 Create<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Email Action<\/strong>: Name \u201cEmail\u2014SRE On-Call\u201d, add recipients (team list), subject like <code>[AppD][${severity}] ${application} ${eventType}: ${summary}<\/code> and use variables in the body (pick from UI).<\/li>\n\n\n\n<li><strong>HTTP Request Action<\/strong> (for Slack\/PagerDuty\/Jira): paste webhook URL, set method\/headers, payload JSON using event variables (e.g., <code>${eventMessage}<\/code>, <code>${nodeName}<\/code>, <code>${healthRuleName}<\/code>).<\/li>\n\n\n\n<li><strong>Diagnostic\/Remediation Actions<\/strong> (optional): thread dump, heap dump, start CPU profiling, or run script (requires Machine Agent with permissions).<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Tip: keep action names generic (Email\u2014SRE, Webhook\u2014Slack-#prod-alerts) so many policies can reuse them.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">2) Define what \u201cbad\u201d looks like (Health Rules)<\/h2>\n\n\n\n<p><strong>Alert &amp; Respond \u2192 Health Rules \u2192 Create<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Scope<\/strong>: pick the application (e.g., <em>motoshare<\/em>), then the entity type:\n<ul class=\"wp-block-list\">\n<li>Applications \/ Tiers &amp; Nodes \/ Business Transactions \/ Databases \/ Servers \/ Containers, etc.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Affects<\/strong>: choose <em>All<\/em> or a subset (tags\/tiers\/BTs).<\/li>\n\n\n\n<li><strong>Conditions<\/strong>:\n<ul class=\"wp-block-list\">\n<li>Choose metric (Browse or paste Metric Path).<\/li>\n\n\n\n<li>Set <strong>Critical<\/strong> and optionally <strong>Warning<\/strong> thresholds.<\/li>\n\n\n\n<li>Evaluation: \u201cX of last Y minutes\u201d (e.g., 5 of last 5).<\/li>\n\n\n\n<li>Static thresholds <strong>or<\/strong> dynamic\/baseline (e.g., \u201c&gt; 3\u00d7 baseline, min 50 req\/min\u201d).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Rolling up<\/strong>: \u201cAll\u201d vs \u201cAny\u201d affected entities trigger.<\/li>\n\n\n\n<li><strong>Re-arm<\/strong>: add a wait time (e.g., 10\u201315 min) to avoid flapping.<\/li>\n\n\n\n<li>Save.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">Fast starters (create a few common rules)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>CPU Hot<\/strong> (Tiers &amp; Nodes): <em>Hardware Resources|CPU|%Busy<\/em> &gt; 85% for 5 of 5 min (Critical), &gt; 75% (Warning).<\/li>\n\n\n\n<li><strong>Memory Pressure<\/strong>: <em>Hardware Resources|Memory|%Used<\/em> &gt; 90% for 10 of 10 min.<\/li>\n\n\n\n<li><strong>BT Slow<\/strong> (Business Transactions): <em>Average Response Time<\/em> &gt; baseline + 3\u03c3, min load \u2265 30 cpm, for 5 of 10 min.<\/li>\n\n\n\n<li><strong>BT Errors<\/strong>: <em>Errors per Minute<\/em> &gt; baseline + 2\u03c3 and <em>Error %<\/em> &gt; 5% for 5 of 10 min.<\/li>\n\n\n\n<li><strong>Container Restarts<\/strong> (if Server\/Container visibility enabled): restarts &gt; 0 in 10 min.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Keep rules separate for infrastructure vs. application to route to the right teams.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">3) (Optional) Enable Anomaly Detection<\/h2>\n\n\n\n<p><strong>Alert &amp; Respond \u2192 Anomaly Detection<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Turn on for your application\/tiers\/BTs.<\/li>\n\n\n\n<li>Choose sensitivity and minimum traffic.<\/li>\n\n\n\n<li>These generate \u201cAnomaly Detected\u201d events you can target in policies (useful when you don\u2019t want to hand-tune thresholds).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">4) Tie events to notifications (Policies)<\/h2>\n\n\n\n<p>You can use the <strong>Policy Setup Wizard<\/strong> (shown on your screen) or build manually.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">4.1 Quick path: Policy Setup Wizard<\/h3>\n\n\n\n<p><strong>Alert &amp; Respond \u2192 Policies \u2192 Policy Setup Wizard<\/strong><\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Pick <strong>Event Types<\/strong>:\n<ul class=\"wp-block-list\">\n<li><em>Health Rule Violation \u2013 Opens<\/em> (and later add a second policy for <em>Closes<\/em>).<\/li>\n\n\n\n<li>(Optional) <em>Anomaly Detected<\/em>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Scope<\/strong>: select <strong>Application = motoshare<\/strong> (and narrow to tiers\/BTs if needed).<\/li>\n\n\n\n<li><strong>Action<\/strong>: attach \u201cEmail\u2014SRE On-Call\u201d, \u201cWebhook\u2014Slack-#prod-alerts\u201d, etc.<\/li>\n\n\n\n<li><strong>Execution Settings<\/strong>:\n<ul class=\"wp-block-list\">\n<li>\u201cTrigger only on Critical\u201d (optional) to reduce noise.<\/li>\n\n\n\n<li>Add <strong>re-notification<\/strong>\/cool-down (e.g., re-notify every 60 min while still violating).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Review \u2192 Create.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\">4.2 Manual path (more control)<\/h3>\n\n\n\n<p><strong>Alert &amp; Respond \u2192 Policies \u2192 Create Policy Manually<\/strong><\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Section 1: Events to Match<\/strong><br>Add:\n<ul class=\"wp-block-list\">\n<li><em>Health Rule Violation \u2013 Opens<\/em> (filter to your exact Health Rules if you want).<\/li>\n\n\n\n<li>(Optional) <em>Health Rule Violation \u2013 Closes<\/em> in a <strong>separate<\/strong> \u201cRecovery\u201d policy.<\/li>\n\n\n\n<li>(Optional) <em>Anomaly Detected<\/em> \/ <em>Server Crash<\/em> \/ <em>Resource Pool Limit Reached<\/em>, etc.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Section 2: Evaluation Scope<\/strong><br>Application = <strong>motoshare<\/strong>, restrict entities if needed.<\/li>\n\n\n\n<li><strong>Section 3: Actions<\/strong><br>Add your email\/webhook\/diagnostic actions.<br>Set <strong>Do not execute more than once every N minutes<\/strong> and <strong>wait times<\/strong> to control noise.<\/li>\n\n\n\n<li><strong>Section 4: Schedule\/Suppression<\/strong><br>Exclude maintenance windows or allow \u201cpolicy is disabled during deploys\u201d.<\/li>\n\n\n\n<li>Save.<\/li>\n<\/ul>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p>Best practice: create two policies per health rule family\u2014<strong>Alert (Opens)<\/strong> and <strong>Recovery (Closes)<\/strong>\u2014so teams know when things clear.<\/p>\n<\/blockquote>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">5) Test end-to-end<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Pick a rule that\u2019s easy to trigger (e.g., lower CPU threshold on a dev tier temporarily).<\/li>\n\n\n\n<li>Use <strong>Alert &amp; Respond \u2192 Policies \u2192 (policy) \u2192 Test\/Preview<\/strong> if available, or apply load to trigger a BT rule.<\/li>\n\n\n\n<li>Confirm: event appears in <strong>Alert &amp; Respond \u2192 Events<\/strong> and notifications arrive in email\/Slack\/Jira.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">6) Reduce noise and keep signals strong<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Prefer <strong>baselines<\/strong> for BT latency\/error rules; add <strong>minimum load<\/strong> guards.<\/li>\n\n\n\n<li>Use <strong>\u201cX of last Y minutes\u201d<\/strong> and <strong>re-arm<\/strong> times to avoid flapping.<\/li>\n\n\n\n<li>Route infra vs app alerts to different actions\/recipients.<\/li>\n\n\n\n<li>Add <strong>maintenance windows<\/strong> for deploys.<\/li>\n\n\n\n<li>Use <strong>Email Digests<\/strong> for daily\/weekly rollups; keep real-time policies for actionable issues.<\/li>\n\n\n\n<li>Review <strong>Top Talkers<\/strong> (which rules\/policies fire the most) and tune monthly.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">7) Example: three core policies you can add now<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>App \u2013 BT Slow (Critical) \u2192 Slack + Email<\/strong><br>Event: Health Rule Violation \u2013 <em>BT Slow (Critical)<\/em> Opens \u2192 Actions: Slack + Email.<\/li>\n\n\n\n<li><strong>Infra \u2013 Node CPU (Critical) \u2192 Email only<\/strong><br>Event: Health Rule Violation \u2013 <em>CPU Hot<\/em> Opens \u2192 Action: Email\u2014SRE.<\/li>\n\n\n\n<li><strong>Recoveries \u2013 All Critical Closes \u2192 \u201cgreen\u201d message<\/strong><br>Event: Health Rule Violation \u2013 Closes (filter to the two rules above) \u2192 Actions: Slack \u201crecovered\u201d + Email.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">8) Nice-to-have add-ons<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>HTTP Request Templates<\/strong> &amp; <strong>Alerting Templates<\/strong>: standardize payloads\/messages once, reuse everywhere.<\/li>\n\n\n\n<li><strong>Mutual TLS Configuration<\/strong>: if your webhook target (e.g., internal gateway) requires client certs.<\/li>\n\n\n\n<li><strong>Runbook links<\/strong>: include a URL in email\/webhook pointing to a wiki playbook per alert.<\/li>\n\n\n\n<li><strong>Auto-diagnostics<\/strong>: attach a thread dump or snapshot action to severe BT rules.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h3 class=\"wp-block-heading\"><\/h3>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h1 class=\"wp-block-heading\"> AppDynamics Health Rules + Policies (Starter Kit for <em>motoshare<\/em>)<\/h1>\n\n\n\n<h2 class=\"wp-block-heading\">1) Health Rules<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Node CPU Hot<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scope<\/strong>: Tiers &amp; Nodes \u2192 All nodes in <code>motoshare<\/code><\/li>\n\n\n\n<li><strong>Critical<\/strong>: CPU % Busy &gt; 85% for 5 of last 5 min<\/li>\n\n\n\n<li><strong>Warning<\/strong>: CPU % Busy &gt; 75% for 5 of last 5 min<\/li>\n\n\n\n<li><strong>Re-arm<\/strong>: 10 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Node Memory Pressure<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scope<\/strong>: Tiers &amp; Nodes \u2192 All nodes in <code>motoshare<\/code><\/li>\n\n\n\n<li><strong>Critical<\/strong>: Memory % Used &gt; 90% for 10 of last 10 min<\/li>\n\n\n\n<li><strong>Warning<\/strong>: Memory % Used &gt; 80%<\/li>\n\n\n\n<li><strong>Re-arm<\/strong>: 15 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Business Transaction \u2013 Slow<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scope<\/strong>: Business Transactions \u2192 All BTs in <code>motoshare<\/code><\/li>\n\n\n\n<li><strong>Critical<\/strong>: Avg Response Time &gt; Baseline + 3\u03c3 for \u2265 30 cpm traffic, 5 of 10 min<\/li>\n\n\n\n<li><strong>Warning<\/strong>: Avg Response Time &gt; Baseline + 2\u03c3<\/li>\n\n\n\n<li><strong>Re-arm<\/strong>: 10 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Business Transaction \u2013 Errors<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scope<\/strong>: Business Transactions \u2192 All BTs in <code>motoshare<\/code><\/li>\n\n\n\n<li><strong>Critical<\/strong>: Error % &gt; 5% AND Errors\/min &gt; 30, for 5 of 10 min<\/li>\n\n\n\n<li><strong>Warning<\/strong>: Error % &gt; 2%<\/li>\n\n\n\n<li><strong>Re-arm<\/strong>: 10 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Container Restarts (if Server\/Container visibility enabled)<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Scope<\/strong>: Containers in <code>motoshare<\/code><\/li>\n\n\n\n<li><strong>Critical<\/strong>: Restart Count &gt; 0 in 10 min<\/li>\n\n\n\n<li><strong>Re-arm<\/strong>: 20 min<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">2) Actions<\/h2>\n\n\n\n<p>Create these once under <strong>Alert &amp; Respond \u2192 Actions<\/strong>:<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Email\u2014SRE On-Call<\/strong>\n<ul class=\"wp-block-list\">\n<li>To: <a href=\"mailto:sre-team@motoshare.com\">sre-team@motoshare.com<\/a><\/li>\n\n\n\n<li>Subject: <code>[AppD][${severity}] ${application} ${eventType}: ${summary}<\/code><\/li>\n\n\n\n<li>Body: include <code>${healthRuleName}<\/code>, <code>${nodeName}<\/code>, <code>${eventMessage}<\/code>, <code>${incidentID}<\/code><\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Slack\u2014#alerts<\/strong>\n<ul class=\"wp-block-list\">\n<li>Type: HTTP Request Action<\/li>\n\n\n\n<li>URL: Slack Webhook<\/li>\n\n\n\n<li>JSON payload: <code>{ \"text\": \"*[AppDynamics Alert]*nApp: ${application}nEvent: ${eventType}nRule: ${healthRuleName}nNode: ${nodeName}nMessage: ${eventMessage}nLink: ${eventLink}\" }<\/code><\/li>\n<\/ul>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">3) Policies<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Policy 1: Infra \u2013 Node CPU Critical<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Event<\/strong>: Health Rule Violation Opens \u2192 \u201cNode CPU Hot\u201d<\/li>\n\n\n\n<li><strong>Action<\/strong>: Email\u2014SRE On-Call<\/li>\n\n\n\n<li><strong>Rate Limit<\/strong>: Once every 15 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Policy 2: Infra \u2013 Node Memory Critical<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Event<\/strong>: Health Rule Violation Opens \u2192 \u201cNode Memory Pressure\u201d<\/li>\n\n\n\n<li><strong>Action<\/strong>: Email\u2014SRE On-Call<\/li>\n\n\n\n<li><strong>Rate Limit<\/strong>: Once every 20 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Policy 3: App \u2013 BT Slow<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Event<\/strong>: Health Rule Violation Opens \u2192 \u201cBT Slow\u201d<\/li>\n\n\n\n<li><strong>Action<\/strong>: Slack\u2014#alerts + Email\u2014SRE On-Call<\/li>\n\n\n\n<li><strong>Rate Limit<\/strong>: Once every 30 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Policy 4: App \u2013 BT Errors<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Event<\/strong>: Health Rule Violation Opens \u2192 \u201cBT Errors\u201d<\/li>\n\n\n\n<li><strong>Action<\/strong>: Slack\u2014#alerts + Email\u2014SRE On-Call<\/li>\n\n\n\n<li><strong>Rate Limit<\/strong>: Once every 30 min<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd39 Policy 5: Recoveries<\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Event<\/strong>: Health Rule Violation Closes (all above rules)<\/li>\n\n\n\n<li><strong>Action<\/strong>: Slack\u2014#alerts (Recovery message)<\/li>\n\n\n\n<li><strong>Rate Limit<\/strong>: Once every 15 min<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<h2 class=\"wp-block-heading\">4) Testing &amp; Validation<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Temporarily lower thresholds (e.g., CPU &gt; 5%) to trigger an alert.<\/li>\n\n\n\n<li>Check <strong>Alert &amp; Respond \u2192 Events<\/strong> for policy hits.<\/li>\n\n\n\n<li>Confirm notifications in Slack and email.<\/li>\n\n\n\n<li>Reset thresholds back to production values.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<p>\u2705 With this pack:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Infra alerts (CPU, memory, container restarts) go to <strong>Email\u2014SRE<\/strong>.<\/li>\n\n\n\n<li>App-level issues (BT slow, BT errors) go to <strong>Slack + Email<\/strong>.<\/li>\n\n\n\n<li>Recovery events let the team know when it\u2019s safe.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\">\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Step-by-step guide to set up and work with alerts in AppDynamics (the screen you shared is the Alert &amp; Respond \u2192 Policies page). 0) How AppDynamics alerts are wired You\u2019ll&#8230; <\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"_joinchat":[],"footnotes":""},"categories":[2],"tags":[],"class_list":["post-52661","post","type-post","status-publish","format-standard","hentry","category-uncategorised"],"_links":{"self":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/52661","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/comments?post=52661"}],"version-history":[{"count":3,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/52661\/revisions"}],"predecessor-version":[{"id":59632,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/posts\/52661\/revisions\/59632"}],"wp:attachment":[{"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/media?parent=52661"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/categories?post=52661"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devopsschool.com\/blog\/wp-json\/wp\/v2\/tags?post=52661"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}