Profiles – Overview

Profiles are a set of configuration files that help ND Collector to identify the agent specific configuration (such as Java, .NET, NodeJS, PHP, and Python). User can apply Profiles at any level (such as tier, server, or instance). The application displays the created profiles in the Profile List section.

User can create a new profile, import a profile, export a profile and delete a profile. The detailed description of these actions is provided in the subsequent sections.

Create a Profile

To create a profile, follow the below mentioned steps:

  1. Click the Configure button at the top-right corner of the Profile section or the Profile menu on the left pane.
  2. The Profile details are displayed in a new window.

3. Click the Add Profile icon to create a new profile. The Add Profile window is displayed.

  1. Specify the profile name and its description.
  2. Select an agent from the drop-down list.
  3. To copy an existing profile, select the Copy Profile drop-down list and select the profile to be copied.
  4. Click the Save button to finalize the profile creation process. The profile is created and displayed in the profiles list.

Export a Profile

User can export a profile or multiple profiles to a predefined configuration folder. The selected profile(s) are exported as a zip folder containing all the selected profile related files. To export profile(s), select the profile(s) from the list and click the Export Profile button. After successful exporting, a confirmation message is displayed.

Import a Profile

To import a profile from file system, click the Browse button. A window is displayed from where user can browse the file and upload to the profile list. User can search for a profile too.

Delete a Profile

To delete profile(s), from the list, select the profile(s) from the list and click the Delete button. The profile is deleted from the list.

Setting Profiles

Once the profile is created / imported, user can perform configuration on the profile. For this, user needs to click the profile name from the list. The profile configuration window is displayed.

A user can perform following settings on profile. The detailed description is each setting is provided in the subsequent sections:

  • General Settings
  • Instrumentation Settings
  • Advance Settings
  • Product Integration Settings
General Settings

In this section, user can perform general settings for profile, such as flowpath capturing, hotspot capturing, capture exception, flowpath header capturing, choose instrumentation profile, and capture percentile. To perform general settings, General Settings link and navigate to the particular category in this section.

These are following sub-sections under general settings:

FlowPath Capturing

Here, user can enable / disable flowpath capturing by agent with default settings. It is enabled by default. For more settings, click the Flowpath link. A window is displayed with various tabs, such as Flowpath, Hotspot, Exception capturing, Header, custom data, and Instrumentation Profiles. Go to Flowpath tab.

User can perform the following settings under FlowPath Capturing Settings window.

  • Flowpath Instrumentation (%): The specified percentage of flowpath(s) are captured for all business transactions monitored by application agent. Slow, very slow, and error flowpaths are always captured.
  • Merge Thread Callouts: For JBOSS server, when a user selects this check box, it will merge the thread callouts (child flowpaths) in the main flowpath.
  • HTTP Header Name for CorrelationID: HTTP header name used by application to pass correlationID across topology.
  • Capture Method Thread ID: For JBOSS server, when a user selects this check box, ‘Thread ID’ column is displayed in Method Calling Tree.
  • Capture callstacks of all offending business transaction(s): Capture method calling stack of slow/very slow/error business transaction(s) for all flowpath(s).
  • CPU Profiling: Capture CPU time consumed by
    • Business transaction(s) OR
    • Business transaction(s) and method(s).
  • Capture Time Breakdown: Capture wait and sync time by
    • Business transaction(s) OR
    • Business transaction(s) and method(s).
  • Optimize Flowpath data size: Upon selecting this check box, user can optimize flowpath data size by specifying filters for methods response time. For this, user first needs to select the Method Response time filter check box. Then, user can specify filter criteria for normal / slow/ very slow method response time.
  • Capture Flowpath method Stack Trace: To capture flowpath method stack-trace, select this check box, specify threshold duration of method, and stack trace depth
HotSpot Capturing

Here, user can enable/disable capturing of thread hotspots using BCI auto sensor. For settings, click the Hotspot tab. The Settings window is displayed.

This window is divided into two sections – Hotspot Detection settings and Filter settings. Here, we are describing about the details that can be configured for each section.

Hotspot Detection Settings

There are following sections under this:

  • Thread Sampling Interval: The provided value defines the frequency interval for collecting thread samples.
  • Consecutive matching samples to mark as Hotspot: Number of consecutive thread sample having same stack trace.
  • Compare top <n> stack frames of same thread: Compare top <n> stack frames of same thread in consecutive matching samples.
  • Enable Method Hotspot sensor: Upon selecting this check box, method hotspot sensor is enabled in the hotspot detection.
  • Maximum Stack depth difference in consecutive matching samples: To consider a method as Hotspot, search stuck methods in consecutive thread samples whose stack depth difference is not more than the specified value. The default value is 20.
  • Transaction based HotSpot(s): Upon selecting this check box, the user can capture transaction based hotspot(s).
  • Max threads for Transaction hotspot(s): After selecting the ‘Transaction based HotSpot(s)’ check box, the user needs to specify the size of threads for the transaction based hotspot(s). The default size is 10000.

Filter Settings

