SQL パラメータ モニタリングの設定

Java エージェント SQL モニタリングを拡張して、トランザクション追跡とメトリックに SQL パラメータ情報を提供できます。
apmdevops106
Java エージェント SQL モニタリングを拡張して、トランザクション追跡とメトリックに SQL パラメータ情報を提供できます。
SQL パラメータ モニタリングは JDBC プリペアード ステートメントを追跡し、バインド パラメータを記録します。 SQL パラメータ モニタリングはさらに ResultSet オブジェクトを追跡し、処理済みの行をカウントし、処理された平均結果セット行のメトリックをレポートします。
デフォルトでは、SQL パラメータ モニタリングは無効です。
SQL ステートメントの変数は、機密情報またはセキュリティ保護されたデータを表すことがあります。 これはたとえば、アカウント番号または社会保障番号などです。 SQL パラメータ モニタリングによって、トランザクション追跡ですべてのパラメータが表示されます。
10.7 以降の SQL パラメータ モニタリングに加えて、パラメータ拡張機能がある CA APM 10.5 以前の CA APM Marketplace SQLAgent をインストールしないでください。 両方のバージョンが同時にインストールされていると、Java エージェントの深刻な問題が発生する可能性があります。
SQL パラメータ モニタリング バンドル
SQL パラメータ モニタリングは任意の APM Command Center の Java エージェント パッケージに追加することができます。 パッケージの作成時には SQLParamAgent バンドルを含めます。
CA APM 10.5.2 から CA APM 10.7 への SQL パラメータ モニタリングのアップグレード
CA APM を 10.5.2 から CA APM 10.7 にアップグレードする場合は、SQL パラメータ モニタリングをアップグレードする必要があります。
以下の手順に従います。
  1. <Agent_Home>/extensions/deploy ディレクトリに移動します。
  2. ディレクトリで SQLParams.tar.gz ファイルが存在するかどうかを確認します。
  3. そのファイルを見つけたら、削除します。
SQL パラメータ モニタリングの設定
SQL パラメータ モニタリング プロパティは IntroscopeAgent.profile ファイル内で設定します。
以下の手順に従います。
  1. <Agent_Home>/core/config ディレクトリに移動し、テキスト エディタで IntroscopeAgent.profile ファイルを開きます。
  2. (オプション)
    introscope.agent.sqlagent.showparams=true
    を設定して、SQL パラメータ モニタリングを有効にします。
  3. 必要に応じて、以下のプロパティを設定します。
    • introscope.agent.sqlagent.cacheConnectionsURLs
      タイプ:
      ブール値
      説明:
      接続 URL パラメータ キャッシングを有効にします。 キャッシュは、接続 URL がトランザクション追跡を表示するときに、オーバーヘッドおよびスレッドの不足を引き起こすことを防ぎます。
      デフォルト
      : false
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.countrows
      タイプ:
      ブール値
      説明:
      各結果セットの行数のカウントと、処理された平均結果セット行のメトリックを有効にします。
      デフォルト
      : false
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.maxparamlength
      タイプ:
      整数
      説明:
      SQL パラメータの最大長。 この値より長い文字列は切り捨てられ、サフィックスとして 3 つのピリオド(
      ...
      )が付きます。
      デフォルト:
      100
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.rawsql
      タイプ:
      ブール値
      説明:
      すべての SQL クエリを表示するトランザクション追跡を有効にします。 このプロパティは、初期準備の SQL、SQL 解決済み、および変数がある SQL の各パラメータをレポートします。
      デフォルト
      : false
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.resolveBindParams
      タイプ:
      ブール値
      説明:
      解決されたバインド パラメータが指定された SQL クエリ ステートメントを計算します。 このステートメントをトランザクション追跡に SQL 解決済みパラメータとして追加します。
      デフォルト:
      true
      監視対象アプリケーションを再起動する
      : はい
      、注:
      introscope.agent.sqlagent.rawsql
      および
      introscope.agent.sqlagent.maxparamlength
      プロパティを有効にして
      introscope.agent.sqlagent.resolveBindParams
      プロパティを有効にする必要があります。
    • introscope.agent.sqlagent.resultsets.max
      タイプ:
      整数、
      説明:
      SQL パラメータ モニタリングが行のカウントを追跡する、同時結果セットの最大数です。
      デフォルト:
      1000
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.showparams
      タイプ:
      ブール値
      、説明:
      プリペアード ステートメント バインド パラメータの追跡とトランザクション追跡でのバインド パラメータ値の表示を有効にします。
      デフォルト:
      false
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.showurl
      タイプ: ブール値
      説明:
      トランザクション追跡の接続 URL パラメータを有効にします。 このプロパティが有効な場合には、
      Introscope.agent.sqlagent.cacheConnectionsURLs
      プロパティも有効にします。
      デフォルト
      : false
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.sql.maxlength
      タイプ:
      整数、
      説明:
      SQL クエリの最大長。 この値より長い文字列は切り捨てられ、サフィックスとして 3 つのピリオドが付きます。
      ...
      デフォルト:
      500、
      監視対象アプリケーションを再起動する
      : はい
    • introscope.agent.sqlagent.statements.max
      タイプ: 整数
      説明:
      バインド パラメータの追跡されている同時プリペアード ステートメントの最大数
      デフォルト:
      1000
      監視対象アプリケーションを再起動する
      : はい
  4. ファイルを保存します。
  5. 管理対象アプリケーションを再起動します。
SQL パラメータ モニタリングのトラブルシューティング
デバッグ ログの設定
SQL パラメータ モニタリングのデバッグ ログをオンにするには、このプロパティを設定します。
log4j.logger.IntroscopeAgent.SqlParamAgent=DEBUG, console, logfile
問題の状況:
処理済み平均結果行メトリックが表示されません。
解決方法:
introscope.agent.sqlagent.countrows
プロパティが有効になっていることを確認します。
このプロパティが有効な場合は、2 つのアクションが発生時にのみ、メトリックが表示されます。 アプリケーションが SQL 結果セットを反復処理するときと、アプリケーションが SQL 結果セットを閉じるときです。
問題の状況:
エージェント ログ内のこの警告は何を意味しますか。
Result set cache max limit exceeded
Prepared statement cache max limit exceeded
解決方法:
SQL パラメータ モニタリングは、すべてのオープン プリペアード ステートメントと結果セットを追跡しますが、キャッシュはデフォルトでそれぞれ 1000 までに制限されます。 アプリケーションが開くプリペアード ステートメントまたは結果セットの数は、このキャッシュ制限値を超えることができます。 この状況で、SQL パラメータ モニタリングはステートメントと結果セットを無視します。 SQL パラメータ モニタリングは、<Agent_Home>/logs ディレクトリにあるエージェント ログに警告を 1 回記録します。
追跡ビューでビューの SQL ステートメント パラメータ属性の表示
  1. Team Center、WebView、または Workstation を開きます。
  2. メトリック ブラウザ ツリーでエージェントまたはノードを選択します。
  3. [追跡]
    タブを選択し、追跡を選択します。
  4. トランザクション追跡の
    追跡
    ビューで SQL ステートメントを選択して調べます。
    これらの属性は、SQL ステートメントを表すエレメントの
    Properties
    セクションに表示されます。
    • プリペアード ステートメント バインド変数
    • プリペアード ステートメントの初期プリペアードおよび解決済み SQL
    • 変数がある完全動的ステートメント
    • データベース接続 URL
SQL パラメータ メトリック
処理された平均結果セット行のメトリックを使用して、SQL ステートメントごとに処理される平均結果行を表示できます。