콘텐츠로 이동

RUM 구성

RUM 초기화 구성

FTUnityBridge.InitRUMConfig(new RUMConfig()
{
    androidAppId = "androidAppId",
    iOSAppId = "iOSAppId",
    sampleRate = 0.8f,
});
필드 유형 필수 설명
androidAppId string 예 RUM appid를 설정해야 RUM 수집 기능이 활성화됩니다. appid 가져오는 방법
iOSAppId string 예 RUM appid를 설정해야 RUM 수집 기능이 활성화됩니다. appid 가져오는 방법
sampleRate float 아니요 샘플링 비율, 값 범위 [0,1], 0은 수집 안 함, 1은 전체 수집, 기본값은 1입니다. 동일한 session_id 아래의 모든 View, Action, LongTask, Error 데이터에 적용됩니다.
sessionOnErrorSampleRate float 아니요 오류 수집 비율을 설정합니다. 세션이 sampleRate로 샘플링되지 않은 경우, 세션 중 오류가 발생하면 오류 발생 전 1분 범위의 데이터를 수집할 수 있습니다. 기본값은 0입니다.
enableNativeUserAction boolean 아니요 Native Action 추적 여부, Button 클릭 이벤트, 기본값은 false이며 Android 클라우드 패키징에서는 지원하지 않습니다.
enableNativeUserResource boolean 아니요 Native Resource 자동 추적 여부, 기본값은 false이며 Android 클라우드 패키징에서는 지원하지 않습니다. iOS에서 활성화하면 시스템 API로 시작된 resource도 함께 수집되므로, 이 경우 iOS 수동 수집을 비활성화하여 데이터 중복 수집을 방지하세요.
enableNativeUserView boolean 아니요 Native View 자동 추적 여부, 기본값은 false입니다.
errorMonitorType string/array 아니요 오류 모니터링 보조 유형: all, battery, memory, cpu, 기본 미설정
deviceMonitorType string/array 아니요 페이지 모니터링 보조 유형: all, battery(Android만 지원), memory, cpu, fps, 기본 미설정
detectFrequency string 아니요 페이지 모니터링 빈도: normal(기본), frequent, rare
globalContext object 아니요 사용자 지정 전역 매개변수, 특수 key: track_id(추적 기능용)
enableResourceHostIP boolean 아니요 요청 대상 도메인 주소의 IP 수집 여부. enableNativeUserResource = true일 때의 기본 수집에만 영향을 줍니다.
enableTrackNativeCrash boolean 아니요 Android Java Crash 및 OC/C/C++ 크래시 모니터링 활성화 여부, 기본값은 false입니다.
enableTrackNativeAppANR boolean 아니요 Native ANR 모니터링 활성화 여부, 기본값은 false입니다.
enableTrackNativeFreeze boolean 아니요 Native Freeze 자동 추적 여부, 기본값은 false입니다.
nativeFreezeDurationMs number 아니요 Native Freeze 끊김 수집 임계값, 값 범위 [100,), 단위는 밀리초입니다. iOS 기본 250ms, Android 기본 1000ms
rumDiscardStrategy string 아니요 버림 전략: discard 새 데이터 버림(기본), discardOldest 오래된 데이터 버림
rumCacheLimitCount number 아니요 로컬 캐시 최대 RUM 항목 수 제한 [10_000,), 기본 100_000

RUM 수동 계측

Unity SDK는 현재 주로 수동 메서드 호출을 통해 사용자 지정 RUM 데이터 수집을 구현합니다.

Action

StartAction과 AddAction의 사용 차이
  • StartAction은 내부적으로 Action 소요 시간을 자동 계산하며, 계산 과정에서 주변에서 발생한 Resource, LongTask, Error 데이터와 최대한 연관을 지으려 하고, 100ms 빈번 트리거 보호가 설정되어 있습니다. 사용자 작업 유형의 데이터에 권장됩니다.
  • 빈번하게 호출해야 하는 경우 AddAction을 사용하세요. AddAction으로 보고된 Action은 StartAction과 충돌하지 않으며 현재의 Resource, LongTask, Error 데이터와도 연관되지 않습니다.

사용 방법

/// <summary>
/// Action 추가
/// </summary>
/// <param name="actionName">action 이름</param>
/// <param name="actionType">action 유형</param>
public static void StartAction(string actionName, string actionType)

/// <summary>
/// Action 추가
/// </summary>
/// <param name="actionName">action 이름</param>
/// <param name="actionType">action 유형</param>
/// <param name="property">추가 속성 매개변수</param>
public static void StartAction(string actionName, string actionType, Dictionary<string, object> property)

/// <summary>
/// Action 추가
/// </summary>
/// <param name="actionName">action 이름</param>
/// <param name="actionType">action 유형</param>
public static void AddAction(string actionName, string actionType)