There are following sections under this:

  • Minimum Hotspot Thread Depth: The provided value defines the minimum depth of thread stack trace to be captured for hotspot.
  • Thread names to be included in Hotspot: Consider only provided thread names for hotspot detection from all threads of application.
  • Thread names to be excluded in Hotspot: Do not consider provided thread names for hotspot detection.

User can reset the values using the following buttons:

  • Reset to Default: It allows users to set the configuration of that particular screen with its Default settings.
  • Reset: It allows users to set the configuration of that particular screen with its currently saved value.
Exception Capturing (Java)

Exceptions are events that occur during the execution of programs that disrupt the normal flow of instructions (e.g. divide by zero, array access out of bound, etc.). In Java, an exception is an object that wraps an error event that occurred within a method and contains Information about the error including its type.

Here, user can perform configuration for exception capturing and can apply filters to that. For settings, click the Exception tab. Three sections are displayed – Exception, Advanced, and Filter.

Exception

There are following configurations within this section:

When enabled, exceptions are captured. Within this, a user can select more options as mentioned below:

  • To capture exceptions logged using API (such as util. logging, log4j, ATG logger), select the subsequent check box.
  • Select the check box to capture all the handled exceptions using try-catch instrumentation. Provide the exceptions that need to be excluded or included in the respective text boxes.
  • Specify <n> frames of exception stack trace to be captured.
  • User can capture exceptions from un-instrumented flowpath(s) too.

Advanced

Here, user can specify the criteria to capture stack trace. There are multiple options:

  • Disable: Stack trace of exceptions are not captured
  • Stack Trace only: Only stack trace of exceptions are captured
  • Stack Trace with Source code only: Stack trace of exceptions with source code are captured

User can select any one from them.

Filter

This is used to apply filtering in captured exceptions. Here, system displays a list of exception filters with details, such as pattern, mode, and operation. To apply filters, select Enable Exception Filters check box.

User can import a pattern file from NDE box or from a local machine (.txt and .ecf),

  • Add a filter: Select the operation, then specify a pattern, and then select the mode (either enable or disable). Pattern is the name of the exception used for monitoring purpose (for example: ArrayIndexOutofBound, NullPointer exceptions etc.)
  • Edit an existing filter
  • Delete a filter

To add an exception filter, click the Add button . A window is displayed to add an exception filter.

Select the operation from the drop-down list and specify the pattern accordingly. To enable this exception filter, select the Mode check box. To save the details, click the Save button.

Exception Capturing (.NET)

The user can also perform configuration for exception capturing in .NET agent. For settings, there are following configurations within the Exception section:

When enabled, exceptions are captured. In addition, to capture exceptions logged using API, select the subsequent check box. Furthermore, specify <n> frames of exception stack trace to be captured. The user can capture exceptions from un-instrumented flowpath(s) too. Click Save to save the details.

Flowpath Header Capturing

HTTP headers allow the client and the server to pass additional information with the request or response. Here, user can enable / disable the capturing of HTTP request and response headers. For more settings, click the Header tab. The Flowpath Header Settings window is displayed.

  • Capture HTTP Request Header: When enabled, HTTP request headers are captured. User can capture ‘all’ or ‘specified’ headers. In case of ‘specified’, select request header(s) from the drop-down list. User can limit the captured header values up to specified characters too.
  • Capture HTTP Response Header: When enabled, HTTP response headers are captured. User can capture ‘all’ or ‘specified’ headers. In case of ‘specified’, select response header(s) from the drop-down list. User can limit the captured header values up to specified characters too.
Custom Data

In this section, user can capture custom data from method, session attribute, HTTP request header, and HTTP response header.

Method

Here, user can capture custom data from method. This section displays method based custom header rules, with details such as fully qualified method name, return type, and argument type. User can perform following operations:

Add method rule to capture custom headers

Provide fully qualified method name: This denotes the complete name including package, class, and method.

Enable/Disable Custom Header from Method Return value(s): When enabled, select the method return value rule(s) from the list or add a new one.

This table displays following columns:

  • Header Name: Name of the header.
  • Data Type: Data type, such as String, Integer, and Decimal.
  • Operation: It contains operation, such as capture, invocation, equals, not equals, contains, starts with etc.
  • Header Value: Value of the header.
  • Show in Method Calling Tree: When enabled, the custom is displayed in the method calling tree.

For adding a new rule, provide header name within which the captured data will be dumped, select the data type, select operation which are defined for different type of return values (string or object type, numeric type, byte or character type, and Boolean type), and specify the header value. User can also enable capturing of custom header or display custom header in method calling tree. Upon selecting the later one, the  custom header is displayed in the method calling tree and corresponding entry is displayed in the table.

Enable/Disable Custom Header from Method Argument(s): When enabled, select the method argument rule(s) from the list or add a new one.

This table displays following columns:

  • Header Name: Name of the header.
  • Data Type: Data type, such as String, Integer, and Decimal.
  • Operation: It contains operation, such as capture, invocation, equals, not equals, contains, starts with etc.
  • Header Value: Value of the header.
  • Show in Method Calling Tree: When enabled, the custom is displayed in the method calling tree.

