| Interface | Description |
|---|---|
| ClassTransformerService | |
| StartableClassFileTransformer |
| Class | Description |
|---|---|
| AbstractClassTransformer | |
| AbstractImplementationClassTransformer | |
| AddInterfaceAdapter |
Add an interface to the visited class or interface.
|
| AgentWrapper |
This class helps us instrument bootstrap classloader classes.
|
| ClassLoaderCheck |
This class verifies that classloaders have visibility of our classes.
|
| ClassLoaderClassFinder |
The purpose of this ClassFinder instance is to return a URL to the bytes of the given ClassLoader name which
is stored internally in the Agent in the "observedClassLoaders" map.
|
| ClassNameFilter |
This filter is used to skip certain classes during the classloading transform callback based on the class name.
|
| ClassTransformerServiceImpl | |
| DefaultPointCut | |
| FieldAccessorGeneratingClassAdapter |
Visit a class to add field accessor methods.
|
| GenericClassAdapter |
We have two strategies for instrumenting methods.
|
| InstrumentationImpl | |
| InstrumentationUtils | |
| InstrumentUtils | |
| InterfaceImplementationClassTransformer | |
| InterfaceMixinClassTransformer | |
| InvocationHandlerTracingMethodAdapter |
This method adapter fetches the method tracer by invoking the handler stored in the static field named
MethodBuilder.INVOCATION_HANDLER_FIELD_NAME. |
| MethodBuilder | |
| MethodMappersAdapter |
Visit a class to add method mappers to it.
|
| PointCut |
PointCuts match certain class/method signatures.
|
| PointCutClassTransformer |
Class transformer for legacy instrumentation.
|
| PointCutConfiguration |
Stores the configuration information for a pointcut, such as whether or not the pointcut should be enabled.
|
| ReflectionStyleClassMethodAdapter |
The schema of classes which are already loaded cannot be modified with a retransformation.
|
| RequireMethodsAdapter |
Visit a class or interface to verify it declares required methods.
|
| TraceAnnotationInfo | |
| TracerFactoryPointCut |
| Enum | Description |
|---|---|
| NonUrlClassLoaders |
| Exception | Description |
|---|---|
| StopProcessingException |
This exception can be thrown to stop processing class bytes if it is determined that the class is not of interest.
|
The instrumentation package contains the meat of the New Relic byte code instrumentation.
PointCuts define instrumentation points. Here is an overview of the New Relic instrumentation points:
| Class | Instrumentation Purpose |
| Servlet | |
|---|---|
| ServletInitPointCut | Servlet initialization |
| ServletPointCut | Servlet invocations |
| JspServletPointCut | JSP invocations |
| JspTagPointCut | JSP taglib invocations |
| Struts | |
| StrutsActionPointCut | Struts actions |
| StrutsActionConfigMatcherPointCut | Normalizes urls that use wilcard patterns |