Anatomy of a Modern Node.js Application Architecture SET HEALTH RULES • Alert & Respond > Health Rules END USER EXPERIENCE WEB CONFIGURE • End User Experience > Web > Pages & AJAX Requests • Double-click on selected Page CONFIGURE & VIEW • View Summary Timeline to locate bottleneck • Navigate to AppDynamics Exchange VER • Search for your server • Download and Install extension • Navigate back to AppDynamics Controller • Analyze > Metric Browser VIEW • Find your extension WEB SER • End User Experience > Web > Analyze • Focus on location, browser type, device type, and other combinations to analyze performance. WEB SERVER IOS / ANDROID CONFIGURE & VIEW EX • Navigate to AppDynamics Exchange TERNAL WEBSER • Search for your server VIEW • Download and Install extension • Servers > remote services • Navigate back to AppDynamics Controller • Double-click remote service • Analyze > Metric Browser • Find your extension CHE CA CACHE EXTERNAL WEBSERVICES VIEW VIEW • Troubleshoot > Slow Response Times > VICES • Navigate to Application Flowmap Slowest DB & Remote Service Calls • View latency to your cache server • Select HTTP TRANSACTIONS ERRORS SLOW CODE EXECUTION ANALYSIS CONFIGURE BUSINESS TRANSACTIONS VIEW RUNTIME ERRORS VIEW TRANSACTION SNAPSHOT VIEW APPDYNAMICS MACHINE AGENT • Navigate to Business Transactions • Troubleshoot > Errors > Error Transactions • Application Dashboard > Transaction Snapshots • Download & Install Machine Agent • Right-click Transaction • Double-click Transaction Snapshot > Show Filters • Navigate to Servers > App Servers > • Choose configuration options to organize • Drill Down > Error Details • Select search criteria > Search [Your Node.js Tier] > [Node.js Node] transactions • Double-click Transaction Snapshot • Select Hardware • Start Drill Down • Click on Call Graph OR Hot Spots to view call VIEW UNCAUGHT EXCEPTIONS graph • Troubleshoot > Errors > Exceptions • If Process Snapshot exists, it will have a CONFIGURE TRANSACTION DISCOVERY • Double-click Exception clickable GUID in the Summary tab VIEW HARDWARE • Configure > Instrumentation > Select Node.js Tier • Double-click Transaction Snapshot • Application Dashboard > Transaction Snapshots > • Scroll down to Custom Rules NODE.JS • Drill Down > Error Details Show Filters • Create rules to group, match and exclude your • Select search criteria > Search transactions • Double-click Transaction Snapshot VIEW PROCESS SNAPSHOT • Start Drill Down > Hardware NODE.JS • Navigate to Servers > App Servers > [Your CONFIGURE ERROR REPORTING Node.js Tier] > [Node.js Node] • Configure > Instrumentation > Error Detection > • Click ‘Collect Process Snapshots’ CONFIGURE TRANSACTION API Node.js - Error Detection • Enter a time between 1 and 60 seconds • Use the custom API functions to manually • Configure Ignored Exceptions or Logged NODE.JS • Double-click Process Snapshot in list to view COMPARE RELEASES define the beginning and ending of a Messages • Analyze > Compare Releases transaction from within your code • Select time ranges to compare • Navigate to Business Transactions to view Hint: This is useful in cases where you have a transaction executing jobs in an infinite loop and want to register each job as a transaction. VIEW NODE.JS METRICS • Analyze > Metric Browser > Application Infrastructure Performance • Expand [Node.js tier] > Expand Node.js metrics • View specific additional Node.js metrics VIEW VIEW • Navigate to Servers > Databases • Navigate to your Application Dashboard • Double-click your DB > Flowmap • Select your Node.js Tier • Find Queue Server • View slow queries • View latency to your queue server QUEUE SER DATABASE VIEW QUEUE SERVER VIEW • Application Dashboard > Transaction Snapshots • Application Dashboards > Transaction VER > Show Filters Snapshots • Select search criteria > Search • Find transactions that speak to your Queue ATABASE • Double-click Transaction Snapshot server D • Start Drill Down > SQL Calls • Double-click > Start Drill Down > Call Graph • Find method call that sends job, click to correlate to downstream worker server for associated call graph VIEW DATABASE • Navigate to Application Dashboard > Flowmap • Right-click on Database • Select ‘View in Database Monitoring’ INFO VICES In a service-oriented environment the W INFO performance indicators of the distributed nature ORKER SER When a Node.js application communicates with of the transaction is an integral aspect of an external component that is not being characterizing transaction performance. monitored as part of the same business AppDynamics applies distributed transaction application, such as a database or a message tracing to for all business transactions as well as queue, you can monitor the performance data for for the entire application. Using a tag, trace, and the communication. learn approach, AppDynamics traces the INTERNAL WEBSERVICES WORKER SERVERS VERS transaction context across all tiers, including AppDynamics displays distributed communication JVMs, CLRs, Node.js servers, and calls to HTTP, performance in the business application and SOAP, databases, third party web services, etc. INTERNAL WEBSER DISTRIBUTED TRANSACTIONS business transaction flow maps.