Analyzing the transactions
Hitmap
Home > Select Project > Analysis > Hitmap
On the initial screen of the WhaTap Monitoring service, select a project and then click Analysis > Hitmap.
Hitmap can be also accessed through the Hitmap widget in Dashboard > Application Dashboard.
Detailed analysis
agent area
You can filter by selecting agents linked with the current project. If you select the icon, the HITMAP transaction chart can be viewed in the area.
HITMAP transaction
If transactions with latency issues are included, they appear in orange or red on the HITMAP transaction chart. If only normal transactions are included, they appear in blue.
Selection area
If you drag the real-time hitmap chart, the TX trace list appears where Applications list and transaction information can be viewed in the selected area.
Applications
You can check the numbers of transactions and errors included in the selected area on the chart. If you select the desired application in the list, the information details of the application appear in TX trace.
TX trace
The TX trace list contains information details. If you select a desired transaction from the list, the Transaction information window appears. In the Transaction information window, you can see the detailed trace details for the transaction. For more information, see the following.
Understanding the hitmap patterns
The hitmap is a distribution chart whose X-axis is the transaction end time, and Y-axis is the response time. A normal web application displays a distribution concentrated in a few seconds or less.
Analyzing the hitmap lines
-
Vertical line (LOCK symptom) pattern
If a temporary lock (not only DB lock) occurs during transaction processing, the processing is queued. If the lock is released, pending transactions are finished together at a similar time. This creates vertical lines as follows:
Detecting locks in vertical line patterns is a very powerful concept. Especially in the microservice architecture, locks from backend systems can be equally detected.
The vertical lines for response patterns in the front applications are also detected when any lock occurs in the DB used by the back-end system.
-
Horizontal line (timeout) pattern
In the 10-second timeout condition, if the resources are insufficient, the transactions wait for 10 seconds until a timeout error occurs. At this time, horizontal lines appear near 10 seconds of the hitmap as follows:
If there is a logic to retry after timeout, the horizontal lines repeat every 10 seconds as shown in the figure. The following is the hitmap for failures.
(1) The response time increased in the section and (2) the red lines in the section are horizontal line patterns. (1) ConnectionPool is exhausted due to section load, (2) the secondary timeout failure occurred due to insufficient ConnectionPool.
Using the pattern analysis
A line in the transaction response distribution indicates a bottleneck. If the lock is temporary, a vertical line is generated. If the bottleneck is release by timeout, a horizontal line is generated.
When analyzing a problem, you can quickly pinpoint a transaction included in the line for selective analysis.
Analyzing the machine learning based response patterns
This function automatically detects abnormalities after analyzing the hitmap patterns with an aid of machine learning technology and then issues an alert.
Abnormal pattern example
It learns abnormal patterns from hundreds of TB of performance data every month and issues an alarm when a pattern similar to the learned abnormal one is detected.
-
Vertical line pattern
-
Horizontal line pattern
-
Composite pattern
-
Hitmap alarm
For more information about the analysis method of the HITMAP transaction chart, see the following.
Exception handling (WARNING) criteria
The criteria for Node.js agent exception handling for errors that occur in the Node.js application environment are explained. The Node.js agent handles errors only in the following cases:
-
Status Code 400 or higher error handling
-
Error handling for HTTP calls
-
Handling the errors defined in WhaTap
Error display on the service screen
Most Error level that can be seen throuth the Hitmap widget and Trace analysis window are for the WARNING level.
Status Code 400 or higher error handling
If the HTTP response code is 400 or more, it is treated as an error even if no exception class occurs. The following is the agent option that sets whether or not to enable error handling based on the HTTP status code.
transaction_status_error_enable=true
For more information about the transaction_status_error_enable
option, see the following.
Error handling for HTTP calls
The errors that occur during HTTP calls appear in the SLOW_HTTPC
or httpc error
format.
Handling the errors defined in WhaTap
The WhaTap monitoring service handles errors depending on specific conditions.
-
TOO_MANY_RECORDS: The number of fetches is 10,000 or more.
For the related agent options, see the following:
profile_error_sql_fetch_max=10000
-
SLOW_SQL: SQL time is 30,000 ms or more.
For the related agent options, see the following document:
profile_error_sql_time_max=30000
-
SLOW_HTTPC: The elapsed time for the HTTP call is 10,000 ms or more.
For the related agent options, see the following document:
profile_error_httpc_time_max=10000
-
httpc error: HTTP call status code of 400 or more
Notehttpc error is automatically collected without agent configuration.
-
status error: Transaction status code of 400 or more
For the related agent options, see the following document:
transaction_status_error_enable=true
Transaction error step INFO processing
Some errors can be displayed as normal or ignored through the agent settings. The level displayed in the Hitmap widget is INFO (blue).
If the following conditions are met, they are not treated as errors.
-
In case the value of the
transaction_status_error_enable
option isfalse
whatap.conf# default true
transaction_status_error_enable=false -
In case the status code of the transaction is defined in the
status_ignore
optionwhatap.conf# Separated by commas(,)
status_ignore=400,404,500 -
In case the URL and status code are combined for a specific transaction defined in the
status_ignore_set
optionwhatap.conf# URL:StatusCode
status_ignore_set=/api/posts/test/timeout:200,/error:500 -
In case the HTTP status code is defined in the
httpc_status_ignore
optionwhatap.conf# Separated by commas(,)
httpc_status_ignore=400,404,500 -
In case the URL and HTTP status code are combined for the
httpc_status_ignore_set
optionwhatap.confhttpc_status_ignore_set=/api/posts/test/timeout:408,/api/apache/httpclient/posts/timeout:500
-
The agent settings can be configured in whatap.conf and they can be viewed in the Management > Agent CONFIG. menu. For more information, see the following.
-
For more information about the agent configuration options, see the following documents: