Flashcards in Sample Questions Deck (66):
True or false: you should expect a Java servlet container to support EJBs.
False. EJBs are supported by J2EE-compliant application servers, but typically not by servlet containers.
True or False: BT response times only measure the response time for a single thread, not an entire asynchronous BT
true (use E2E latency for the entire async BT)
Why are some lines between Tiers solid and some dashed on the app flow map?
the dashed lines indicate asynchronous behavior, whereas the solid ones indicate synchronous behavior.
Do you support Spray with Scala?
Yes, but Spray is not supported as a first-class Web framework by AppD, meaning that BT detection will not be automatic, E2E detection will have to be configured, and there is a good chance some custom correlation might be needed. IOW, this is a complicated environment.
The customer informs you that their application is using some fancy classloader logic, and they want to detect BTs from classes in one specific class loader, even though the same class name is used in other class loaders. Is this possible?
Not without further information
Show how to configure a rule from an inner class that is an interface
Must know it's doable!
Class name syntax
Proper selection of "implements an interface
You have discovered that the customer's environment uses an OSGi container. What is your next step?
As of October, 2016, what must you do to configure the Java agent to work with modules?
Modules have not appeared in any JDK shipping as of 2016, so there is nothing to do – you won't see them until at least Java 9.
rue or False: Java supports more than one type of classloading scheme
In AppD 4.2 what are the two NoSQL databases we support?
Cassandra and MongoDB
How many of these databases are relational databases?
PostgreSQL and Oracle
What does AppD Support OOTB?
PostgreSQL (aka "Postgres")
How do I get the bind variables to show in queries?
capture-raw-sql node property
I'm using a just-released JDBC driver for MySQL. Will you work with my driver?
yes, but we'd likely have to set one or all of these properties in app-agent-config.xml:
How can you find the call chain of a method that does not appear in snapshots?
set the node property debug-interceptors on the class and method
show the syntax for simultaneously setting debug-interceptors on com.foobar.MyClass, method get() and also on the constructor of com.foobar.MyOtherClass
What tool is available and when should decompiling be used?
Tool: GUI-based tool is called JD-GUI
When: done with consent of the customer. Try to avoid.
What is "Spring" ?
Spring may be used to mean an alternative to EJBs (Spring Beans) or any combination of the Spring projects.
Can application use both Spring Beans and EJBs?
Yes (but it is unlikely you'd actually see an application like that)
Show me an example of Spring support *in a demo
The easiest way to do this is to show Spring Bean transaction detection
Customer asks if AppDynamics support the Spring framework.
Yes! However, no credit will be given unless you get this question clarified. Which specific Spring projects?
From the options, what supports ESB like semantics but isn't an ESB?
Will AppDynamics work with Mule ESB OOTB?
Typically the answer is no, not OOTB. ESBs almost always require some advanced configuration. Exact versions of the ESB and any sub-packages is always needed.
In a BT log how can you distinguish find-entry-points output from regular BT logging output?
"Discovery stack" vs. "Logging request stack".
Show how to set node properties
Tiers & Nodes → (specific node) → Configure.
which Java releases use PermGen vs. Metaspace?
PermGen is Java 7 and Metaspace is Java 8. WHY? Because it directly affects the metrics that can be set for threshold alerts, which can be a forewarning of an upcoming JVM crash.
How do you turn on Java Garbage collection and turn it of via the CLI?
-xx to turn on and -XX to turn off
My application uses a 4 GB heap. Which garbage collector is likely best?
Where can I see when garbage collection is happening
on the Memory tab in a Node page
Your customer used to have constant problems hitting the dreaded "OutOfMemoryError: PermGen space" problem, but now claims that they have "fixed" the problem by moving to Java 8. From that information, you conclude you should put a health rule on what?
EJB classes are commonly seen in War files
False. EJBs are part of the full J2EE specification and are typically found in Ear files, not War files.
Your customer is using a standard J2EE application server. Before AppDynamics gets configured or starts up, and assuming the customer allows you to see files on the filesystem, how can you know in advance what business transactions you should expect to see?
Look at the web.xml deployment descriptors in the app server directories.
Would you expect to find the interface for a JMS message in a J2SE environment?
Would you expect to find the interface for a JMS message in a J2EE environment?
AppDynamics can automatically discover EJB methods as business transactions. In which Java environment is this most likely to be useful (J2SE or J2EE)?
It is possible to use JMS messaging in a J2SE environment, with no app server or servlet container. What must be configured in the environment to do this?
the code for the JMS functionality must somehow be provided to the environment. Specifically, the classpath or OSGi environment must be configured to know where to find implementation classes for JMS, as well as the base interface specifications for JMS.
how many of these languages can AppDynamics monitor?
5 (all but Erlang)
My app uses Play framework, not servlets. Will my Play BTs be discovered automatically?
Can you instrument Guidewire?
Guidewire is an application, the language it uses is Gosu. We have had success instrumenting Guidewire, but since changes to the underlying Gosu language are not published regularly we don't know what custom configuration (if any) might be needed for your particular app.
Do we support Java version 5 and below?
If you're using JRockit and it's errors, what should you do?
Kill the process and restart it.
What is a limitation of Websphere and Java?
You have to use the java version bundled.
What Java version should you avoid?
Java 6, has a bug.
In a TDD. What should you get from your customer regarding Java?
get the Java vendor and version number for each tier. Validate on the controller UI for each agent started.
What are the two ways to diagnose memory problems?
ALD (Automatic Leak Detection) and Object Instance Tracking (OIT)
A Java class that has a leak whereby objects are held in array objects can be detected by
OIT (and NOT ALD!)
What library MUST be present in order to use Object Instance Tracking?
tools.jar, which is included in the JDK bundle but not in the JRE bundle.
Show how to set node properties
Tiers & Nodes → (specific node) → Configure.
ustomer is impressed by your description of realtime business metrics, and wants to configure some in their application. The customer tells you that a value of interest is part of a specific POJO-based business transaction, but has no specifics and cannot show you source code. What can you do in AppDynamics to find more information needed to configure the info point?s
set the node property print-class-info on the class used for BT detection.
What questions should you ask in a TDD about Messaging frameworks?
Determine if the messaging package is one of the ones supported OOTB. If so, most or all of the work is already done. Expect all JMS implementations, as well as RabbitMQ, to have OOTB support.
Try to determine if there are any receive() loops, which will require some configuration.
If the messaging package is not supported OOTB get the specific product and version information for the implementation. Finding a download or vendor link is helpful in case you need to engage support or other team members.
Also try to get a code sample if a framework is not one that is supported OOTB.
Does AppDynamics support Akka?
You realize that you may need to use the threadprofiler service at a customer visit later in the week. What do you need to do to prepare?
validate the exact agent version; check for a matching build on the threadprofiler wiki site; request a build for your agent if there is not one already
What is the most commonly downstream tiers in BTs, and so do not require any naming configuration.
When do you need to watch for microservice web services,
When the Heap is less than 1Gb
a node maps 1:1 with what?
a JVM instance
hat node property can be used to understand the API structure of a Java class?
A customer uses a brand-new open-source asynchronous HTTP framework you have never heard of. Should you expect OOTB BT detection?
No. That doesn't mean it won't happen, but expect that you will have to do some configuration
You find out in a TDD that your customer is using a brand-new open-source asynchronous HTTP framework you have never heard of. What should you do before starting a POV?
Since the framework is open-source, you should thoroughly review the APIs of the framework, to understand what code is involved when HTTP requests are made. If possible, confirm with your customer ahead of time that your findings agree with the way they built their app. Also, in any new software, it is common for significant changes between minor releases, so make sure you are working with the correct version of the code.
App-agent-config.xml contains what four main points?
What is commonly edited on fork-config?
job elements define the classes to be instrumented. The methods instrumented will be the constructor and the method in the filter-value attribute of the method-name element.
exclude and excludes elements are exceptions to the job configuration, to avoid over-instrumentation.
include elements are exceptions to any excluding, so you can exclude a package structure but then create an include exception for a specific class.
Can I change the configuration of the JMX collection interval in controller-info.xml?
No, that configuration is in app-agent-config.xml
Can I limit the JMX metrics gathered?
es, by default (i.e. OOTB) only a small number of JMX metrics are gathered, you must explicitly configure others to show up in the metric tree (and thus to be used in health rules).
You are in a competitive POV with a QA group that involves all three of the big APM competitors. Which competitor should you be most concerned with?
Dynatrace says they capture PurePaths for 100% of the user transactions, and you're saying you only capture some snapshots. Why shouldn't I go with Dynatrace, since they give me all of the information and you don't?
Dynatrace does not give "all of the information." They manage the overhead of gathering all PurePaths by reducing the visibility of the code in each PurePath, so that when load increases you see less and less information in each and every PurePath. AppDynamics always gives you full call graph resolution in the Snapshots we collect, because we are the only APM vendor that will intelligently gather the Snapshots you need to see.
What is the main requirement that would rule out New Relic?
If SaaS is not an option, then New Relic is not an option.