For adding a new rule, provide header name within which the captured data will be dumped, argument index targeted for provided condition, select the data type, select operation which are defined for different type of return values (string or object type, numeric type, byte or character type, and boolean type), and specify the header value. User can also enable capturing of custom header or display custom header in method calling tree.


Apart from this, user can edit or delete a method rule.

Session Attribute

Here, user can capture custom data from session attribute. There are three options:

  • None: No data is captured
  • All: Data from all session attributes are captured
  • Extract value: Upon selecting this, a list of session attribute based custom header rule(s) is displayed with following details:
    • Attribute name: Name of the attribute.
    • Capture mode: Capture mode is either complete or extracted.
    • Header names: This is the name of the header specified when user selects the “extracted” mode.

User can select the rule from the list or can add a new one. For adding a new session attribute rule, provide attribute name and select either:

  • Complete Value: On selecting the Complete Value check box, it captures the complete value of given response header.
  • Extract Value: On selecting the Extract Value check box, it captures the given response header based on left bound and right bound.

Further, upon selecting ‘Extract Value’, a list of extraction rule(s) is displayed with following details:

  • Header name: Header to be captured.
  • Data type: Data type can be one of the following: String / Integer / Decimal
  • Left bound: A part of header value string.
  • Right bound: A part of header value string.

User can select an extraction rule from the list or can add a new one. For adding a new rule, provide header name, data type, left bound, and right bound.

HTTP Request Header

Here, user can capture custom data from request header. There are three options:

  • None: No data is captured
  • All: Data from all request headers are captured
  • Extract value: Upon selecting this, a list of HTTP request header based custom header rule(s) is displayed with following details:
    • Request Header name
    • Capture mode
    • Header names

User can select the rule from the list or can add a new one. For adding a new HTTP request header based custom header rule(s), provide request header name and select either:

  • Complete Value
  • Extract Value

Further, upon selecting ‘Extract Value’, a list of extraction rule(s) is displayed with following details:

  • Custom Header name
  • Data type
  • Left bound
  • Right bound

User can select an extraction rule from the list or can add a new one. For adding a new rule, provide custom header name, data type, left bound, and right bound.

HTTP Response Header

Here, user can capture custom data from response header. There are three options:

  • None: No data is captured
  • All: Data from all response headers are captured
  • Extract value: Upon selecting this, a list of HTTP response header based custom header rule(s) is displayed with following details:
    • Attribute name
    • Capture mode
    • Header names

User can select the rule from the list or can add a new one. For adding a new HTTP response header based custom header rule(s), provide response header name and select either:

  • Complete Value
  • Extract Value

Further, upon selecting ‘Extract Value’, a list of extraction rule(s) is displayed with following details:

  • Custom Header name
  • Data type
  • Left bound
  • Right bound

User can select an extraction rule from the list or can add a new one. For adding a new rule, provide custom header name, data type, left bound, and right bound.

Instrumentation Profiles

Instrumentation profile is an XML file that contains package, class, methods nodes which are used for instrumentation from the BCI agent. User can select instrumentation profile from the drop-down list to monitor application methods. User can also import an instrumentation file from NDE box or from a local machine using the Browse button.

Select the profile from the drop-down list and click the Save button.

To remove a profile, clear the selection from the dropdown list.

Percentile

Here, user can configure the percentile settings. To do the settings, click the Percentile tab and follow the below steps:

  • Capture BT Percentile: Selecting this check box enables a user to capture the percentile metrics for a Business Transaction (BT).
    • Aggregation Duration: It is the frequency at which the percentile data is aggregated. The available options are: 1 minute, 2 minutes, 5 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 8 hours, 12 hours, 24 hours.
    • Advance Setting: The advanced settings to capture BT percentile are:

      • Compress via serialization: If selected, the aggregated percentile data samples are transmitted in a compressed format over the network.
      • T-Digest Compression: Delta and K are the tuning parameters of the T-Digest algorithm. The default values of both Delta and K parameters are 100. Both these parameters should have a value greater than 1.
    • Capture IP Percentile: Selecting this check box enables a user to capture the percentile metrics for an Integration Point (IP).
    • Aggregation Duration: It is the frequency at which the percentile data is aggregated. The available options are: 1 minute, 2 minutes, 5 minutes, 15 minutes, 30 minutes, 1 hour, 2 hours, 4 hours, 8 hours, 12 hours, 24 hours.
    • Advance Setting: The advanced settings to capture BT percentile are:

      • Compress via serialization: If selected, the aggregated percentile data samples are transmitted in a compressed format over the network.
      • T-Digest Compression: Delta and K are the tuning parameters of the T-Digest algorithm. The default values of both Delta and K parameters are 100. Both these parameters should have a value greater than 1.
  • Store Percentile data at Instance level: Selecting this check box enables aggregation of percentile data for higher ‘View by’ interval(s) in dashboard. Enabling this option may cause high disk usage.
Instrumentation Settings

In this section, user can configure instrumentation settings, such as service entry point, integration point detection, transaction configuration, instrument monitors, error detection, and asynchronous transaction. To perform instrumentation settings, click the Instrumentation link and navigate to the particular section.

There are following sub-sections within the Instrumentation Settings section:

  • Service Entry Point
  • Integration Point Detection
  • Transaction Configuration
  • Instrument Monitors
  • Error Detection
  • Asynchronous Transaction
