事前に入力されたコールグラフの生成(C++ のみ)

前のセクションでは、コード内でインストルメンテーション メソッドを呼び出すことによって、C/C++ アプリケーションをインストゥルメント化する方法について説明しました。/db/organizations/splunk/repositories/appdonprem-25_5_0/content/documents/AppDynamics/c_generate_call_graphs.ditaただし、ソースコードを変更できない場合は、ログファイルなどのソースのデータを使用して入力されたコールグラフを生成できます。

事前に入力されたコールグラフを生成するには、次の手順を実行します。

  1. コールグラフのルートを作成するには、 クラスをインスタンス化します。
    次に、コールグラフの例を示します。
    • bt:ビジネストランザクション。
    • class_name:コールグラフのルートを含むクラスの名前。
    • method_name:コールグラフのルートを表すメソッドの名前。
    • file_path:クラスへのファイルパス。
    • line_number:メソッドの行番号。
    • time_msec:このフレーム(メソッド)が実行する時間(ミリ秒単位)
    • frame_type:フレームのタイプ(メソッドの言語)現在のところ、APPD_FRAME_TYPE_CPP が唯一のオプションです。
    appd::sdk::CallGraph callGraph(bt, "Class1", "main", "/src/file1.cc", 276, 100, APPD_FRAME_TYPE_CPP); 
  2. 次に示すように、ルートおよび追加された任意の子で add_child を呼び出してコールグラフツリーを作成します。
    callGraph.root() .add_child("Class2", "method1", "/src/file2.cc"), 101, 40, APPD_FRAME_TYPE_CPP) .add_child("Class2", "method2", "/src/file2.cc"), 523, 30, APPD_FRAME_TYPE_CPP); auto& cge1 = callGraph.root() .add_child("Class3", "method1", "/src/file3.cc"), 27, 30, APPD_FRAME_TYPE_CPP); cge1.add_child("Class3", "method2", "/src/file3.cc"), 430, 15, APPD_FRAME_TYPE_CPP);
  3. add_to_snapshotコールグラフで を呼び出します。
    これが機能するには、ビジネストランザクションがスナップショットを取得する必要があります。
    callGraph.add_to_snapshot();