Application – Overview
An application is a program designed to perform a specific function. Application contains topology, which is a combination of tier, server, and instances. Using the Configure button, user can add, edit, and delete an application. In this section, we are describing how to create / edit / delete an application, how to generate configuration file, and how to view / edit topology.
Create an Application
To create an application, follow the below mentioned steps:
- On the ND configuration window, click the Configure button within the Application List section or click the Applications icon
on the left pane of the ND Config Home page.
2. This displays a list of all applications with the details, such as name, topology applied, user name, last updated date and time, NDC settings, and description.
3. Click the icon to add a new application details. A window is displayed to add a new application.
4. Enter the application name, its description, user name, and attach a topology from the drop-down list. This adds the application in the list and displays in the Application Details
5. User can configure the ND Controller settings by clicking the NDC Settings icon corresponding to an application. This displays NDC Collector Settings window with various sections, such as ND Collector and ND Data processor.
ND Collector
A user can configure the following details / perform the following actions using this section:
- Duration (secs) for which ND Collector continues to receive data from machine agent after test is over.
- Duration (secs) for which ND Collector waits for events from machine agents on control connection.
- Duration (secs) between two heartbeat messages to application agent
- Accept or reject new connection from application agent when connection already exists from that agent.
- Retry Count for sending signal
- Duration (secs) after which ND Collector forcefully stops the ND Processor process after test is over.
- Enable dumping of aggregate data in raw_data directory.
- Stacktrace Compression buffer initial allocated size.
- Threshold (mins) reuse instance id.
- NDC BCI response time for metadata (in seconds).
- Send active instance response.
- Modify entry in the topology in case of auto scaling.
- ND Collector wait time (secs) to send response to Netstorm/GUI.
- ND Collector behavior on error conditions.
- Duration (secs) after which Instrumentation start request to application agent times out.
- Maximum depth of method call stack.
- ND Collector wait time for thread to exit after sending signal for exit.
- Control size (bytes) of stacktrace file.
- Threshold (ms) of difference between ND Collector timestamp and Application agent timestamp.
- Enable Monitor log.
- NDC log BCI aggregate raw data ex.
- FP Stats monitor.
- NDC maximum control connection.
- Send Response to Agent on Data Connection.
- Enable Auto Cleanup of Topology and can specify the settings for cleanup topology after every provided duration (HH:MM:SS).
- Configure the ND Collector logging level. For this, provide log level value (0-4), log file max size, Redirect to path, and data format.
- Configure the duration (HH:MM:SS) of inactivity after which an instance is marked inactive. The default value is 10 minutes.
- Configure Number of bits for flowpath mask. For this, provide NDE ID along with time stamp and App ID along with sequence number.
- Enable Auto Cleanup for Invalid Servers and can specify the settings for cleanup of invalid servers after every provided duration (HH:MM:SS)
- Configure settings to block a server. For this, provide the Connect disconnect duration (default value is 60 seconds) and Server block duration (default value is 1800 seconds). Also provide the Threshold count to block server (default value is 3).
- Configure Delay in copy profiles. A user can select various option of copying profiles inside a test run. These are ‘Do not Copy Profiles’, ‘Copy profiles’, and ‘Copy profiles in thread mode’. In the third option ‘Copy profiles in thread mode’, it is done by a separate thread that delays the number of seconds in copy. The default time is 60 seconds.
- Configure Delay in Capturing of ND Data. This enables a user to delay the ‘start instrumentation’ process so that the ND agent does not start capturing data. The default value is 60 seconds.
Percentile Metric for Business Transaction (BT) and Integration Point (IP) Response Time
Percentile metric for BT and IP response time lets user configure and analyze response times (based on the percentile values). For example, the user can analyze 80th Percentile of response time for ‘AddToBag’ Business Transaction. User may configure alerts on these metrics such as ‘Generate alert when 99th percentile for a BT is above threshold of 10 seconds for last 15 minutes’.
- Select the tier name from the list.
- Specify whether to include / exclude the data. In case of ‘include’, specify the time format and duration.
- Click Add.
The user can enable Percentile Metrics at Instance level by selecting the Enable Percentile Metrics at Instance level check box. Specify which Percentile Metrics to be enabled. The user can provide maximum of 5 percentile metrics.
ND Data Processor
A user can configure the following details / perform the following actions using this section:
- Time (in ms) to poll if the test run is currently running
- Filter Flowpath which are not the part of NS initiated transaction
- Initial max concurrent flowpaths processed per JVM
- Maximum size (in kilobytes) of buffer of meta data table entries.
- Maximum size (in kilobytes) of buffer of HTTP header metadata buffer size
- Maximum size (in kilobytes) of buffer of exception data buffer size
- Maximum size (in kilobytes) of buffer of flowpath table entries
- Maximum size (in kilobytes) of buffer of memory allocation table entries
- Maximum size (in kilobytes) of buffer of NDSQLRecord table entries
- Timeout (in seconds) for flushing the buffered flowpath and other tables
- Interval (in seconds) between two consecutive hunts for any in-memory dead flowpaths.
- Flowpath instance in the mapping record
- Flag to lower the priority of the process ndu_process_data
- Disable the dumping of captured HTTP body
- Initial size (in bytes) of sequence blob compression buffer
- Enable dumping URL record
- Time out (in seconds) for retrying the recovery of meta data entries from the database
- Flag to enable dumping of SQL timing in CSV
- Generate URL record if mapping record is not received from BCI
- Size (in bytes) of raw data to be processed at a time in NDP per instance
- Minimum response time to filter level 1 flowpath
- Meta data recovery
- Maximum SQL index
- Set maximum number of entry and exit records in a Flowpath
- Filter Flowpath which are not the part of current test run
- Flag to enable dumping of BCI arguments data in CSV
- Incremental number of concurrent flowpath
- Maximum size (in kilobytes) of buffer of BCI arguments (JSP page names)
- Maximum size (in kilobytes) of buffer of HTTP header capture buffer size
- Maximum size (in kilobytes) of buffer of flowpath table entries
- Maximum entries in the buffer of flowpath table entries
- Maximum size (in kilobytes) of buffer of NDSQL table entries
- Size (in MB) of the ND debug log
- NDP (in seconds) to mark a flowpath dead
- Time (in ms) before polling the raw_data file for new incoming raw_data
- Maximum number of method entry records in a flowpath
- Maximum size (in kilobytes) of buffer of JMS table entries
- Minimum size (in bytes) of sequence blob that qualifies it to be written in sqb file
- Maximum size (in kilobytes) of buffer of sqb table entries
- Maximum time (in seconds) before data is uploaded to DB
- Start to force smallest ID in SQL (meta data) table
- Flag to enable dumping of SQL record in CSV
- Free flowpath minimum sequence blob size (in bytes)
- Flag to enable generation of FP signatures in NDP
- NDP binary format for method timing
- Enable/Disable the memory dump method to store HTTP header records
- Maximum number of concurrent flowpath instances
Apart from this, the user can enable DB call by NoSQL and can decide whether sequence blob strings will be written to separate file.
Edit an Application
Here, user can edit the application details. To edit an application, select the corresponding application and click the Edit Application icon .
A window is displayed to edit the application. Select the topology from the list and provide description of the application. Once the details are edited, click the Save button. The details are updated in the list.
Delete an Application
To delete an application, select the corresponding application and click the Delete Application icon . The application is deleted from the list.
View/Edit Topology of Application
In this section, user can view the topology (Tier > Server > Instance) and can edit if required.
To do this, follow the below mentioned steps:
- Click the application name from the list.
- The topology details are displayed, such as name, description, and profile applied.
- Expand the topology by clicking the
button.
- On selecting the Show Server(s) and Instance(s) check box, user can view the server and instance of topology.
- User can edit the topology at any level, such as tier/server/instance and can change the profile applied by selecting it and using the Edit button
.
6. Click the Save button post changes. The topology is updated. The ‘default’ profile is attached by default. If profile is updated at any level for example Tier level, the change also reflects at lower levels also i.e. server and instance level.
Auto Instrumentation
It supports auto-instrumentation of important methods (Application / Core API / Third party) taking time in execution. This feature eliminates the need of manually creating the instrumentation profile with packages / classes / methods of application. Auto instrumentation can be started on server using configuration UI by invoking a new session called Auto Instrumentation Session.
Start Auto instrumentation
Go to Home > Application > Topology details, and click the start icon within the auto instrumentation section.
This displays the Auto Instrumentation Configuration dialog box where user can configure various details:
Provide the following details:
- Session Name: It is name of AI Session. Output of AI Session will be files. It will be named after this Session name.
- Session Duration: Specify the duration of the session for running.
- Maximum stack depth to identify idle threads: In Auto Instrumentation, application agent will ignore idle threads, which has stack depth less than the provided value.
- Auto instrumentation Debug level: AI Feature logging tracelevel. It can have values in range 0 to 3.
- Number of thread samples to instrument methods: In every cycle of provided thread sample count, important method(s) will be instrumented
- Percentage of executing methods in thread samples to be instrumented: Percentage of methods that will be instrumented from list of all considered methods.
- Percentage of executing methods in flowpaths to be un–instrumented: Percentage of methods that will be un-instrumented if their response time is very small.
- Maximum method(s) to be considered for Auto Instrumentation: Maximum unique method(s) without overloading which will be considered in Auto Instrumentation process
- Minimum average execution time of method for Instrumentation (in ms): Methods will be un-instrumented if average execution time of method less than the provided value
- Weightage of methods in stack traces having Exception/Integration point calls: All methods in stack traces having exception and integration point calls will have more weightage for Auto Instrumentation
- Remove Auto Instrumentation session changes after its completion: Un-instrument all methods, which are considered for Auto Instrumentation only after Auto Instrumentation session completion.
- Apply Blacklist Auto instrumentation filter: Negative Filter for packages and classes for any AI Session. Packages and classes given in blacklist will not participate in AI Session.
Once the configuration is done, click the Start button to start the instrumentation. The record is listed in the table.
To view the summary of the auto instrumentation, click the Summary icon . To download the instrumentation profile, click the
icon. To find out the instrumented list, click the
icon within the Operation section. This displays the Instrumentation Finder window.
Here, user can find the instrumented and un-instrumented methods based on the configuration. User can manually perform instrumentation/un-instrumentation of methods using the Instrument/Uninstrument buttons respectively. To save the details, click the Save button..
Auto Discovery
Apart from Java agent, this feature supports DotNet agent too. DotNet agent detects all classes/methods loaded in memory of DotNet application and report them to NDE appliance. Configuration UI displays all methods discovered by Agent and allows user to select classes/methods for instrumentation by agent.
Dynamic Diagnostics Auto Instrumentation (DDAI)
Auto-Instrumentation feature auto-detects instrumentation profiles of relevant methods. It works on below algorithm:
- Start an instrumentation session for some duration.
- Find all executing methods in active threads at regular interval.
- Instrument top executing methods.
- Monitor methods after instrumentation for some time.
- If methods are cluttering the flow path without significant execution time, remove instrumentation for those methods.
- At the end of instrumentation session, create instrumentation profile as an output with relevant methods.
This whole process is time consuming, as it has to take in-memory thread dump at regular interval and find out all methods in active threads. During this session, CPU consumption is also high.
To tackle this problem, Dynamic Diagnostics auto instrumentation is implemented. It is a light weight solution of finding problems in business transactions. Dynamic Diagnostics instrumentation is triggered only on specific Business transaction, and stack dump is considered only for those threads, which are executing that transaction.
Using Dynamic Diagnostics
Follow the below mentioned steps for using dynamic diagnostics:
- Go to Applications > Topology Details, navigate to a particular instance and click the Start icon within the Auto-Instrumentation section.
2. This displays the Auto Instrumentation Configuration window. Select the Dynamic Diagnostics option.
3. Select the Business Transaction for instrumentation.
4. Provide various other details that is required for the configuration of Auto instrumentation.
Details:
- Session Name: Name of the session, which is automatically named, based on the business transaction selected. User can edit the business transaction.
- Session Duration: Specify the duration of the session for running.
- Completion Mode: This is the action, which has to be taken regarding downloading of the instrumentation files, once the instrumentation is completed. There are following options:
- No Download: No files is downloaded.
- Download files after session: Files are downloaded after session is completed.
- Download and apply: Files are downloaded and applied for instance.
- Apply Mode: There are following options within this section:
- Apply on Instance: Instrumentation is applied on instance without saving the file.
- Apply on Instance and Save: Instrumentation is applied on instance and file is saved.
- Advance Settings: There are following options within this section:
- Maximum stack depth to identify idle threads: In auto instrumentation, application agent will ignore the idle threads, which has stack depth less than the provided value.
- Sample interval
- Trace level
- Number of thread samples to instrument methods
- Percentage of executing methods in thread sample(s) to be instrumented
- Percentage of executing methods in flowpath to be un-instrumented
- Maximum method(s) to be considered for Auto Instrumentation: Maximum unique methods without overloading which will be considered in auto instrumentation process.
- Minimum average execution time of method for Instrumentation (in ms): Methods will be un-instrumented if average execution time of the methods is less than the provided value.
- Weightage of methods in stack traces having Exception/Integration point calls: All the methods having stack traces in exceptions and integration point calls will have more weightage for auto instrumentation.
- Concurrent Auto Instrumentation threshold: Maximum number of active BT serving threads for DD AI session.
- Dump data
- Thread blacklist filter: Provided thread names are excluded in the DD AI session.
- Thread whitelist filter: Provided thread names are included in the DD AI session.
- Blacklist filter: Provided BT names are excluded in the DD AI session.
- Whitelist filter: Provided BT names are included in the DD AI session.
- Remove Auto Instrumentation session changes after its completion: Un-instrument all methods, which are considered for auto-instrumentation only after auto-instrumentation session completion.
- Delete from server: Deletion of file from server.
- Click the Start button.
- This starts the auto-instrumentation and a pop-up message is displayed.
7. To view the active instrumentations, navigate to Instrumentation Finder icon.
8. This shows the active auto instrumentation, with details, such as instance name, session name, start time, duration, expected end time, elapsed time, and operation.
- User can view the status of auto instrumentation by clicking the refresh icon within the operation section.
10. Once it reaches the specified session time, the auto instrumentation is completed and record is disappeared from the active auto instrumentation list. A message is displayed for its successful completion.
11. The record is displayed in the auto instrumented list.
12. To view the summary of the auto instrumentation, click the Summary icon within the Operation section.
13. This displays auto instrumentation summary with details, such as package, class, method, count, and duration.
14. To download the details, click the Download icon . A pop message is displayed for successful download of file.
15. User can delete an instrumentation record from the list by clicking the Delete icon .
16. To edit the instrumentation and further perform other operations, click the Edit icon .
Here, user can perform the following operations:
- Instrument Agents
- Uninstrument Agents
- Applying Method Monitor for a Profile
- Applying Method BT for a Profile
Instrument Agents: In the left panel, there is a drop-down that listed all the loaded agents’ data, by clicking on any one of them lists down all the data regarding their agents into the tree structure. To add agent(s) from left tree to the instrument list, select the agent(s) and click the Instrument
Uninstrument Agents: To move an agent from instrument list to the un-instrument list, select the agent and click the Uninstrument
Applying Method Monitor for a Profile: This feature is used for creating the Method Monitors from Auto Discover or Auto Instrumentation Earlier, to add a method monitor to a profile, user was needed to navigate to Method Monitor screen and manually add the method monitors by providing FQM, which is a time-consuming task and involved high probabilities of wrong entries from the user side.
The new approach is more reliable as user is just required to select the package, class, and method and the profile where to apply this method monitor. At a time method monitor is applied only for single FQM.
Upon selecting a method and clicking the Method Monitor button, user is prompted to select the profile to which method monitor is to be applied.
Once the profile is selected and Save button is clicked, the selected method monitor is added to the specified profile.
Applying Method BT for a Profile: This is similar to applying method monitor for a profile. Here, user is just required to select the fully qualified method from the left tree and the profile where to apply this method BT.
Upon selecting a fully qualified method and clicking the Method BT button, user is prompted to select the profile to which method BT is to be applied.
Upon clicking the Save button, Add Business Transaction Method Rule dialog box is displayed.
This displays the fully qualified method name. User can add business transaction method rule based on return type, argument, or method invocation.
- BT Rule Based on Return Type: Here, user needs to provide the BT name, match criteria, and match value.\
2. BT Rule Based on Argument: Here, user needs to specify the argument index (from the drop-down list) for BT rule. Arguments are splitted by semicolon.
3. BT Rule Based on Method Invocation: Here, user needs to specify the method invocation index (from the drop-down list) for the BT rule. Here, 0 can be passed if no arguments are there.
The saved can be seen on the Business Transaction > Split by Method Execution list.