Service Entry Point

A service entry point is set on an entry. An entry can be a program or service program (where a service entry point is set on all procedures in the program).

This section displays a list of service entry points with following details:

  • Service Entry Type: Type of the service entry, such as HttpServletService, EntryForWebLogicJSP, JMSCall and so on.
  • Service Entry Name: Name of the service entry, it should be based on service entry type.
  • Enable / Disable Instrumentation: This shows whether instrumentation is enabled or disabled. User can also change the status using the toggle button.
  • Description: This is the description of the service entry for better understanding.
  • Category: This denotes whether it is a predefined service entry point or not.

User can add / edit / delete a service point. For adding a new one, provide service entry type (which can be a service/program/page etc.), service entry name, fully qualified method name, enable/disable the instrumentation for the service entry point, and its description.

User can add a new service entry point by clicking the  icon. The Add Service Entry Point window is displayed.

Specify the entry point type, entry point name, and status (enabled/disabled). Specify the fully qualified method name and its description, and click the Save button. The service entry point details are added to the list.

Note: Spring Boot Job Entry Points are also supported, which are useful when a client / application is using the Spring Boot Job framework in some instances. Select check box for Instrumentation for Generic Service Entry Type, with Service Entry Name – Abstract Job, Single Job.

Integration Point Detection

Integration point is an end-point of the tier hierarchy that stores / provides information on the requests sent to server, such as DB calls, coherence calls, and so on. There would not be any outgoing calls from integration point. It only stores the information and serves the request that is required by the server.  This section is divided into following sub-sections i.e. Detection by Classes, Detection by Interfaces, and Settings.

This section is further divided into sub-sections, such as Integration Point and Endpoint URL capturing.

Detection by Classes

Integration Point displays a list of integration point detections containing the type of detections along with its description.

 View Details

To view the integration point detection configuration, click the link, such as HTTP, WS, JDBC, and so on. The details are displayed in a new window:

User can apply the naming rules by selecting the check box, such as Host, Port, URL, and Query. User can also enable/disable the integration points by using the toggle button. After making changes, click the Save button.

Note: The Integration Point Naming Rule(s) may vary for different Integration Point Types. For example, the Integration Point Naming Rules for HTTP are – Host, Port, Query String, and Query. Whereas, the Integration Point Naming Rules for Spanner are – ProjectID, InstanceID, and DatabaseID.

Add Integration Point Detection

User can add an integration point detection by using the  icon. A window is displayed to add a new integration point detection.

Specify the integration point type, its name, module, and status (enabled / disabled). Enter the Full Qualified Method (FQM) name along with its description, and click the Save button. The integration point detection is added to the list.

Note: For Java and .NET agents, a user can select ‘Custom’ option from the ‘Integration Point Type’ drop-down. After selecting that, the user must turn on the toggle button to enable this, and then click the Save button.

Detection by Interfaces

In Interface Instrumentation, all loaded interface in Java Virtual Machine (JVM), which implement the given class, will be instrumented. To instrument at an interface level along with the instrumentation profile, the following requirement is needed. A generic framework for Interface API as an entry point, which can be used to detect HTTP CallOut, DB CallOut, or as a service entry point.

  1. Click Detection by Interfaces. Select check box for Enable Integration Points and click on Logger under Integration Point Type.

2. Select Logger from the dropdown, and enable required entry point.

3. Click Save at the bottom of the logger screen, and further click Save on the top right of the main screen to save the changes.

Setting

Here, user can configure the integration points. This section is used to capture request parameters where user has the provision to skip certain number of character from the URL and can set the maximum character limit in the URL.

There are following configurations within this section:

  • Capture URL: When enabled, system captures the endpoint URL. All other sections become active after enabling this.
  • Capture Endpoint URL: When enabled, URL capturing is activated.
  • Capture request parameters: When enabled, system captures the request parameters.
  • Extract URL range: Define the range of characters in URL. The default range is 0 to 50.
  • Capture cassandra query: When enabled, system captures cassandra queries.
  • Capture Thread subclasses: When enabled, transformation of thread subclasses is activated.
  • Capture Network Delay: When enabled, system captures the network delay..
Business Transaction

Business transaction is an integral part of every flowpath. Each flowpath is identified as a business transaction. Business transaction provides a logical grouping of all incoming requests. To identify any business transaction, several types of rules are available.

There are two sub-sections:

  • Global Configuration
  • Pattern Configuration

Global Configuration

These rules are used to create business transaction names using URI and dynamic request properties (HTTP methods, query parameters, and others) for all agent types.

Detailing of further configurations within this:

  • URI used in Transaction Name: This could be complete or custom defined.
    • Complete: In this case, all the URIs are captured.
    • Custom Defined: In this case, user can specify whether to use first <n> segments, last <n> segments, or the specified segment number of URIs in business transactions. Enter the segment(s) of URI in valid format. In case of multiple segment numbers, separate them by comma. For example – 2,4,6.
  • Transaction Response Time Threshold Value: Specify the threshold value (in ms) of transaction’s response time for slow and very slow transactions.
  • Select Dynamic Request properties: When enabled, user can use either:
    • Query Parameter: When enabled, user needs to provide the request parameter value.
    • HTTP request method (GET/POST/PUT) in transaction names
    • Specified HTTP Header: When enabled, user needs to provide the HTTP header name.
    • Segment Number: When enabled, user needs to provide the segment number.

