本文へスキップ

.NET Agent v2.3.5

2024年11月04日

  • New .NET CoreでUser Transaction機能を追加

    • 次の例を参照にしてください。 接続者数のモニタリングが必要ない場合は、ユーザー識別項目に空の文字列を入力します。

      using System;

      class Program
      {
      static void Main(string[] args)
      {
      //トレース開始(ドメイン、Url、ユーザー識別)
      WhatapDiagnostic.TraceStart("127.0.0.1", "/api/test", "user123");

      try
      {
      //ステップ開始
      WhatapDiagnostic.StepStart("test Step");

      //ユーザーコード領域
      //ステップ終了
      WhatapDiagnostic.StepStop();
      }
      catch (Exception ex)
      {
      //例外発生時の診断情報に例外を記録
      WhatapDiagnostic.SetExceptionForTrace(ex);
      }
      finally
      {
      //トレース終了
      WhatapDiagnostic.TraceStop();
      }
      }
      }

      ノート

      .NET Frameworkは準備中です。

    • WhatapDiagnosticコードは次の通りです。 形式に関係なくdiagnosticSource.Write(…)内容だけ正確であればいいです。

      using System.Diagnostics;å

      public static class WhatapDiagnostic
      {
      private static readonly DiagnosticSource diagnosticSource = new DiagnosticListener("WhatapDiagnosticListener");

      public static void TraceStart(string host, string url, string userId)
      {
      if (diagnosticSource.IsEnabled("Whatap.Diagnostic.Trace.Start"))
      {
      diagnosticSource.Write("Whatap.Diagnostic.Trace.Start", new { Host = host, Url = url, UserId = userId });
      Console.WriteLine("Whatap.Diagnostic.Trace.Start!");
      }
      }

      public static void SetExceptionForTrace(Exception exception)
      {
      if (diagnosticSource.IsEnabled("Whatap.Diagnostic.Trace.Exception"))
      {
      diagnosticSource.Write("Whatap.Diagnostic.Trace.Exception", exception);
      }
      }

      public static void StepStart(string message)
      {
      diagnosticSource.Write("Whatap.Diagnostic.Step.Start", message);
      }

      public static void StepStop()
      {
      diagnosticSource.Write("Whatap.Diagnostic.Step.Stop", new { });
      }

      public static void TraceStop()
      {
      if (diagnosticSource.IsEnabled("Whatap.Diagnostic.Trace.Stop"))
      {
      diagnosticSource.Write("Whatap.Diagnostic.Trace.Stop", new { });
      }
      }

      public static void UserLog(string message)
      {
      if (diagnosticSource.IsEnabled("Whatap.Diagnostic.UserLog"))
      {
      diagnosticSource.Write("Whatap.Diagnostic.UserLog", message);
      }
      }
      }
  • New Method hookのサポート

    • メソッド名を指定してモニタリングできます。 次の設定を参照してください。

      hook_methods_enabled=true
      hook_methods_prefix=System.Net.Http.HttpClient., System.Net.WebRequest., System.Data., System.Net.Http.
      hook_methods_ignores=get,set
      • hook_methods_enabledオプションの値をtrueに設定します。

      • hook_methods_prefixオプションの値は、先頭の一致時にモニタリングの対象となります。 コンマ(,)で分離します。

      • hook_methods_ignoreオプションの値は、先頭の一致時にモニタリング対象から除外されます。

  • New WebClient.DownloadStringメソッドモニタリングサポートの追加

  • Changed response bodyのオプション処理

    • 文字列エンコードに関連するエラーが発見され、デフォルト設定の代わりに有効オプションが追加されました。

    • profile_http_response_body_enabledオプションのデフォルト値はfalseです。

    ノート

    文字列エンコード関連のサポートは開発中です。

  • Changed .NET FrameworkバージョンのRedis出力フォーマットの変更

    • .Net Coreの出力方式と統一して飾り効果が適用されました。
  • Deprecate trace_db_command_methodsオプションの削除

    • モニタリング対象の自動処理により、現在そのオプションは必要ありません。

    • モニタリング対象から除外されたメソッドは、Method hookを利用して処理できます。

      hook_methods_enabled=true
      hook_methods_prefix=System.Data., ...
情報

ダウンロード