.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();
}
}
}Note.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
입니다.
Note문자열 인코딩 관련 지원은 개발 중입니다.
-
-
Changed
.NET Framework 버전의 Redis 출력 포맷 변경- .Net Core의 출력 방식과 통일하여 꾸미기 효과가 적용되었습니다.
-
Deprecate
trace_db_command_methods
옵션 삭제-
모니터링 대상 자동 처리로 현재 해당 옵션이 필요하지 않습니다.
-
모니터링 대상에서 제외된 메소드는 Method hook을 이용하여 처리할 수 있습니다.
hook_methods_enabled=true
hook_methods_prefix=System.Data., ...
-
다운로드
-
.NET runtime 4.6.1 미만 또는 Windows 2012 미만
Windows Server 2008 R2가 최소 요구사항입니다.