PHP Agent Release Notes
最新バージョン: 2.14.2
- 2026
- 2025
- 2024
- 2024年以前
2026-07-08
v2.14.2
Fixed PHP 8.xでPDO::exec()使用時にSQL結果件数収集が原因でリクエストが失敗する(HTTP 500)問題を修正しました。
PDO::exec()は影響件数をintで返しますが、結果件数収集ロジックがPDO接続オブジェクト(該当メソッドなし)のrowCount()を呼び出しており、PHP 8でErrorが発生していました。exec()の戻り値を直接使用し、対象が実際のPDOStatementの場合のみrowCount()を呼び出すように変更しました。- 既定設定のPHP 8.xでのみ発生し、PHP 5/7、
PDO::query()、プリペアドステートメントは影響を受けませんでした。
Fixed cubrid_execute()の2引数形式での結果件数の誤りを修正しました。
cubrid_execute($conn, $sql)形式で結果件数を戻り値ではなく接続から読み取り、-1と表示される問題を修正しました。戻り値から件数を読み取るようにしました。
New SQL結果件数収集のOn/Offオプション(whatap.profile_sql_fetch_enabled)を追加しました。
- 2.14.1で追加されたSQL結果件数収集機能を無効化できるオプション(既定値:
true)を新規追加しました。
使用例
# SQL結果件数収集を無効化(既定値: true)
whatap.profile_sql_fetch_enabled = false2026-06-24
v2.14.1
Feature ログインID収集機能を追加しました
GET/POSTパラメーターおよびSessionオブジェクトからログインIDを抽出し、トランザクション単位のユーザー識別とログイン別統計に活用します。
whatap.trace_login_enabled(既定値:false)で有効化します。whatap.trace_login_param_key(単一GET/POSTパラメーターキー、POST優先探索)および/またはwhatap.trace_login_session_key(ドット区切りのSessionパス、例:auth.user_id)で抽出キーを設定します。
使用例
# ログインID収集を有効化(既定値: false)
whatap.trace_login_enabled = true
# GET/POSTパラメーターから抽出(例: login.php?user_id=hong → hong)
whatap.trace_login_param_key = user_id
# またはSessionパスから抽出(例: $_SESSION['auth']['user_id'])
whatap.trace_login_session_key = auth.user_id
Feature SQL結果件数収集機能を追加しました
SELECTクエリの照会件数とDML(INSERT/UPDATE/DELETE)構文の影響件数を収集し、トランザクションプロファイルに[結果件数]ステップとして表示します。
対応extension: mysql、mysqli、PDO、pgsql、oci8、mssql、sqlsrv、odbc、cubrid、phpredis
- DML(INSERT/UPDATE/DELETE)影響件数は上記すべてのextensionで収集されます。
- SELECT照会件数はmysql、mysqli、pgsql、cubrid、odbc、PDO(MySQL / PostgreSQL)で収集されます。
- phpredisは配列を返すコマンド(MGET / HGETALL / KEYS / LRANGE ...)の要素数を収集します。
- DDL構文(CREATE / DROP / TRUNCATE ...)は行を扱わないため0として表示されます。
一部の環境ではSELECT照会件数が表示されません([結果件数]ステップ非表示): oci8・sqlsrv(ドライバーが全件数を提供しない)、PDOのSQLite / Oracle、mysqli unbufferedクエリ(MYSQLI_USE_RESULT)、pgsql非同期関数(pg_send_*)。これらの環境でもDML影響件数は正常に収集されます。
2026-03-25
v2.14.0
Feature PHP 8.5サポートを追加
Feature PHP 8.0以降でactive stack収集が動作しない問題を修正
- PHP 8.0以降で
zend_execute_exフックが動作せず、active stack収集ができない問題を修正 - active stack収集ロジックを別関数に分離し、PHP 8.0+では
zend_observerAPIを活用するように変更
2026-02-04
v2.13.2
Fixed マルチトランザクションプロファイリング時に発生する segfault および zend_mm_heap corrupted エラーを修正
マルチトランザクション機能を有効化した場合(mtrace_enabled=true)、メモリ破損により segfault または zend_mm_heap corrupted エラーが発生する問題を修正しました。
2026-01-07
v2.13.1
Fixed デバッグメッセージがレスポンス内容に 出力されるエラーを修正します。マルチトランザクション(mtrace)機能使用時にmtid、mcaller_txidデバッグログがWebページに露出される問題を修正します。
2025-11-19
v2.13.0
Fixed アクティブステータス(Active Status)データの収集が正常に動作しない問題を修正しました。
- v2.12.0 で PHP 内部関数のフック方式を
zend_execute_internalからhandler overwrite方式に変更。 - この変更によりアクティブステータスのデータ収集が正常に動作しない問題が発生。
New Windows OS で PHP モニタリングをサポートしました。
システム要件
- Windows Server 2016 (x64) 以上 または Windows 10 (x64) 以上
- PHP 7.0 ~ 8.4 (NTS および ZTS)
ビルド環境
- WhaTap PHP 拡張は Microsoft Visual C++ コンパイラを使用してビルドされ、PHP バージョンに応じて異なる Visual Studio バージョンを使用します。
- Visual C++ 15.0 (Visual Studio 2017) - PHP 7.0–7.4
- Visual C++ 16.0 (Visual Studio 2019) - PHP 8.0–8.3
- Visual C++ 17.0 (Visual Studio 2022) - PHP 8.4
- バージョン別ビルド環境
PHP バージョン OS Visual Studio Windows SDK PHP SDK 7.0–7.4 Windows Server 2016 (ltsc2016) VS 2017 (VC15) 10.0.17763.0 2.1.9–2.2.0 8.0–8.3 Windows Server 2019 (ltsc2019) VS 2019 (VS16) 10.0.19041.0 2.2.0 8.4 Windows Server 2022 (ltsc2022) VS 2022 (VS17) 10.0.20348.0 / 11.0.22000.0 2.4.0 - 対応 Web サーバー
- Apache 2.4 以上
- Microsoft IIS
New 遅いトランザクションの遅延区間を特定できるスタックトレース機能を追加しました(分析 > スタックで確認可能)。
- 動作方式
- 設定時間(デフォルト 5 秒)以上実行されるトランザクションを自動検出。
- 1 秒ごとに実行中の関数を記録(最大 20 回)。
- PHP 内部の
debug_gettrace()関数を使用してスタック情報を収集。 - ユーザー関数の呼び出し終了時にスタックを収集するため、関数実行時間が長い場合は収集間隔が一定でない場合があります。
注意この機能を有効にすると、収集負荷が発生する可能性があります。
- 前提条件
- 以下の 2 つのオプションが有効である必要があります(デフォルトで有効)。
whatap.ext.hook_zend_execute_ex_enablewhatap.profile_method_enabled
- 以下の 2 つのオプションが有効である必要があります(デフォルトで有効)。
- 設定オプション
whatap.active_stack_enabled- デフォルト: false
- スタック収集機能を有効化
whatap.ext.active_stack_start_resp_time- デフォルト: 5000
- 設定応答時間を超えた場合にスタック収集を開始
- デフォルト: 応答時間が 5 秒以上の場合にスタック情報を収集
- 最小値: 1000ms
注意設定値を反映するには、Web サーバー(Apache または php-fpm)を再起動する必要があります。whatap.ext.active_stack_interval- デフォルト: 1000
- スタック収集間隔を設定
- 最初の収集後、1 秒間隔でスタックを収集
- 最小値: 200ms、変更単位: 200ms
注意設定値を反映するには、Web サーバー(Apache または php-fpm)を再起動する必要があります。whatap.trace_active_callstack_depth- デフォルト: 50
- スタック収集数の制限(最大 50 行)
注意設定値を反映するには、Web サーバー(Apache または php-fpm)を再起動する必要があります。whatap.ext.active_stack_max_count- デフォルト: 20
- スタック収集回数の制限(最大 20 回)
注意設定値を反映するには、Web サーバー(Apache または php-fpm)を再起動する必要があります。
2025-10-15
v2.12.0
Change PHP内部関数のフック方式を変更
- 従来の
zend_execute_internalを使用する方式では、すべての関数を確認するため、内部関数呼び出しが多い場合にCPU負荷が発生する可能性がありました。 - 必要なPHP内部関数のハンドラーのみを置き換える方式に変更し、特定の関数のみを選択してトランザクション情報を収集します。
- 関連オプションを追加:
whatap.ext.hook_overwrite_internal_function_enabled
既定値:true
必要なPHP内部関数のハンドラーを置き換える方式で、特定の関数のみを選択してトランザクション情報を収集します。whatap.ext.hook_zend_execute_internal_enabledと重複設定しないように注意してください。
サービスの再起動が必要です(Apache または php-fpmの再起動)。whatap.ext.hook_zend_execute_internal_enabled
既定値:false
従来方式で、zend_execute_internalを通じてトランザクションデータを収集します。
サービスの再起動が必要です(Apache または php-fpmの再起動)。whatap.ext.hook_zend_execute_ex_enabled
既定値:true
PHPユーザー関数をzend_execute_exを通じてデータを収集します。
サービスの再起動が必要です(Apache または php-fpmの再起動)。
2025-07-23
v2.11.2
Fixed segmentation faultエラーが発生する問題を修正
session_set_save_handler関数を使用する際に発生していたエラーを修正
2025-07-09
v2.11.1
Fixed whatap-php.service の登録および実行失敗問題を修正
-
新規インストール時、environment 値が不足していたため、接続情報(Access Key やサーバーアドレス)を認識できず、エージェントが無効化されていました。
以下のコマンドで手動設定が可能です:
php command1. /usr/whatap/php/install.sh を実行
2. cp /usr/lib/systemd/system/whatap-php.service /etc/systemd/system/whatap-php.service -
既存のインストール環境では、アップデート時に正常にインストールされます。
2025-06-18
v2.11.0
Feature CPU負荷の軽減
-
監視対象の判定基準を変更し、CPU負荷を軽減
-
ユーザー関数の監視を無効にすると、さらに負荷を軽減
whatap.profile_method_enabled=false
New CLI呼び出しパラメータをURLに表示
-
CLIで実行された際、パラメータを含めてURLとして収集
- 例:php /home/www/test.php aaa bbb → /home/www/test.php aaa bbbとして表示
New fileパラメータ情報の収集
- 最大20件、各256バイトまでの一部パラメータを収集
2025-02-11
v2.10.0
New PHP Extensionで機能別に収集中止できるオプションを追加
-
whatap.ext.trace_enabled(既定値:true): トランザクションの情報収集を非活性化 -
whatap.ext.profile_enabled(既定値:true): トランザクションの基本情 報収集を非活性化 -
whatap.ext.profile_sql_enabled(既定値:true): SQLプロファイル収集を非活性化 -
whatap.ext.profile_httpc_enabled(既定値:true): HTTP呼び出しプロファイルの収集を非活性化 -
whatap.ext.profile_socket_enabled(既定値:true): ソケット関連プロファイル収集を非活性化
New 特定のURIに基づいて収集を中止するオプションを追加
-
whatap.ext.ignore_uris: トランザクション情報を収集しないURIを登録(コンマ区分)- 例:
whatap.ext.ignore_uris=/aaa/bbb.php, /ccc/ddd.php
- 例:
-
whatap.ext.ignore_profile_uris: トランザクションの基本情報は収集するが、詳細プロファイル情報を収集しないURIを登録 (コンマ区分)- 例:
whatap.ext.ignore_profile_uris=/aaa/bbb.php, /ccc/ddd.php
- 例:
New トランザクション追加情報を収集
-
peak-memory: PHP実行中peak memoryを収集 -
elapsed-utime: ユーザーCPU使用量を収集 -
elapsed-stime: システムCPU使用量を収集 -
external-func-count: ユーザー関数の実行件数 -
prof-external-func-count: WhaTapモニタリングが追跡したユーザー関数の件数 -
internal-func-count: PHP internal関数の実行件数 -
prof-internal-func-count: WhaTapモニタリン グが追跡したinternal関数の件数
2024-12-11
v2.9.0
New PHP 8.4バージョンに対応
2024-09-11
v2.8.2
Newエージェント設定ファイル(whatap.ini)より環境変数を優先に処理するオプションを追加
-
既存のエージェント設定は、whatap.ini、環境変数の順に適用されます。
-
whatap.use_env_first(既定値false)オプションを設定するとwhatap.iniファイルの設定よりも環境変数を優先します。whatap.iniwhatap.use_env_first=true -
WHATAP_USE_ENV_FIRST=true形式で環境変数を利用して設定できます。
Newエージェント設定ファイル(whatap.ini)より環境変数を優先に処理するオプションを追加
-
既存のエージェント設定は、whatap.ini、環境変数の順に適用されます。
-
whatap.use_env_first(既定値false)オプションを設定するとwhatap.iniファイルの設定よりも環境変数を優先します。whatap.iniwhatap.use_env_first=true -
WHATAP_USE_ENV_FIRST=true形式で環境変数を利用して設定できます。
FixedOKIND環境変数の認識エラーを修正
OKINDまたはWHATAP_OKIND環境変数としてokindを設定できます。
2024-07-24
v2.8.1
New IPアドレス別トランザクション統計を収集するエージェント設定オプションを追加
whatap.stat_ipurl_enabled Boolean、既定値
false
Feature 統計圧縮転送を設定するエージェント設定オプションを追加
whatap.stat_zip_enabled Boolean、既定値
true
New IPアドレス別トランザクション統計を収集するエージェント設定オプションを追加
whatap.stat_ipurl_enabled Boolean、既定値
false
Feature 統計圧縮転送を設定するエージェント設定オプションを追加
whatap.stat_zip_enabled Boolean、既定値
true
2024-06-19
v2.8.0
New linux aarch64対応
New linux aarch64対応
Changed既存paramkey.txt代わりにsecurity.confファイルを使用
既存security.confファイルのparamkeyキー値を使用します。 既定値は、ランダム値ではなくWHATAPに指定するように変更します。 WHATAP指定されると、キーの入力なしで復号化できます。
Changed SQL文の正規化オプション設定の変更
-
SQL文でパラメータを分離して、正規化する機能を常に有効にします。
whatap.trace_sql_normalize_enabledオプションを常にtrueに設定します。 -
既に正規化オプションを無効に(正規化の中止設定)した状態であれば、正規化してパラメータを別表記する設定を有効にします。
whatap.profile_sql_param_enabledオプションをtrueに設定します。- 正規化されたパラメータを、別に暗号化して収集します。
- security.confの
paramkeyに復号化してデータを確認できます。
2024-03-06
v2.7.2
Changedログモニタリングファイル名に日付形式の変数を使用するように修正
Python
strftime()使用を基準に修正します。 例、20240101: %Y%m%d
Changedインストーラースクリプト(/usr/whatap/php/install.sh)案内文の修正
2024-01-24
v2.7.1
Fixed whatap.onodeオプション設定後、名前ではなくハッシュ(数字)値のみ表記されるエラーを修正
Fixed Ubuntu 14バージョンでwhatap-php.serviceファイルが認識されないエラーを修正
2024-01-10
v2.7.0
New PHP 8.3バージョンに対応
FeatureマルチトランザクショントレースでTrace context(W3C) に対応
Trace contextに対応するOpenTelmetryとマルチトランザクショントレースの連携に対応します。
Changed SQL、Method、HTTP callのリソース指標の収集を修正
トランザクション開始時点のリソース(cpu、memory)と、各スタッフ開始時点のリソースの違いを収集します。
Changed設定ファイル(whatap.conf)がない場合、新たに生成するよう修正
FixedアクティブTX一覧から外部呼び出し累積件数が累積時間として誤って収集されるエラーを修正
FixedLinux環境でwhatap-phpサービス(whatap-php.service)実行エラーを修正
Fixed PHP 8.1.0バージョンから8.1.2バージョンまで発生するsegmentationエラー修正(ユーザー関数に対する収集中止)
2023-11-22
v2.6.3
Changed テキストキャッシュの保存期間を1日から1時間に変更
Changed Kubernetes環境でCPUおよびメモリ指標の収集を無効化し、Kubernetesエージェントが収集するシステム指標に置き換え
Fixed CentOS 9以降でwhatap-phpサービスが起動できない問題を修正
Fixed Dockerコンテナ環境でvCpu情報が重複して収集される問題を修正
2023-09-13
v2.6.2
Feature 大量プロファイル処理オプションを追加
-
従来は最大1024個のプロファイルのみ収集可能でした。設定で増やすことは可能ですが、メモリ消費が増加します。
-
一定量を圧縮・分割して送信することで、メモリ消費を抑えつつ多くのプロファイル情報を収集可能になりました。
-
whatap.large_profile_enabled Boolean
デフォルト:
false最大1万件未満のプロファイル(ステップ)を収集可能。さらに多くを収集するには
split_profile_enabledの使用を推奨。 -
whatap.split_profile_enabled Boolean
デフォルト:
falseプロファイルを仮想トランザクションに分割して送信。複数のトランザクションとして表示されます。
Feature プロファイルデータの圧縮送信オプションを追加
- whatap.profile_zip_enabled Boolean デフォルト:
true
Changed 特定のHTTPメソッドを除外する設定をすべてのトランザクションに適用するよう変更
-
whatap.ignore_http_methodオプションはすべてのトランザクションに適用されます。 -
従来は
whatap.http_method_urlsにより特定のトランザクションのみが対象でしたが、該当オプションは削除され、全体に適用されるように変更されました。