/// <summary>
/// Action 추가
/// </summary>
/// <param name="actionName">action 이름</param>
/// <param name="actionType">action 유형</param>
/// <param name="property">추가 속성 매개변수</param>
public static void AddAction(string actionName, string actionType, Dictionary<string, object> property)

코드 예시

FTUnityBridge.StartAction("click", "test");

View

사용 방법

/// <summary>
/// View 시작
/// </summary>
/// <param name="viewName">현재 페이지 이름</param>
public static void StartView(string viewName)

/// <summary>
/// View 시작
/// </summary>
/// <param name="viewName">현재 페이지 이름</param>
/// <param name="property">추가 속성 매개변수</param>
public static void StartView(string viewName, Dictionary<string, object> property)

/// <summary>
/// View 종료
/// </summary>
public static void StopView()

/// <summary>
/// View 종료
/// </summary>
/// <param name="property">추가 속성 매개변수</param>
public static void StopView(Dictionary<string, object> property)

코드 예시

FTUnityBridge.StartView("TEST_VIEW_ONE");

FTUnityBridge.StopView();

Resource

사용 방법

/// <summary>
/// resource 시작
/// </summary>
/// <param name="resourceId">리소스 ID</param>
public static async Task StartResource(string resourceId)

/// <summary>
/// resource 시작
/// </summary>
/// <param name="resourceId">리소스 ID</param>
/// <param name="property">추가 속성 매개변수</param>
public static async Task StartResource(string resourceId, Dictionary<string, object> property)

/// <summary>
/// resource 종료
/// </summary>
/// <param name="resourceId">리소스 ID</param>
public static async Task StopResource(string resourceId)

/// <summary>
/// resource 종료
/// </summary>
/// <param name="resourceId">리소스 ID</param>
/// <param name="property">추가 속성 매개변수</param>
public static async Task StopResource(string resourceId, Dictionary<string, object> property)

/// <summary>
/// 네트워크 전송 콘텐츠 및 메트릭 추가
/// </summary>
/// <param name="resourceId">리소스 ID</param>
/// <param name="resourceParams">데이터 전송 내용</param>
public static async Task AddResource(string resourceId, ResourceParams resourceParams)

ResourceParams

메서드 이름 유형 필수 설명
url string 예 url 주소
requestHeader string 아니요 요청 헤더 매개변수, 형식 제한 없음
responseHeader string 아니요 응답 헤더 매개변수, 형식 제한 없음
responseConnection string 아니요 응답 connection
responseContentType string 아니요 응답 ContentType
responseContentEncoding string 아니요 응답 ContentEncoding
resourceMethod string 아니요 요청 메서드 GET, POST 등
responseBody string 아니요 반환된 body 내용

코드 예시

FTUnityBridge.StartResource(resourceId);

FTUnityBridge.StopResource(resourceId);

ResourceParams resourceParams = new ResourceParams();
resourceParams.url = url;
resourceParams.requestHeader = client.DefaultRequestHeaders.ToDictionary(header => header.Key, header => string.Join(",", header.Value));
resourceParams.responseHeader = response.Headers.ToDictionary(header => header.Key, header => string.Join(",", header.Value));
resourceParams.resourceStatus = (int)response.StatusCode;
resourceParams.responseBody = responseData;
resourceParams.resourceMethod = "GET";

FTUnityBridge.AddResource(resourceId, resourceParams);

Error

사용 방법

/// <summary>
/// 오류 정보 추가
/// </summary>
/// <param name="log">로그</param>
/// <param name="message">메시지</param>
public static async Task AddError(string log, string message)

/// <summary>
/// 오류 정보 추가
/// </summary>
/// <param name="log">로그</param>
/// <param name="message">메시지</param>
/// <param name="property">추가 속성 매개변수</param>
public static async Task AddError(string log, string message, Dictionary<string, object> property)

코드 예시

void OnEnable()
{
    Application.logMessageReceived += LogCallBack;
}

void OnDisable()
{
    Application.logMessageReceived -= LogCallBack;
}

void LogCallBack(string condition, string stackTrace, LogType type)
{
    if (type == LogType.Exception)
    {
        FTUnityBridge.AddError(stackTrace, condition);
    }
}

LongTask

사용 방법

/// <summary>
/// 긴 작업 추가
/// </summary>
/// <param name="log">로그 내용</param>
/// <param name="duration">지속 시간, 나노초</param>
public static async Task AddLongTask(string log, long duration)

/// <summary>
/// 긴 작업 추가
/// </summary>
/// <param name="log">로그 내용</param>
/// <param name="duration">지속 시간, 나노초</param>
/// <param name="property">추가 속성 매개변수</param>
public static async Task AddLongTask(string log, long duration, Dictionary<string, object> property)

코드 예시

FTUnityBridge.AddLongTask("long task test", 100002);

관련 항목

문서 평가

이 페이지가 도움이 되었나요?