Pattern Configuration

The rules defined in this section provide patterns of URI and dynamic request properties (HTTP methods, query parameters and others) to identify business transactions.

A list of business transaction pattern is displayed with following details:

  • BT Name: Name of the business transaction.
  • Match Type: Match type could be either “exact match” or “starts with”.
  • URL: URL pattern to be captured.
  • BT Included: Is the business transaction included or excluded.
  • Slow Transaction Threshold (ms): Transaction response-time threshold value for slow transactions.
  • Very Slow Transaction Threshold (ms): Transaction response-time threshold value for very slow transactions.
  • Query HTTP Parameters Key: Denotes the request parameter key.
  • HTTP Method Type: Denotes the HTTP method type, such as GET, POST, PUT, DELETE etc.
  • HTTP Request Headers Key: Denotes the headers key for HTTP request.
  • BT Method: Denotes the BT method type.
  • BT Request Headers: Denotes the headers key for BT request.
  • BT Response Headers: Denotes the headers key for BT response.

Note: All the BT configured names are displayed at the same place in the BT Pattern table.

User can browse, add, edit, and delete a business transaction pattern. A user can add a new one under the following four categories:

  • Configure Detection Rules
  • Split by Method Execution
  • Split by Request Headers
  • Split by Response Headers

Configure Detection Rules

For adding a new one, provide the following details:

  • Name of the business transaction
  • URL Pattern to which validation needs to be performed
  • Whether need to include these URL after successful validation
  • Validation criteria for the given pattern – either ‘Starts with’ or ‘Exact match’
  • Transaction response time threshold value for slow and very slow business transactions

User can also select Dynamic HTTP Request properties. Upon selecting the check box, provide the following details:

  • Request parameter key and its value
  • Request header key and its value
  • HTTP method type
Configuring Global Threshold Value

In BT Pattern screen, a user can apply global values to new / existing Business Transactions.

To do this, follow the below mentioned steps:

  1. In the Pattern Configurations screen, click the Configure Global Threshold Value(s) icon . This displays the Apply Global Threshold Values(s) The default threshold values for ‘slow’ and ‘very slow’ business transactions are ‘3000 ms’ and ‘5000 ms’ respectively.

2. Provide the threshold values for slow and very slow business transactions that is to be applied globally and click the Save For example – ‘2500 ms’ for ‘slow’ business transactions and ‘4000 ms’ for ‘very slow’ business transactions.

Applying Global Threshold Values for New Business Transaction

  1. While adding a business transaction pattern, the default threshold values are applied for ‘slow’ and ‘very slow’ business transactions, which user can edit further based on the requirements.

2. To apply global threshold values for ‘slow’ and ‘very slow’ business transactions, user needs to enable the Apply Global Threshold Values(s) toggle button. This changes the threshold values for ‘slow’ and ‘very slow’ business transactions as per configurations. Click the Save button after providing all the required details.

 Applying Global Threshold Values for Existing Business Transaction

  1. To apply global threshold values for existing business transaction, select the check box corresponding to the existing business transaction and click the Configure Global Threshold Value(s) icon .

2. Click Save and Apply button.

3. System prompts for a confirmation message, click Yes to proceed.

Split by Method Execution

Business transactions are created based on the method executions (FQM). This section displays method business transaction rules along with the following details:

  • Fully qualified method name
  • BT name

User can add / edit / delete a method business transaction. On adding a new one, provide the following details:

  • Fully qualified method name
  • Select a BT rule.

On enabling BT Rule Based on Return Type, a list of return value rules is displayed with following details:

  • BT Name
  • Match Criteria
  • Match Value

User can add / edit / delete return value rules. For adding a new one, provide BT name, match criteria, and match value.

On enabling the later one, select argument index from the list.

On enabling BT Rule Based on Argument, select argument index from the drop-down list.

On enabling BT Rule Based on Method Invocation, type the BT name.

On enabling BT Rule Based on Method Return Invocation, a list of method invocation rules is displayed with following details:

  • Default BT Name
  • Method Name

User can add / edit / delete method invocation rules. For adding a new one, provide default BT name and method name.

Split by Request Headers

Business transaction(s) are created based on URL, parameter, methods, and headers. User can specify the headers. Application agent creates business transaction for the headers specified. This section provides configuration for Business Transaction based on Request Headers, for continuously monitoring these headers.

This section displays a list of Request header rules with the following details:

  • Header Name
  • BT Name

User can add a new request header rule by providing the following details:

  • Header Name
  • BT Name
  • Operation
  • Pattern

Split by Response Headers

This section displays a list of response header rules with the following details:

  • Header Name
  • BT Name

User can add a new response header rule by providing the following details:

  • Header Name
  • BT Name
  • Operation
  • Pattern

Split by HTTP Body

