ヘルプ APM APMインサイト(.NETエージェント版) APMインサイト(.NETエージェント)、カスタム インストルメント、マニュアル設定
APMインサイト .NET エージェントは、自動的に.NET Framework関連のメソッドをインストルメントし、メトリックを収集します。 . カスタム インストルメント は、独自のフレームワークのパフォーマンスを、アプリケーションのコード変更なしで確認するのに便利です。
独自のアプリケーション メソッドは、取得・トラック可能となり、トランザクション トレースに表示されます。独自のアプリケーション メソッドにより、実行が遅くなっていると疑われる場合、パフォーマンス関連の問題を特定するのに役立ちます。
アプリケーションに、コード量の多いメソッドや、外部コールがある場合、カスタム インストルメントはパフォーマンス低下の根本原因を特定する役に立ちます
設定ファイルのデータは、JSON形式をもちいます。 . Webアプリで使用しているアセンブリ名、クラス名、メソッド名を定義できるほか、メソッドごとのコンポーネント名の指定も可能です。 エージェントは設定データを読み、指定メソッドのパフォーマンスを追跡します。
カスタム インストルメント設定ファイル custom_instrumentation.json は、ProgramData/DotNetAgentのパスにあります。
{
"AssemblyName1 ": {
"NameSpace.ClassName1 ": {
"MethodName1 ": "ComponentName "
},
"NameSpace.ClassName2 ": {
"MethodName1 ": "ComponentName ",
"MethodName2 ": "ComponentName "
}
},
"AssemblyName2 ": {
"NameSpace.ClassName1 ": {
"* ": "ComponentName "
},
"NameSpace.* ": {
"MethodName1 ": "ComponentName ",
"MethodName2 ": "ComponentName "
}
}
}
メモ: ClassNameやMethodNameの代わりに、*を指定すると、アセンブリのクラスにあるメソッドすべてを追跡します。これを行うには、enable.wildcardmatch=trueと、apminsight.confファイルに指定してください。
次のコード サンプルでは、コントローラークラスを持つDLLを利用します。このSalaryControllerには、3つのメソッドがあります。
namespace Employee.Controllers
{
public class SalaryController : Controller
{
public ActionResult ProcessPayRoll()
{
EmployeeSR.EmpServiceClient empServiceClient = new EmployeeSR.EmpServiceClient();
empServiceClient.ProcessPayroll(Context.EmpId);
return View();
}
public ActionResult GetSalaryAmount(int empId)
{
using(var conn = new SqlConnection(connString))
{
conn.Open();
var cmd = new SqlCommand("select Salary from Employee where id='" + id + "' ", conn);
ViewBag.SalaryAmount = cmd. ExecuteScalar();
conn.Close();
}
return View();
}
public ActionResult GetSalaryPerMonth(string id)
{
int salary = GetSalaryPerYear();
ViewBag.Result = salary / 12;
return View();
}
}
}
クラスのカスタム インストルメント
{
"Employee ": {
"Employee.Controllers.SalaryController ": {
"ProcessPayRoll ": "PAYROLL ",
"GetSalaryAmount ": "FETCH ",
"GetSalaryPerMonth ": "FETCH "
}
}
}
インストルメントしたメソッドは、実行時間とあわせ、トレースタブに表示されます。