Python Agent Release Notes
2026-10-19
v2.2.2
Fixed Fixed the native agent starting more than once in LLM mode.
- The duplicate startup fixed in v2.2.1 still occurred in LLM mode.
2026-09-29
v2.2.1
New Added support for AWS Bedrock Runtime instrumentation
- Collects the
Converse,ConverseStream,InvokeModel, andInvokeModelWithResponseStreamcalls ofbedrock-runtimeas LLM API steps
New Added the ability to stop an active trajectory
- You can stop a running trajectory on the Active LLM screen
- The in-flight LLM call is cut off and the transaction ends. LLM calls raised afterward in the same trajectory are blocked as well
- The stop point is recorded in the transaction profile as a
WhaTap: LLM trajectory stopped by controlmessage step, so you can tell it apart from an application error
New Added the llm_blocked_users String option
- Default:
"" - Blocks LLM calls from the given user IDs. Separate them with commas; case is ignored
- Example:
llm_blocked_users=u-1024,abuse@example.com
- Example:
- A blocked call returns as a connection error of the SDK, such as
APIConnectionError, and aWhaTap: LLM call blocked for user …message step is recorded in the transaction profile
New Added the llm_httpc_step_enabled Boolean option
- Default: true
- Collects HTTP calls made inside an LLM workflow, such as MCP and REST tool calls, together with the LLM steps
- Set it to false to collect only LLM API calls
New Added a metric for newly started trajectories
- The active trajectory metric now includes the number of trajectories started during the last five seconds (
new_count)
Fixed Fixed LLM API steps and API status code statistics not being collected on openai 3.x and anthropic 1.x
Fixed Fixed LLM transactions being lost in short-lived processes
- Transaction end information and LLM logs were not sent from processes that run once and exit, such as CLI runs and child processes
New Added instrumentation for the httpx2 library
Changed Streaming HTTP responses now measure elapsed time up to the point the response ends
- For streaming responses such as SSE, the step elapsed time runs until the response completes instead of stopping when the headers arrive
Fixed Fixed the native agent starting once per worker on Linux when whatap_code_start was set to true in a multi-worker environment such as uvicorn --workers.
2026-09-01
v2.2.0
New Added LLM workflow transaction instrumentation.
- Collects the LLM execution span inside an application transaction as its own transaction.
New Added collection of conversation coordinates (User / Session / Turn).
- Collects the user ID and session ID automatically from HTTP headers or LLM SDK call arguments.
- The turn ID is assigned automatically when a transaction starts.
New Added an option to configure the model that performs evaluation.
New Added the llm_prompt_default_version option.
- Type: String, default:
v1
New Added active trajectory tracking.
New Added active LLM API tracking.
New Added automatic instrumentation for the anthropic SDK.
New Added automatic instrumentation for langgraph.
New Added automatic instrumentation for the hermes-agent gateway.
Changed Evaluation span selection now works independently of the global setting and sampling.
Fixed Fixed the elapsed time of LLM API steps being collected shorter than the actual value.
Fixed Fixed the active gauge being counted lower than the actual value on concurrent LLM calls.
Fixed Fixed LLM call counts being lost.
New Added the llm_apm_txn_enabled option.
- Type: Boolean, default:
false - Enable it to look up LLM transactions from an APM project as well.
New Added trace propagation across process boundaries (exec / spawn).
- Passes transaction link information to child processes so call relationships are connected in multi-process structures.
New Added trace context propagation to worker threads (ThreadPoolExecutor).
- Tasks run through
ThreadPoolExecutor.submitare linked to their parent transaction.
Fixed Fixed the APM UDP socket being created even when apm_enabled was false.
Fixed Fixed instrumentation being lost when a module name set in a pattern option such as hook_method_patterns overlapped an automatic instrumentation target.
Fixed Fixed application calls potentially failing when env was passed as a positional argument to subprocess.Popen.
2026-08-18
v2.1.4
Fixed Fixed an agent error that occurred when the entry module was an instrumentation target.
2026-08-05
v2.1.3
New Added hook_service_patterns option.
- Wraps the specified method as a transaction entry point.
- For class-level method tracing
hook_service_patterns="package:Class.method" # e.g. myPackage:MyClass.__init__ - For function-level tracing
hook_service_patterns="package:function" # e.g. myPackage:my_function
New Expanded Odoo framework support.
- v16, v17 → v14–v19
2026-07-22
v2.1.2
Fixed Fixed an issue where active stacks were not collected in agent versions after 2.0.0.
2026-06-22
v2.1.1
Fixed LiteLLM(in-process) 사용 시 LLM 호출이 실패하던 문제 수정
Fixed 스트리밍 tool_calls / reasoning 응답에서 TTFT·TPOT가 기록되지 않던 문제 수정
2026-06-10
v2.1.0
New Added LLM automatic evaluation (Evaluation) and operation type (Operation Type) instrumentation features.
Changed Improved LLM metric structure.
- Separated metric categories
- Added
finish_reasonmetric - Flattened list-type metric tags into parallel array fields
- Consolidated token/call statistics
New Added option to selectively disable automatic instrumentation for specific libraries.
ignore_instrumentation_setString: Libraries registered with this option will not have their instrumentation logic activated. Separate multiple targets with,.- No default value; requires application restart.
- Example:
redis,openai
New Added simultaneous distribution of wheel(bdist_wheel) package.
Fixed Fixed an issue where accessing accesskey caused an AttributeError when the license was not configured.
Fixed Fixed an issue where using profile_http_parameter_enabled could cause abnormal termination due to argument access in some HTTP client calls.
2026-04-28
v2.0.2
Changed Changed LLM log sink UDP transmission from single-send to 48KB cumulative buffering.
New Added support for running the agent in Windows Service (NSSM) Session 0.
New Added BaseHTTPMiddleware tracing support for the FastAPI framework.
Changed Improved FastAPI tracing logic stability.
Changed Added environment variable fallback for unset values in whatap.conf.
Fixed Fixed an issue where unnecessary information was recorded in agent logs.
2026-04-08
v2.0.1
New Added openai library tracing support.
New Added LLM-specific Metric and Log support.
New LLM cost (Pricing) calculation — supports per-model input/output token unit price calculation via genai-prices integration (with built-in fallback on failure).
New vLLM compatibility — supports Chat Completions / Completions API hooking and delta.text fallback for openai SDK-compatible vLLM servers.
New Added whatap-llm-setting-config command to automatically create/update LLM mode configuration files.
New Added LLM tracing options.
- llm_api_hosts String
Hosts registered with this option are recognized as LLM API paths. Separate multiple hosts with,.- Default: none
- Example:
localhost:8000,api.openai.com:443
- llm_model_pricing String
Manually set the price per 1M tokens for LLM models. Prices registered with this option take first priority when calculating and storing data.- Format:
[model name]|[input token]|[output token]|[cache token] - Example:
gpt-4o|2.50|10.00|1.25,gpt-4o-mini|0.15|0.60|0.075,my-custom-model|1.00|5.00
- Format:
New Added FastAPI SSE response streaming tracing support.
New LLM & APM dual agent mode developed.
- apm_enabled Boolean
- Starts the agent in APM mode
license,whatap.server.host
CautionThe license and server address must be entered using the APM project key.
- llm_enabled Boolean
- Starts the agent in LLM mode
llm_license,llm.whatap.server.host
CautionThe license and server address must be entered using the LLM project key.
2026-03-24
v1.9.2
New Added option to force UDP port assignment
- Added the
force_net_udp_portoption, which allows users to manually specify the UDP port used for communication with the Go module
If multiple Python agent processes are running, there is a risk of port conflicts. Use this option only when a fixed UDP port is required in specific environments. (Default: disabled)
Feature Added httpx asynchronous tracing support
- Added instrumentation for
httpx.AsyncClient, an asynchronous HTTP client
Changed Removed the mandatory setuptools module dependency from the agent
Changed Added support for PEP 517-based build systems
Fixed Fixed missing collection when reusing DB connections
- Fixed an issue where connection information was not collected properly in Steps when database connections were reused or declared as singletons
2026-01-26
v1.9.1
Fixed Updated the logging and loguru tracing modules
- Updated to prevent hooking when the option value is set to
False
Fixed Fixed the logic of the trace_user_enabled option
- Resolved an issue where a
ValueErroroccurred
Fixed Updated the tracing logic in greenlet environments
- Resolved an issue where exception objects could not be captured because the current frame could not be found when an error occurred in this environment
2025-12-23
v1.9.0
New Windows OS support
- Windows Server 2008 R2, Windows 7 or higher
Fixed ACTIVE_STATUS monitoring bug fix
- Fixed an issue where data was not properly cleaned up when multi-transaction events occurred
Fixed HTTPC tracing bug fix
- Fixed an issue where the return value of the original function was not passed correctly
Fixed Fixed an issue where Container IDs were collected incorrectly in Kubernetes container environments
2025-11-11
v1.8.14
Fixed psycopg_pool module fix
Fixed an issue where connections were not returned to the pool when calling
pool_connectionmanually.
Fixed psycopg module fix
Fixed a conflict issue that occurred with certain logic when used with
psycopg2.
Fixed ACTIVE_STATUS monitoring function fix
Fixed an issue where ACTIVE_STATUS data was being sent unnecessarily.
2025-10-01
v1.8.13
Fixed Updated the fastapi module
Fixed an issue where certain functions executed more than once
Fixed Updated the httpx module
Fixed a tracing error that occurred when invoked in streaming mode
Fixed Updated the psycopg module
Fixed an error when accessing the
rowcountattributeImproved stability of the logic for extracting connection information
Fixed Fixed an issue where Container ID was not mapped in Kubernetes container environments
Supported from Kubernetes agent v1.8.8 or higher
2025-09-12
v1.8.12
New Added @step_id field for LLM log monitoring
New Added LLM metrics collection feature
llm_stat_enabled Boolean
false: defaulttrue: metrics collection is enabled only when this option, trace_llm_log_enabled, and counter_thread_enabled are all set totrue
llm_stat_interval Number
- Option to set the LLM metrics collection interval in seconds
5: default
Feature Added counter_thread_enabled option Boolean
false: defaulttrue: activates the thread (counter_thread) that collects llm_stat and app_filedescriptor metrics
Changed Improved stability of the psycopg_pool tracing module
Changed Improved asynchronous tracing stability for both psycopg and psycopg_pool modules
Changed The open_file_descriptor_enabled option no longer affects whether counter_thread is enabled
2025-09-01
v1.8.11
New Added tracing support for psycopg_pool module
Fixed Updated sqlAlchemy module
Fixed an issue where query parameters of the
asyncmydriver were not being substituted
2025-08-22
v1.8.10
New psycopg module tracing feature added
New You can now specify the path to the whatap_python executable using the WHATAP_PYTHON_AGENT_PATH environment variable
If this environment variable is not set, it defaults to
WHATAP_HOME
Fixed neo4j module modification
- Fixed an issue where the DB connection timing was not being collected correctly
2025-08-12
v1.8.9
New Added sqlite3 module tracing feature
Fixed Fixed issue where DB Connection was displayed redundantly
- Fixed an issue where the DB Connection Step was displayed in Step view even when only a DB query was executed
2025-08-04
v1.8.8
New Added tracing support for the httpx module
New Added tracing support for the openai module
trace_llm_log_enabled Boolean
Default:
falsetrue: Enables tracing of OpenAI API calls via log monitoring
2025-07-29
v1.8.7
New Added whatap_code_start option Boolean Default: false
When set to
true, you can runimport whatapfollowed bywhatap.agent()in sitecustomize.py, enabling agent startup without the whatap-start-agent command using only the default Python execution.
Fixed Modified open_file_descriptor_enabled option Boolean
When set to
false, the thread that tracks file descriptors is also disabled.
2025-07-15
v1.8.6
New Added an option to display the original URL in step traces when URL normalization is applied
step_origin_url_enabled Boolean
Default:
false
New Added tracing options for standalone Python processes
standalone_enabled Boolean
Default:
falsestandalone_type String
single-transaction: Default. Monitors as a single transactionmultiple-transaction: Allows transaction tracing at the module, class, or method levelstandalone_transaction_patterns String
No default value
Format:
[MODULE]:[CLASS].[FUNC]or[MODULE]:[FUNC]Example:
myPackage:MyClass.__init__, myPackage:my_function
New Added tracing support for the Neo4j driver module (v5.0 and above)
Fixed Fixed an issue where the original URL was not displayed in record summaries when URL normalization was applied
2025-06-18
v1.8.5
New Added options related to the app_context_stat matrix category in whatap.conf
app_context_enabled Boolean
Default:
falseSet to
trueto enable the fullapp_context_statcollection featureapp_context_parser
default: Default parser (extracts the first path segment)prefix: Prefix matching parser (most flexible)match: Exact matching parser (matches only completely)app_context_parser_reset Number
Default:
0A counter that forcibly resets the parser’s internal cache and configuration
app_context_path_depth Number
Default:
1Specifies the depth of the path segment to extract from the URL (used only with the
defaultparser)app_context_path_set String
No default value
Defines a mapping of paths to monitor and their corresponding names (separated by commas
,)Example:
name1@url1,name2@url2,url3,name4@url4
2025-06-09
v1.8.4
Fixed Fixed an issue where fastAPI was called without StreamingResponse
2025-05-19
v1.8.3
New Added the Odoo framework (v16,v17) tracing feature.
Fixed Fixed the SQLAlchemy related errors.
- Fixed the issue where query messages are duplicated due to conflicts with the DB driver while being traced.
- Fixed the issue where parameters are not bound in query statements.
- Fixed the issue where an error occurs when the
uservalue is not entered when connecting to the DB.
Fixed Fixed the issue where exceptional objects other than Flask are not handled properly.
2025-04-28
v1.8.2
Fixed Fixed the issue where the ignore_whatap_stdout option has not been applied.
2025-04-23
v1.8.1
New Added the WebSocket transmission tracing feature based on starlette.
2025-03-31
v1.7.9
New Added the feature to collect and display normal signals (Status: 2xx, 3xx) for HTTP transactions.
2025-03-24
v1.7.8
New Added the feature to collect and display request methods for HTTP transactions.
New Added the HTTP status collection and display feature when an HTTP transaction error occurs.
2025-03-11
v1.7.7
New Added the option to control whatap module's log output in whatap.conf.
-
ignore_whatap_stdout Boolean
Default
falseIf it is set to
true, all standard output logs from the WhaTap Python agent module are disabled.
2025-03-04
v1.7.6
New Added the tracing of mtid values in the logging module (logging, loguru) monitoring.
-
trace_logging_mtid_enabled Boolean
Default
falseIt is enabled if the
trace_logging_enabledvalue istrue, while it is output in the log if the mtid value exists. -
trace_loguru_mtid_enabled Boolean
Default
falseIt is enabled if the
trace_loguru_enabledvalue istrue, while it is output in the log if the mtid value exists.
Fixed Fixed the issue where it is not reraised when an exception occurs in Celery Task.
2025-02-17
v1.7.5
New Added the automatic search and configuration of the whatap.conf file when the WHATAP_HOME environment variables are not set.
Fixed Fixed the issue where MySQL and PostgreSQL database error messages are displayed incorrectly.
Fixed Fixed the issue where no response is received when retrieving data after connection in Redis single mode.
2025-01-20
v1.7.4
Fixed Changed Redis to monitor only specific functions: GET, SET, DEL, HSET, HGET.
Fixed Fixed the SQL profile transmission error.
Fixed Fixed the error in the RabbitMQ monitoring module (pika).
The pika original function execution error was fixed.
2024-12-19
v1.7.3
New Added the feature to collect SQL patch counts.
Fixed Fixed the issue where multi-transactions are not collected when using the FastAPI.
2024-11-12
v1.7.2
New Added the feature to collect the open file descriptor usage based on the PID per process.
2024-10-10
v1.7.1
Fixed Fixed the issue where the profile collection stops when an error occurred in database connection close.
2024-09-24
v1.7.0
Fixed Fixed the transaction collection error for fastapi 0.115.0.
2024-09-05
v1.6.10
New Added the feature to support ASGI in the Django framework.
-
Added the support logic for using Uvicorn in Django.
-
Added logic to maintain context to address potential data corruption issues when using local threads in asynchronous operations.
2024-09-03
v1.6.9
New Added the tracing feature for the oracle-client module.
Added the feature to trace database connection and termination times by using the connect and Connection.close methods in the Oracle client (oracle-client).
2024-08-27
v1.6.8
New Added the module tracing feature to support various versions of graphql-core.
In graphql-core 3.x+ versions, instrumentation has been added to the graphql.execution.execute module, while in graphql-core 2.x versions, the graphql.execution.executor module has been supported.
Changed Modified the trace_module_definition.py file to properly instrument modules based on the graphql-core version (supporting both the latest and older versions).
2024-08-21
v1.6.7
Fixed Prevented data from being overwritten by deep copying the TraceContext before putting it in the queue.
2024-06-07
v1.6.6
Fixed FastAPI - Fixed the bug that occurs when collecting the remoteIP.
2024-05-31
v1.6.5
Fixed Fixed the missing transaction termination issue when using Python 3.6 gevent.
2024-05-14
v1.6.4
Fixed Modified the parsing logic that searches for the containerID in the Kubernetes environment.
2024-04-17
v1.6.3
Fixed Modified the parsing logic that searches for the containerID in the Kubernetes environment.
2024-03-29
v1.6.2
Feature Added the exit_with_parent_process_enabled option.
-
exit_with_parent_process_enabled
bool
Default
falseSet the value of the option through the whatap.conf file in the Python agent's
WHATAP_HOMEpath. You can set whether or not to end thewhatap_pythonprocess when the monitored Python process is terminated. If the option value is set totrue, thewhatap_pythonprocess ends together when the monitored application is terminated. It may take up to 1 minute.
2024-03-20
v1.6.1
Fixed Fixed the repetitive log call issue in whatap-hook.log.
2024-03-13
v1.6.0
Fixed Fixed the issue where the agent does not operate if it does not find data about the remote host in FastAPI.
2024-03-11
v1.5.9
Fixed Fixed the issue where input is made without line breaks when setting agent options.
2024-02-18
v1.5.8
Fixed Fixed the double counting error for users (related to the number of users) in Frappe Application.
2024-02-02
v1.5.6
Changed Supported the superset.
2024-02-01
v1.5.5
Fixed Improved the issue where the performance collection error occurs when there is no instance (DB) in the database connection information in applications developed using the Frappe framework.
2024-01-09
v1.5.4
Fixed Fixed the module dependency collection error for some Python versions in Python agent 1.4.9 or later.
- Python 3.6
- Python 3.7
2024-01-05
v1.5.3
Fixed Fixed the gunicorn transaction collection error in Python agent v1.4.9 or later.
2024-01-03
v1.5.2
Fixed Fixed the INJECTION type log collection code error.