This tab is displayed in case of Dot Net Agent only. This is required to generate Business Transaction based on Http Request Body values. These cases need to be handled by Dot Net Agent to identify proper Business transactions for all incoming requests Body. This section covers all aspects of identifying a business transaction name from Http request body. Business transaction rule requires extension to configure business transactions based upon the request body.

To configure this, first open a profile whose agent type is Dot Net. Then, navigate to Instrumentation Settings > Business Transaction > Split By HTTP Body. This displays the following window.

This window displays following details of HTTP Body rules within the Manage HTTP Body Rule(s) table:

  • X Path: It contains the regular expression of Xpath or JSON path, for which value needs to get from XML or JSON body.
  • Body Type: It defines the http body type. This can be in XML or JSON.
  • Data Type: It defines data type of the HTTP body. It can be:
    • Numeric
    • String or object
    • Boolean (char in c)
    • Char/byte
    • Value
    • Regular expression 
  • BT Name: Name of the business transaction in HTTP body.

User can perform following operations with HTTP body:

  • Add HTTP Body
  • Edit HTTP Body
  • Delete HTTP Body

Add HTTP Body

To add an HTTP body, follow the below mentioned steps:

  1. Click the Add HTTP Body button . This displays the Add BT HTTP Body window.

2. Select body type and datatype from the list and specify the X path.

3. To add an HTTP Body rule, click the Add a HTTP Body Condition button . This displays the Add HTTP Body Condition window.

4. Specify the BT name, operation, and match value.

5. Click the Save button to save the details. The details are displayed in the Manage HTTP Body Rule(s) table and HTTP Body Rule(s) table.

Note:

  • Multiple Business transactions can be configured using one rule with multiple return values.
  • If condition value is “VALUE”, then BT name will be xpath value prefix with BT name.
Instrument Monitors

This section is used to instrument monitors. User can instrument method monitors as well as HTTP Stats monitors.

Method Monitors

It is used to capture data for a particular method. Here, user can instrument a method monitor. A list for method monitors is displayed for instrumentation.

In this section, user can browse a method monitor file, add a new method to monitor, edit an existing method monitor, or delete an existing method monitor. For adding a new one, provide the following details:

  • Fully qualified method name: Enter a valid method name. Method name can include package, class, and method name, separated by dot (.). Method name cannot include whitespaces.
  • Display name in monitor: User specified alias name for method monitor.
  • Description: Description of the method to monitor.

HTTP Stats Monitors

Condition monitoring is used to provide conditions based on which a particular HTTP request or response needs be scrutinized and headers to be extracted such that they can be shown in DDR reports against flowpath instance related reports. Here, user can instrument HTTP stats monitors. A list of HTTP stats monitors is displayed.

This section displays a list of HTTP stats with the following details:

 

  • HTTP stat name: Name of the HTTP stat.
  • Rule: It is a combination of “header type”, “header name”, and “match with” value.
  • Forcefully Dump Flowpath: Here, status could be “Enabled” / “Disabled”.
  • Description: This denotes the description of the HTTP stat.

To add an HTTP stats monitor, click the  icon. A window to add HTTP stats condition is displayed.

Here, user can add / edit / delete an HTTP stats condition. To add a new one, provide the following details:

  • HTTP stat name
  • Enable / Disable forcefully dump flowpath
  • Header type (request/response/cookie)
  • Header name
  • Data type (String/numeric/others)
  • Operation
  • Match with
  • Description

Exception Monitor (Java, NodeJS, and .NET)

Exception monitors are used to monitor exceptions that are occurred in the system while traversing a request. User can configure exception monitors by using the Exception Monitors section under the Instrument Monitors tab.

Here, exception details are displayed, such as exception name, display name, and description. To add a new exception monitor, click the Add button . A new window is displayed to add an exception monitor.

Add exception name, display name, and description of the exception. Click the Save button to save the details. Exception monitor is added to the list.

JVM Thread CPU Monitor

This section is used to configure JVM monitors. To do this, go to the JVM Thread CPU Monitor section under Instrument Monitors tab.

To enable JVM thread CPU monitor, select the check box and specify a percentage. The thread is not reported if the CPU utilization is less than or equal to the provided percentage. To reset/save the details, click the Reset/Save button accordingly.

Error Detection

This section is used to configure rules to detect errors. A list of error detection rules is displayed.

To add a new rule for error detection, click the  icon. A window to add error detection rule is displayed.

Enter the rule name, range, and its description. User can enable / disable the rule using the toggle button. Click the Save button. The rule is added to the list. Once added, user can edit or delete the rule according to the requirements.

Asynchronous Transaction

The response time for the business transaction sometimes doesn’t reflect the entire logical business flow for the transaction. An example is a travel application that returns a web page to a user while it assembles flight quotes from external sources in the background. In this case and many such scenarios, response time of the transaction generally will be much shorter than actual end to end time taken by transaction.

So response time of business transaction (or time taken by entry point method) may not best represent the logical end of a business transaction. For example, consider an application in which an entry point method in a request handler spawns multiple threads, including one to serve as the final response handler. The request handler then returns a preliminary response to the client. By default, this stops the clock for purposes of measuring the response time for that business transaction. Meanwhile the spawned threads continue to execute until completion, at which point the response handler generates the final response to the client.

