콘텐츠로 이동

수동 통합

ft-plugin 없이 SDK를 통합하는 방법

Guance는 Android Gradle Plugin Transformation을 사용하여 코드를 삽입하고 데이터를 자동으로 수집합니다. 그러나 일부 호환성 문제로 인해 ft-plugin 또는 ft-plugin-legacy를 사용할 수 없는 경우가 있습니다. 영향 범위는 다음과 같습니다:

  • RUMAction, Resource
  • android.util.Log
  • Java 및 Kotlin println 콘솔 로그 자동 캡처
  • 심볼 파일 자동 업로드

현재 이러한 상황에 대응하여 수동 통합 방식을 사용할 수 있습니다.

Application 시작 이벤트

소스 코드 예제는 DemoForManualSet.kt를 참고하세요.

// Application
@Override
public void onCreate() {
    super.onCreate();
    // SDK 초기화 전에 호출해야 함
    FTAutoTrack.startApp(null);
    // SDK 설정 구성
    setSDK(this);
}
// Application
override fun onCreate() {
    super.onCreate()
    // SDK 초기화 전에 호출해야 함
    FTAutoTrack.startApp(null)
    // SDK 설정 구성
    setSDK(this)
}

사용자 작업 수동 추가

버튼 등의 이벤트는 트리거 지점에서 직접 추가해야 합니다. 여기서는 Button onClick 이벤트를 예로 들어 설명합니다. 소스 코드 예제는 ManualActivity.kt를 참고하세요:

view.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        FTRUMGlobalManager.get().startAction("[action button]", "click");
    }
});
view.setOnClickListener {
    FTRUMGlobalManager.get().startAction("[action button]", "click")
}

OkHttp Resource / Trace 수동 통합

OkHttpaddInterceptor, eventListener를 통해 ResourceTrace를 통합할 수 있습니다. 예제는 다음과 같습니다. 소스 코드 예제는 ManualActivity.kt를 참고하세요:

OkHttpClient.Builder builder = new OkHttpClient.Builder()
    .addInterceptor(new FTTraceInterceptor())
    .addInterceptor(new FTResourceInterceptor())
    .eventListenerFactory(new FTResourceEventListener.FTFactory());
//.eventListenerFactory(new FTResourceEventListener.FTFactory(true));
OkHttpClient client = builder.build();
val builder = OkHttpClient.Builder()
    .addInterceptor(FTTraceInterceptor())
    .addInterceptor(FTResourceInterceptor())
    .eventListenerFactory(FTResourceEventListener.FTFactory())
    //.eventListenerFactory(new FTResourceEventListener.FTFactory(true))
val client = builder.build()

다른 네트워크 프레임워크는 FTRUMGlobalManager.startResource, stopResource, addResourceFTTraceManager.getTraceHeader를 직접 구현해야 합니다. 구체적인 구현 방식은 소스 코드 예제 ManualActivity.kt를 참고하세요.

OkHttp WebSocket Resource 수동 통합

ft-sdk >= 1.7.5인 경우, WebSocket 자동 계측을 지원하는 ft-plugin을 사용하지 않는다면 FTWebSocket을 통해 OkHttp WebSocket 핸드셰이크 Resource를 명시적으로 수집할 수 있습니다. 먼저 FTRUMConfig.setEnableTraceUserResource(true)를 활성화해야 합니다. 기존 Resource URL 필터 및 RUM 샘플링 규칙은 계속 적용됩니다. 수집은 핸드셰이크 성공, 서버에 의해 거부 또는 실패한 경우만 다루며, 연결 유지 시간은 집계하지 않고 메시지 내용도 수집하지 않습니다.

호출 지점이 적은 경우 FTWebSocket.newWebSocket()을 직접 사용할 수 있습니다:

WebSocket socket = FTWebSocket.newWebSocket(okHttpClient, request, listener);
val socket = FTWebSocket.newWebSocket(okHttpClient, request, listener)

프로젝트에서 의존성 주입을 통해 WebSocket factory를 통일적으로 제공하는 경우, 한 번 래핑한 후 WebSocket.Factory를 주입할 수 있습니다:

WebSocket.Factory factory = FTWebSocket.wrap(okHttpClient);
WebSocket socket = factory.newWebSocket(request, listener);
val factory: WebSocket.Factory = FTWebSocket.wrap(okHttpClient)
val socket = factory.newWebSocket(request, listener)

wrap()은 중복 호출을 지원합니다. 동시에 ft-plugin >= 1.3.8이 활성화되어 있어도 동일한 요청에 대해 한 번만 핸드셰이크 Resource가 수집됩니다. 타사 라이브러리 내부에서 OkHttpClient를 보유하고 있고, newWebSocket() 호출 지점을 제공하지 않거나 WebSocket.Factory를 전달할 수 없는 경우에는 여전히 ft-plugin 자동 계측을 사용해야 합니다.

WebView 수동 설정

FTAutoTrack.setUpWebView(webview);
//loadUrl 로딩 작업 전에 설정
FTAutoTrack.setUpWebView(webview)
//loadUrl 로딩 작업 전에 설정

문서 평가

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