Which two methods are available to define JVM options for an AppDynamics Controller so that the JWM options are retained across upgrades of the Controller? (Choose two.)
Use the modifyJvmOptions utility provided by AppDynamics.
Define JVM options on the Controller Settings page of the Enterprise Console.
Pass JVM options to the Controller via java -javaagent:“options jar”.
Use the controller.sh script provided by AppDynamics.
Define JVM options manually in the domain. xmi file.
According to the Cisco AppDynamics Professional Implementer (CAPI) documents, the two methods that are available to define JVM options for an AppDynamics Controller so that the JVM options are retained across upgrades of the Controller are:
Use the modifyJvmOptions utility provided by AppDynamics. (A) This is a valid method because the modifyJvmOptions utility is a script that allows you to add, remove, or list the JVM options for the Controller without manually editing any files. The utility also validates the syntax and format of the JVM options and creates a backup of the original configuration. The utility is located in the
Define JVM options on the Controller Settings page of the Enterprise Console. (B) This is a valid method because the Controller Settings page of the Enterprise Console is a graphical user interface that allows you to configure various settings for the Controller, including the JVM options. The Enterprise Console is a web-based application that provides a centralized way to manage the AppDynamics platform components, such as the Controller, the Events Service, and the EUM Server. The Enterprise Console also handles the Controller upgrade process and preserves the JVM options that are defined on the Controller Settings page34.
The incorrect options are:
Pass JVM options to the Controller via java -javaagent:“options jar”. © This is not a valid method because the java -javaagent option is used to specify the path to the AppDynamics agent jar file, not the JVM options for the Controller. The agent jar file is used to instrumentthe Java applications that are monitored by the AppDynamics platform, not the Controller itself. The agent jar file also contains the agent configuration properties, such as the Controller host, port, account name, access key, and application name. Passing JVM options to the Controller via this option will not have any effect on the Controller performance or behavior5.
Use the controller.sh script provided by AppDynamics. (D) This is not a valid method because the controller.sh script is used to start, stop, or restart the Controller, not to define the JVM options for the Controller. The controller.sh script is located in the
Define JVM options manually in the domain. xmi file. (E) This is not a valid method because the domain. xmi file is not a configuration file for the JVM options for the Controller, but a configuration file for the WebSphere Application Server. The WebSphere Application Server is a Java EE application server that can be used to host the Java applications that are monitored by the AppDynamics platform, not the Controller itself. The domain. xmi file contains the settings for the WebSphere Application Server, such as the server name, port, security, data sources, and class loaders. Defining JVM options manually in this file will not have any effect on the Controller performance or behavior, and may cause errors or conflicts with the WebSphere Application Server configuration7.
References:
1: Modify JVM Options for the Controller - AppDynamics
2: Release Upgrade Checklist for Controllers - AppDynamics
3: Configure the Controller Using the Enterprise Console - AppDynamics
4: Upgrade the Controller Using the Enterprise Console - AppDynamics
5: Install the Java Agent - AppDynamics
6: Start and Stop the Controller - AppDynamics
7: Configuring the WebSphere Application Server - IBM
What are three valid reasons to use the AppDynamics REST API to retrieve metrics? (Choose three.)
to archive 1-minute granularity data
to create a custom report to be run monthly to show average node availability
to calculate a new metric based on two existing metrics
to evaluate health rules
to retrieve health rule violations
to create an alert using a baseline to send to an internal ticketing system
The AppDynamics REST API to retrieve metrics allows you to get values generated for metrics by specifying the path of the metric and the time frame for the data1. Some of the valid reasons to use this API are12:
To archive 1-minute granularity data. The AppDynamics Controller stores metric data at different levels of granularity depending on the retention period. For example, it stores 1-minute granularity data for 8 days, 10-minute granularity data for 32 days, and 1-hour granularity data for 365 days. If you want to archive the 1-minute granularity data for longer than 8 days, you can use the API to retrieve and store the data in an external database or file system.
To calculate a new metric based on two existing metrics. The AppDynamics Controller provides some built-in metrics such as average response time, calls per minute, errors per minute, etc. However, you may want to calculate a new metric that is not available in the Controller, such as the ratio of errors to calls, or the percentage of slow transactions. You can use the API to retrieve the values of the existing metrics and perform the calculation using your own logic or formula.
To retrieve health rule violations. Health rules are the rules that define the performance and availability thresholds for your application components. When a health rule is violated, the AppDynamics Controller generates an event and optionally triggers a policy action. You can use the API to retrieve the list of health rule violations for a given application, time range, and severity level. This can help you monitor and troubleshoot the health of your application and take corrective actions if needed. References: Retrieve Metric Data, Health Rule API
Which URL retrieves all AppDynamics business transactions from an application using the AppDynamics Rest API?
http(s)://
http(s)://
http(s)://
httpis)://
The AppDynamics Rest API to retrieve business transactions allows you to get a list of all business transactions in a business application, along with their key metrics and properties1. The correct URL format for this API is1:
http(s) ://
The other options are incorrect because12:
Option A uses an invalid endpoint /allbts, which does not exist in the API.
Option C uses an incorrect base URL /controller/applications, which is used for the Controller UI, not the Rest API.
Option D uses a misspelled endpoint /allbis, which does not exist in the API. References: Retrieve All Business Transactions in a Business Application, AppDynamics APIs
What are two recommendations for servers in an Events Service Cluster? (Choose two.)
Should be installed using the same user account,
Should have eight or more CPU cares,
Should be on the same local network,
Should have identical hardware specifications.
Should be running the same operating system version
According to the Cisco AppDynamics Professional Implementer (CAPI) documents, the two recommendations for servers in an Events Service Cluster are:
Should be on the same local network ©: This is a valid recommendation because the Events Service Cluster is based on Apache Cassandra, which is a distributed database that relies on network communication between the nodes. Having the servers on the same local network reduces the network latency and improves the performance and reliability of the cluster. The network bandwidth should be at least 1 Gbps, and the network firewall should allow the required ports for the Events Service Cluster12.
Should have identical hardware specifications (D): This is a valid recommendation because the Events Service Cluster is horizontally scalable, which means that the nodes share the data storage and processing load equally. Having identical hardware specifications for the servers ensures that the cluster is balanced and efficient, and avoids performance bottlenecks or failures due to hardware differences. The hardware specifications should meet the minimum requirements for the Events Service Cluster, such as CPU cores, RAM, disk space, and disk type12.
The incorrect options are:
Should be installed using the same user account (A): This is not a valid recommendation because the Events Service Cluster does not require the same user account for installation. The user account that is used to install the Events Service Cluster should have sudo privileges on the target hosts, but it does not have to be the same for all the hosts. The user account that is used to run the Events Service Cluster should have read and write permissions on the installation directory, but it does not have to be the same for all the hosts either12.
Should have eight or more CPU cores (B): This is not a valid recommendation because the Events Service Cluster does not require eight or more CPU cores for the servers. The minimum requirement for the CPU cores is four, and the recommended requirement is six. Having more CPU cores may improve the performance of the cluster, but it is not a mandatory recommendation12.
Should be running the same operating system version (E): This is not a valid recommendation because the Events Service Cluster does not require the same operating system version for the servers. The Events Service Cluster supports various Linux operating systems, such as CentOS, Red Hat, Ubuntu, and SUSE. The operating system version should be compatible with the Events Service version, but it does not have to be the same for all the hosts12.
References:
1: Events Service Requirements - AppDynamics
2: Events Service Deployment - AppDynamics
What are the correct steps to install a .NET Agent patch?
Uninstall the existing .NET Agent
Install the patch
Restart the instrumented application(s)
Restart the machine
Install the patch over exiting .NET agent
Restart instrumented applications(s)
Install the .NET Agent patch
Restart the instrumented application(s)
Restart the instrumented application(s)
Apply the patch over existing NET agent
To install a .NET Agent patch, which is a minor update to the existing .NET Agent version, you do not need to uninstall the old agent or restart the machine. You only need to follow these steps:
Download the .NET Agent patch from the AppDynamics Download Center.
Launch an elevated command prompt with full administrator privileges.
Execute the Installer.bat file from the patch archive. The batch file installs the patch and starts the AppDynamics Agent Coordinator service.
Restart the instrumented applications, such as IIS, Windows services, or standalone applications.
References: .NET Agent and How do I deploy a .NET Agent? in the AppDynamics documentation and community.
Which directory should an administrator back up if the goal is to back up the EUM Server?
The
Which implementation mode should be used when deploying an EUM Server with reverse proxy from a security and performance standpoint in a production environment?
Install the EUM Server on the same host as the Controller, behind the reverse proxy.
Install the EUM Server on a separate host from the Controller, in front of the reverse proxy.
Install the EUM Server on the same host as the Controller, in front of the reverse proxy.
Install the EUM Server on a separate host from the Controller, behind the reverse proxy.
The EUM Server is the on-premises version of the EUM Cloud that receives, processes, and stores data from EUM agents. For production installation, AppDynamics recommends that the EUM Server and the Controller sit on different hosts, and the EUM Server hosts its own MySQL instance. This improves the scalability and performance of both components. Moreover, AppDynamics strongly recommends that SSL traffic from agents to the EUM Server is terminated at a reverse proxy that sits in front of the EUM Server in the network path, and forwards connections to the EUM Server using HTTP. This relieves the SSL processing load from the EUM Server, simplifies the certificate management, and enhances the security by isolating the EUM Server from the external Internet. Therefore, the best implementation mode for deploying an EUM Server with reverse proxy in a production environment is option D. References: EUM Server Deployment, Install a Production EUMServer, Reverse Proxy configuration for EUM, and Browser EUM installation in the AppDynamics documentation and community.
A Java-based web application was instrumented. The browser snapshots provide a detailed look at an individual page request, however the correlated server-side snapshots are missing for
all requests. What are two reasons for this missing correlated server-side snapshots? (Choose two.)
Server has set the the HitpOnly flag on all cookies.
Correlated server-side snapshots work only for NET Applications.
Correlated snapshots are visible only if the injection mechanism is Automatic.
Correlated snapshots are visible only if browser is Chrome.
Server side application is not instrumented with server agent.
Correlated server-side snapshots are visible only if Java version is 1.7+.
According to the Cisco AppDynamics Professional Implementer (CAPI) documents, the two reasons for the missing correlated server-side snapshots are:
Server has set the HttpOnly flag on all cookies. (A) This is a valid reason because the HttpOnly flag is a security feature that prevents client-side scripts from accessing the cookies. However, the AppDynamics JavaScript Agent relies on the cookies to correlate the browser snapshots with the server-side snapshots. The JavaScript Agent injects a cookie named _appdyn_browser into the browser requests, which contains the correlation information. If the server sets the HttpOnly flag on all cookies, including the _appdyn_browser cookie, the JavaScript Agent cannot read or modify the cookie, and the correlation fails. To enable the correlation, the server should not set the HttpOnly flag on the _appdyn_browser cookie12.
Server-side application is not instrumented with server agent. (E) This is a valid reason because the server-side snapshots are collected by the AppDynamics app agents that instrument the application servers. The app agents monitor the business transactions that are executed by the server-side application, and capture the execution context, call graphs, errors, and metrics. If the server-side application is not instrumented with the app agent, the server-side snapshots are not available, and the correlation fails. To enable the correlation, the server-side application should be instrumented with the app agent that is compatible with the application server and the Controller34.
The incorrect options are:
Correlated server-side snapshots work only for .NET Applications. (B) This is not a valid reason because the correlated server-side snapshots work for any application server that is instrumented with the AppDynamics app agent, not only for .NET applications. The AppDynamics platform supports various application servers, such as Java, .NET, PHP, Node.js, Python, and C/C++. The app agents collect the server-side snapshots for the business transactions that are executed by the application server, regardless of the programming language or framework34.
Correlated snapshots are visible only if the injection mechanism is Automatic. © This is not a valid reason because the correlated snapshots are visible regardless of the injection mechanism. The injection mechanism refers to the way the AppDynamics JavaScript Agent is inserted into the web pages. There are two injection mechanisms: Automatic and Manual. The Automatic injection mechanism uses the app agent to inject the JavaScript Agent into the web pages that are served by the application server. The Manual injection mechanism requires the user to manually insert the JavaScript Agent into the web pages. Both injection mechanisms support the correlation of the browser snapshots and the server-side snapshots, as long as the JavaScript Agent and the app agent are configured correctly .
Correlated snapshots are visible only if browser is Chrome. (D) This is not a valid reason because the correlated snapshots are visible regardless of the browser. The AppDynamics JavaScript Agent supports various browsers, such as Chrome, Firefox, Safari, Edge, and Internet Explorer. The JavaScript Agent collects the browser snapshots for the web pages that are loaded by the browser, and correlates them with the server-side snapshots, regardless of the browser type or version .
Correlated server-side snapshots are visible only if Java version is 1.7+. (F) This is not a valid reason because the correlated server-side snapshots are visible regardless of the Java version. The AppDynamics Java Agent supports various Java versions, such as 1.5, 1.6, 1.7, 1.8, and 11. The Java Agent collects the server-side snapshots for the business transactions that are executed by the Java application server, and correlates them with the browser snapshots, regardless of the Java version or vendor .
References:
1: Browser Snapshots - AppDynamics
2: Troubleshoot Browser RUM - AppDynamics
3: Transaction Snapshots - AppDynamics
4: Supported Environments and Versions - AppDynamics
[5]: Browser Real User Monitoring - AppDynamics
[6]: Set Up and Configure Web EUM - AppDynamics
[7]: Browser Support - AppDynamics
[8]: Java Agent - AppDynamics
[9]: Java Supported Environments - AppDynamics
Which two statements are true about instrumenting standalone Windows services with NET Agent? (Choose two.)
AppDynamics .NET Agent does NOT support instrumenting process running multiple App domains.
AppDynamics.NET Agent automatically discovers all the Windows services to be instrumented.
AppDynamics.NET Agent can instrument both 32-bit as well 64-bit processes.
AppDynamics.NET Agent requires that the Windows services is running under the "App.pool identity user" account.
AppDynamics .NET Agent supports instrumentation of multiple instances of the same application.
The AppDynamics .NET Agent can instrument both 32-bit and 64-bit processes, as long as they are running on a supported .NET Framework version and operating system. The agent automatically detects the process architecture and loads the appropriate profiler DLL. You can also specify the process architecture manually in the agent configuration file1. The AppDynamics .NET Agent also supports instrumentation of multiple instances of the same application, such as Windows services or standalone applications. You can configure the agent to assign different tier and node names for each instance, based on the process name, process ID, or command line arguments. This allows you to monitor the performance and health of each instance separately2.
The other statements are false because:
A. AppDynamics .NET Agent does support instrumenting processes running multiple App domains. The agent can monitor multiple App domains within a single process, as long as they are running the same .NET Framework version. The agent can also monitor multiple applications within a single App domain, by using the Standalone Applications element in the agent configuration file3.
B. AppDynamics .NET Agent does not automatically discover all the Windows services to be instrumented. The agent automatically instruments IIS applications only. For Windows services or standalone applications, you need to manually configure the agent by editing the agent configuration file and adding the Windows Services or Standalone Applications element. You also need to provide the executable name, tier name, and node name for each service or application4.
D. AppDynamics .NET Agent does not require that the Windows services are running under the “App.pool identity user” account. The agent can instrument Windows services running under any user account, as long as the account has sufficient permissions to load the agent profiler DLL and access the agent configuration and log files. The “App.pool identity user” account is only required for IIS applications that run in an application pool5.
References: .NET Agent Configuration Properties, Configure the .NET Agent for Windows Services and Standalone Applications, Instrument the DefaultDomain for Standalone Applications, Install the .NET Agent for Windows, Administer the .NET Agent
Why would a load balancer be deployed in production for a single-node events cluster?
to use the embedded Events Service along with the single-node cluster
to hide the events server's real name
to allow for deployment growth in the events cluster
to provide redundancy for the single-node
A load balancer is a network device that distributes incoming traffic among a group of servers or nodes. A load balancer can improve the performance, availability, and scalability of a service bybalancing the load and providing failover mechanisms. In the context of AppDynamics, a load balancer can be used to route the traffic from the Controller and other Events Service clients to the Events Service nodes. The Events Service is the on-premises data storage facility for unstructured data generated by Application Analytics, Database Visibility, and End User Monitoring deployments.
One of the reasons why a load balancer would be deployed in production for a single-node Events Service cluster is to allow for deployment growth in the future. A single-node Events Service cluster is suitable for test environments or small-scale deployments, but it does not offer data replication or scalability. If the data volume or availability requirements increase, the Events Service cluster needs to be expanded to a multi-node cluster, which consists of three or more nodes. Deploying a load balancer in front of a single-node Events Service cluster makes it easier to add more nodes later, without having to modify the configuration of the Controller and other Events Service clients. The load balancer can also provide a single endpoint for the clients and enable load balancing and failover among the nodes1.
The other options are not valid reasons for deploying a load balancer for a single-node Events Service cluster. Option A is incorrect, because the embedded Events Service is not meant to be used along with the single-node cluster, as it runs on the same machine as the Controller and does not offer data replication or scalability. The embedded Events Service is only used by the Database Visibility product by default, and it is not recommended for production Application Analytics or EUM installations1. Option B is incorrect, because hiding the Events Service server’s real name is not a security or performance benefit, and it can be achieved by other means, such as DNS or firewall rules. Option D is incorrect, because a load balancer cannot provide redundancy for a single-node, as there is no other node to fail over to in case of a node failure. A load balancer can only provide redundancy for a multi-node cluster, which has data replication and fault tolerance1. References: Events Service Deployment in the AppDynamics documentation.