In this case, the initial response time is much shorter than the full logical transaction execution time.

To configure Asynchronous Transaction rules, follow the below mentioned steps:

  1. Navigate to Asynchronous Transaction
  2. To enable the asynchronous rules, select the Enable Asynchronous Transaction Rules check box.
  3. To enable the asynchronous rule for Jetty, Tomcat, and Weblogic containers, select the toggle buttons accordingly.
  4. Click the Save button to save the settings.
Advance Settings

In this section, user can perform some advanced settings, such as debug level capturing, put delay in method, backend monitor, handling exception generation in method.

To perform this, click the Advanced Settings link. The Advanced Settings section is displayed.

There are following sub-sections under the Advanced Settings section:

Debug Level Capturing

A debug level is a set of log levels for debug log categories, such as Database, Workflow, and Validation. A trace flag includes a debug level, a start time, an end time, and a log type.

In this section, user can enable/disable trace level configuration for various BCI features. To perform settings, click the Debug level tab. The debug level capturing settings section is displayed.

There are following configurations:

  • Debug Log Level: To specify the level of information, which is included in debug logs, specify the debug log level (from 0 to 6). Zero being the lowest and six being the highest log level.
  • Error Log Level: Error is used to log all unhandled exceptions. Specify the error log level from 1 to 100.
  • Instrumentation Log Level
  • Method Monitor Log Level

For error log capturing, user is having the following option:

  • Disable the error log capturing
  • Enable capturing error messages by throw able object only
  • Enable capturing error messages by throw able object and error logs both
Monitor Settings

This section is used to specify whether to monitor business transactions and integration points. Here, user can enable/disable ND graph monitors. For settings, go to the Monitors tab. The Monitors Settings section is displayed.

User can enable / disable monitors for business transactions (using the Monitor Business Transactions check box) and integration points (using the Backend Monitor check box). The user can also enable / disable the Java GC Monitor check box.

Put Delay in Method (for advanced users only)

Using this option, user can add delay in any specified method using instrumentation. For settings, click the Put delay in method tab. The corresponding section is displayed.

In this section, user can provide the following configurations:

  • Fully Qualified Method Name: Provide a fully qualified method name. The method name should be valid.
    • Rule 1: Method name can include package, class, and method name separated by dot (.)
    • Rule 2: Method name cannot include whitespaces.
  • Delay in Method: Specify the delay in methods by providing a range in milliseconds.
  • CPU hogg: It is a flag to increase CPU Utilization by calling while loop for the time provided in the delay Time.
  • Is auto instrument: It is a flag to enable / disable instrumentation of the method provided for delay.
  • Dump stack trace: To dump stack trace, select this check box.
Exception Generation in Method (for advanced users only)

Here, user can enable/disable exception generation in certain method. For settings, click the Generate exception tab. A section is displayed where user needs to perform settings for exception generation in methods.

Specify the percentage (Exception occurrence ratio in methods), fully qualified method name, exception type, and exception name. Click the Save button.

Custom Configuration

Here, user can view the list of custom configuration and can add a new one. These configuration can be enabled via GUI. For settings, go to the Custom configurations tab. Custom configuration list is displayed with details, such as name, value, description, and status (enabled/disabled).

To add a new custom configuration, click the add icon . A new window is displayed.

Specify the name from the list, its value, and description. Click the Save button to save the details.

Debug Tool

Here, user can do settings such as capture outside transactions and socket trace. For settings, click the Debug Tool tab. A window is displayed where the user can do the following settings:

Capture calls for outside transaction(s): Some transactions that are missed by the agent do not get captured. Now, a user can detect any callouts that might be occurring outside the normal business transaction.

Enable capture socket trace: This option enables a user to print the stack trace in the BCI error logs. The default number of stack traces that can be dumped is 100.

Product Integration Settings

In this section, user can integrate NetDiagnostics with NetVision and NetForest. To get into this setting, click the Product Integration Settings link. 

NV – ND Sessions

A section is displayed where user can integrate ND with other Cavisson products.

Specify the cookie name, domain name, idle time, and maximum flowpath in session count. Apart from this, user can also perform following operations:

  • Enable cookie at method entry
  • Enable cookie at method exit
  • Enable cookie on response commit event
  • Enable X CavNV header
NV-ND Auto Inject

Overview

For Real User Monitoring, NV agent needs to be injected into web pages of client application fetched from web server. At present, NV agent is injected into required web pages by manually modifying source code of pages of client application.

However, in some environment it was not possible to inject NV agent manually. For such environments, ND agent (running with the client application) can inject the NV agent automatically by identifying all required pages or transactions where NV agent needs to be injected based on configuration.

Configuration

Following configurations are introduced to auto inject NV agent into web pages of client application using Java agent:

  1. Configure auto injection policy rules
    • Policy rules are used to identify requests or transaction for injecting NV agent by configuring one or more fields of transaction
  1. Auto injection configuration rules
    • Detailed configuration of NV agent to be injected in response body
  1. Enable Auto Injection of NV Agent
    • Enable or disable auto injection feature

