본문으로 건너뛰기

.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., ...
정보

다운로드