Java Agent v2.2.0
Release date: 2022-11-01
New features
-
Added the function to generate the logsink data in the virtual application.
-
Added the function to connect the stdout log of the logsink with txid information.
-
Added the data collection function for 2 seconds.
whatap.conffast_perf_enabled=false
fast_perf_interval=2000
fast_perf_gc_enabled=true
fast_perf_os_enabled=true
debug_fast_perf_enabled=falseCollection data
- Elapsed time
- Active Transaction
- gc information: number of gc cases, gc elapsed time, number of old generation gc cases, old generation gc elapsed time
- OS info
-
Added the function to send notifications based on the number of active transactions.
whatap.conf# Whether the active transaction alerts have been set
too_many_actx_alert_enabled=false
# Ignorance time for active transaction alerts (ms)
too_many_actx_alert_silent_time=30000
# Number of active transaction alerts
too_many_actx_alert_count=50
# Number of displayed active transaction alert messages
too_many_actx_alert_msg_url_count=5
# Time for active transaction alerts
too_many_actx_alert_over_time=30000-
The number of active transactions is determined by
too_many_actx_alert_count = (too_many_actx_alert_over_time / 5000)
. -
When the number of active transactions equals to or exceeds the threshold, notifications are sent by adding URL as many as
too_many_actx_alert_msg_url_count
to the alert message.
-
-
Profile Debug option: Added the function to check the stack in the profile and agent log when a debug target pattern is registered.
whatap.confhook_method_debug_enabled=true
hook_method_debug_patterns= -
Adding the plug-in using class
-
Added the
HashTable
class to be used in the{AGENT_HOME}
/plugin/{...}
.x file. -
If
whatap.agent.api.Ref.h
is used,HashTable
can be used.ExampleClass hashTable = (Class) whatap.agent.api.Ref.h;
-
-
Adding the dedicated classes for TTA BMT: Can be used to demonstrate the Java agent.
Java Class# map
bmt.m.MyMap
# datasource
bmt.ds.MyDataSource
bmt.ds.MyConnection
# jdbc
bmt.jdbc.Config
bmt.jdbc.FakeBlob
bmt.jdbc.FakeClob
bmt.jdbc.FakeConnection
bmt.jdbc.FakeDatabaseMetaData
bmt.jdbc.FakeDriver
bmt.jdbc.FakeCallableStatement
bmt.jdbc.FakePreparedStatement
bmt.jdbc.FakeResultSet
bmt.jdbc.FakeStatement
bmt.jdbc.FakeSocket
bmt.jdbc.LockTracing// Connection Pool tracing
// ConnectionPoolASM
target.put("bmt/ds/MyDataSource", MyDataSource.className);
// Connection Pool tracing
// DBConCountCollectorThread
add(new MyDataSource());
// JDBC Connection tracing
// JDBCConnectionOpenASM
AsmUtil.add(reserved, "bmt/ds/MyDataSource", "getConnection()Ljava/sql/Connection;");
// JDBC Statement tracing
// JDBCStatementASM
target.add("bmt/jdbc/FakeStatement");
// JDBC PreparedStatement tracing
// JDBCPreparedStatementASM
target.add("bmt/jdbc/FakePreparedStatement");
// JDBC ResultSet tracing
// JDBCResultSetASM
target.add("bmt/jdbc/FakeResultSet"); -
Error step
-
Added the function to add the error step to the profile.
-
Added the step to display error-related data in the profile by adding settings.
whatap.confprofile_error_step_enabled=false
-
-
Adding the JMX setting: Added the function to additionally view the JMX data.
whatap.confperfx_tomcat_enabled=false
perfx_jmx_value_limit=100
perfx_jmx_tag_from_objectname_enabled=falseBy collecting the JMX data of tomcat, the settings for checking with test1 and test2 in metrics lookup are as follows:
whatap.confperfx_jmx_enabled=true
perfx_jmx@test1=Catalina:type=Connector,*
perfx_jmx@test2=java.lang:type=GarbageCollector,*
perfx_jmx_ignore@test2=LastGcInfo
# perfx_debug_enabled=true
# perfx_jmx_tag_from_objectname_enabled=false -
Using the OSHI library, added the function to trace the proc_mem_rss data of the process.
whatap.confoshi_proc_mem_enabled=false
-
Added the JDBC statement tracing function in
org.edb.jdbc.PgCallableStatement
. -
Function to trace SQL parameters in the Oracle procedure
-
Added the function to trace SQL parameters in Oracle procedures.
-
Added the function to trace SQL parameters in CallableStatement.
-
-
In case of calling HTTP from Weblogic to
HttpURLConnection
, added the function to traceweblogic.net.http.HttpURLConnection
.whatap.confHttpURLConnection_weblogic=true
-
Added the function to collect the native memory data (proc_mem_rss) of the process by using the sigar library.
-
Added the function to collect TPS data collected with the 30-second average, in the 5-second average.
whatap.confservice_metrics_spike_enabled=false
-
Added the compressed transfer function for the profile data.
-
Profile data is sent when the profile data exceeds the size of
profile_zip_max_buffer_size
. -
Profile data is sent when data is accumulated in the queue or the value of
profile_zip_max_wait_time
is exceeded. -
When the profile data is transmitted, the data is compressed except when the profile data in the queue is less than
profile_zip_min_size
.
whatap.conf# Whether the profile data is compressed
profile_zip_enabled=true
# Queue size that has the profile data
# ZipProfileThread.java determines the request queue size
profile_zip_queue_size=1000
# Waiting time for profile data transfer
# If 1000 ms is exceeded, the profile data is sent.
profile_zip_max_wait_time=1000
# Buffer size of the profile data
# If the profile data exceeds 1 MB, data is transferred.
profile_zip_max_buffer_size=1024*1024
# Minimum size to determine whether or not to compress the profile data
# If the profile data is less than 100 bytes, compression is not followed.
profile_zip_min_size=100
# Whether or not to debug the profile data compression
# Outputs the data related to profile data transmission (ZipPack status, recordCount, buffer size, profile data queue size) to the agent log
debug_profile_zip_enabled=false
# Output interval for profile data compression debug log
# When the PROFIAL data compression debug option is turned on, the information about profile data transmission is output to the agent log at an interval of 5000 ms.
debug_profile_zip_interval=5000 -
Change (update)
-
Modified the option name from
max_wait_time
that is the logsink data transfer cycle, tologsink_max_wait_time
. -
Replaced the CustomCounter function collected by the plug-in with CustomTaskLoader instead of CustomCounterTask.
whatap.confcustom_task_enabled=true
custom_task_jarfile={full_path} -
Added the function to output logs when the server time difference between the agent and proxy is 10 seconds or more.
-
Measuring the elapsed time
-
Modified to use the JVM time rather than the system time when measuring the elapsed times for transactions and profiles.
-
When measuring the elapsed time, modified to use
System.nanoTime()
inSystem.currentTimeMillis()
.
-
-
Modified to display the time difference between servers seen in the agent log when there is a difference in the server time between the agent and proxy.
Agent log# In case the time difference is 30 seconds or more
"fatal warning time-reverse (time difference) ms"
# In case the time difference is less than 30 seconds
"warning time-reverse (time difference) ms" -
Modified the options for user counting in the form of wclient_xxx. The previous option names can be used but new option names are recommended, starting from v2.2.0.
whatap.conf# Replacement
trace_user_method=IP
wclient_trace_type=IP
# Replacement
trace_user_jsession_key=JSESSIONID
wclient_jsession_key=JSESSIONID
# Replacement
trace_user_header_key=token
wclient_header_key=token
# Replacement
trace_user_cookie_limit=4000
wclient_cookie_limit=4000
# Replacement
trace_user_cookie_domain=
wclient_cookie_domain=
# Replacement
realtime_user_thinktime_max=300000
wclient_thinktime_max=300000
# Replacement
trace_user_using_ip=true
wclient_using_ip=true
# Replacement
user_header_ticket=
wclient_header_ticket=
# Replacement
wclient_max_count=70000 -
Recompiled the embedded weaving component by applying the count settings related to the number of users.
-
Modified to use
System.nanoTime()
when calculating the CounterPack elapsed time. -
Included the release version in the log output logo.
Logo_ ____ ______
| | / / /_/_ __/___ _____ ___ ___
| | /| / / __ \/ / / __ `/ __ \ | _ \|_ )
| |/ |/ / / / / / / /_/ / /_/ / | / / /
|__/|__/_/ /_/_/ \__,_/ .___/ |_|_\/___|
/_/
The Best Observability in Java -
Modified the default value for the Java agent’s statistics collection from 5000 to 10000, checking every 2 seconds when sending statistics data.
whatap.confstat_tx_max_count=10000
-
Updated the version of the OSHI library that collects performance metrics from oshi-core-5.4.1 to oshi-core-6.1.6.
-
Changed the library folder name of
{AGENT_HOME}
that collects performance metrics.-
Renamed the SIGAR library folder: lib -> lib3.
-
Renamed the OSHI library folder: lib2 -> lib4.
-
Fixed (bug fixing)
-
Fixed a bug that occurred when adding headers related to multi-transaction to the read-only HttpHeaders of the Webflux weaving plug-in, an embedded Java agent plug-in.
Applied to webflux-5.1, webflux-5.2, and webflux-5.3.
-
Fixed the bug that occurred when the elapsed time of transactions and steps was less than 0.
-
Fixed the bug where the elapsed time is displayed as 0, when the elapsed time of transactions and steps is less than 0.
-
Fixed the
blocking_detect_count
handling bug.