Injecting NV Agent using Java Agent

This section covers Auto injection policy rules and Auto injection configuration rules. Follow the below mentioned steps for using the NV- ND Auto inject feature:

  1. Login to a ND machine and navigate to ND Config Then, go to Profile (Java) > Product Integration Settings > NV-ND Auto Inject link.

2. This displays the NV-ND Auto Inject section.

Auto Injection Policy Rules

Policy rules are used for filtering Http requests or transactions for injecting NV agent tag. NV agent tag will be injected into all filtered requests or transactions based on policy rules configured. User can configure one or more policy rules and they will be applied in sequence on all requests or transactions. If any one or the policy rule is matched, then NV agent will be injected into the response body of the selected transaction. If no policy rule is matched, then NV agent will not be injected.

  1. Click the  icon on the table header of the policy rules to configure Auto Injection rule. This displays the Add Auto Injection Rule window.

4. Provide the following details:

  • Rule Name: Specify the name of the rule as a string. For example: AutoInjectRule. To enable the rule, turn on the Enabled toggle button. It is mandatory field.
  • BT Name: Specify the business transaction name where the NV agent is to be injected. For example: search, addToCart. 
  • Exclude: Upon clicking the Exclude check box, Policy rule will be excluded for injecting NV agent. 
  • HTTP URL: Specify Http URL of the request. For example: /testconnection.html 
  • HTTP Method: Specify the Http method of request. For example: PUT, GET, POST 
  • Extension / Type: Specify extension of Http request URL. For example .html, .jsp, .js etc. 
  • Parameter Name / Value: Specify Http request query parameter name and its value. Only one query parameter name/value is allowed. 
  • Header Name / Value: Specify Http header name and its value. Only one http header name/value is allowed.
  • Operations: Following operations are supported on Http query parameter and header name fields:
EQUALS      equals        (can be applied on type 1 <String or Object>)
NOT_EQUALS   not equals   (can be applied on type 1 <String or Object>)
CONTAINS     contains     (can be applied on type 1 <String or Object>)
STARTS_WITH  starts_with  (can be applied on type 1 <String or Object>)
ENDS_WITH    ends_with   (can be applied on type 1 <String or Object>) 

Auto Injection Configuration Rules

Auto-injection policy rule is used to configure details of the NV agent to be injected like NV agent tag, Html tab name where NV agent tag will be injected etc.

  1. Click the  icon on the table header of the Auto Injection Configuration Rule list to configure Auto Injection. This displays the Add Auto Injection Configuration Rule window.

6. Provide the following details:

  • Rule Name: Specify the name of the rule as a string.  For example: NVAgentRule. It is a mandatory field.
  • HTML Tag: Name of the HTML Tag of web page where NV agent tag (JS Script Tag) needs to be injected. For example: Title, Header etc. It is mandatory field.
  • Before/After: Inject NV agent before or after specified Html Tag.
  • JavaScript Code: Actual NV agent tag (JS Script Tag) which will be injected into the web page of client application. It is mandatory field. 

For example:

<script src=//ip/nv/directory/nv_bootstrap.js type=“text/javascript”></script>
  1. After configuring both rules, user need to click the Save button on the table header to save the configuration in the file system.

Enable Auto Injection

  1. Upon selecting the Auto Injection NV Tag checkbox and specifying the content type –
  • text / html
  • text / plain
  • text / Javascript

The configuration for auto injection will be applied on controller. After test run restart, configuration will be pushed on selected instances/servers.

Flow Diagram

  1. When user sends a request from the browser for login page, it gets hit to the application server.
  2. Java agent within the Application server injects NV agent with the request.
  3. Application Server provides response to NV tag within browser as dynamic HTML with NV agent injected.
  4. Then, browser with NV tag connects to NV server.
  5. NV tag sends captured data, such as session, pages etc. to NV server.
  6. When user opens NV UI in the browser, user can view the sessions, pages etc.
  7. User can further drill down to captured data, such as sessions, pages, etc. from NV server.

Appendix: Auto Injection Sample Screens

Html page of sample application in which NV agent is injected

Injection of NV agent tag in Html source code

<script src=//172.24.0.202/nv/demo/nv_bootstrap.js type="text/javascript"></script>

NV Home Page

NV Captured Sessions list

Drill-down to Captured Session

Navigation Timing

User Action


NF-ND Settings

In this section, a user can integrate NetDiagnostics with NetForest.

ND-NF Integration is enhanced by adding Topology and Flowpath information in access and application logs. The user needs to perform the following actions:

  1. Select the check box Enable ND agent to transfer captured to configured NF server.
  2. Provide the Host, Port, and URL.
  3. Specify the Interval to flush captured log messages to socket (NF server). The default value is 300000 milliseconds.
  4. Specify the Buffer Count and the Buffer Size. This setting is of different buffer parameters used for storing logs before sending to NF server. The default Buffer Count is 50 and the default Buffer Size is 256000 bytes.
  5. A user can also select the check box Enable ND and NF integration by intercepting logs and injecting ND header into log messages.

Click Save to save the settings. The user can also use the options Reset to Default and Reset.