<!--
This is the custom profiling configuration file for XRebel.

ENTRY POINTS
You can define custom entry points or change the names of existing ones.
 
Listing a fully qualified class name sets all PUBLIC methods in that class as entry points.
You can also specify interfaces and abstract classes in the same way to instrument their abstract methods in all implementing and extending classes.
<entryPoint class="com.pkg.MyClass"/>
 
Adding a method name traces only that specific method, which can also be private.
<entryPoint class="com.pkg.MyClass" method="privateMethod"/>
 
Wildcards can be used to instrument groups of classes or methods. The example below sets all CONCRETE methods of all classes in com.pkg with a name beginning with "navigate" as entry points.
<entryPoint class="com.pkg.*" method="navigate*"/>



CUSTOM NAMING
There are two ways to match an entry point for renaming: by class name or by the URL pattern. Both should not be used simultaneously. 
Entry point names are used as the means to add custom names to requests either for easier recognition or to avoid IO requests ending up in "unidentified" context.

Examples:
<entryPoint class="com.pkg.SpaghettiController" setName="Enter spaghetti"/>
Any request hitting the com.pkg.SpaghettiController's public methods will be shown as the 'Enter spaghetti' entry point.

<entryPoint class="com.pkg.PizzaDAO" method="bakeMethod" setName="${package}.${class}.${method}() is baking"/>
Any request hitting com.pkg.PizzaDAO.bakeMethod() will be shown as the 'com.pkg.PizzaDAO.bakeMethod() is baking' entry point.

<entryPoint pattern="POST /*/graphql/*" setName="${url} ${requestHeader:x-queryName} ${responseHeader:x-cuisineType}"/>
A request posted to the /appname/graphql/ endpoint will be shown as the '/appname/graphql/ lasagnaQuery italian' entry point, provided 'lasagnaQuery' and 'italian' are header values.

Supported expressions:
${url}								Request URL without query parameters.
${httpMethod}						HTTP method.
${requestHeader:%header-name%}		Value of the specified HTTP request header.
${responseHeader:%header-name%}		Value of the specified HTTP response header.
${queryParameter:%parameter-name%}	Value of the specified query parameter.
${package}							Full package name. Available if entry point is filtered by class.
${class}							Simple class name. Available if entry point is filtered by class.
${method}							Method name. Available if entry point is filtered by class.

Alternatively, a custom string can be appended to the current entry point name. The example below adds " bake":
<entryPoint class="com.pkg.PizzaDAO" method="bakeMethod" appendToName=" bake"/>
-->
  
<profilingConfig>
    <entryPoint class="com.pkg.ExampleClass" method="exampleMethod" setName="Example"/>
</profilingConfig>