콘텐츠로 이동

동적 구성 및 동적 업데이트 주소

능동적 동적 구성 동기화

FTSdk를 사용하여 동적 구성을 능동적으로 동기화합니다. 자동 업데이트가 요구 사항을 충족하지 못하는 경우, 능동적 호출을 통해 업데이트 시점을 조정합니다.

ft-sdk >= 1.6.16에서 지원됩니다. FetchResult.onConfigSuccessFetched(RemoteConfigBean configBean, String jsonConfig)를 통해 환경 변수를 직접 파싱할 수 있습니다.

/**
 * 원격 구성을 능동적으로 업데이트합니다. 호출 빈도는 FTSDKConfig.setRemoteConfigMiniUpdateInterval의 영향을 받습니다.
 */
FTSdk.updateRemoteConfig();

/**
 * 원격 구성을 능동적으로 업데이트합니다. 이 메서드는 FTSDKConfig.setRemoteConfigMiniUpdateInterval 구성을 무시합니다.
 *
 * @param remoteConfigMiniUpdateInterval 원격 구성 시간 간격, 단위: 초 [0,)
 * @param result                         업데이트 결과 반환
 */
FTSdk.updateRemoteConfig(int remoteConfigMiniUpdateInterval, FTRemoteConfigManager.FetchResult result);
/**
 * 원격 구성을 능동적으로 업데이트합니다. 호출 빈도는 FTSDKConfig.setRemoteConfigMiniUpdateInterval의 영향을 받습니다.
 */
FTSdk.updateRemoteConfig()

/**
 * 원격 구성을 능동적으로 업데이트합니다. 이 메서드는 FTSDKConfig.setRemoteConfigMiniUpdateInterval 구성을 무시합니다.
 *
 * @param remoteConfigMiniUpdateInterval 원격 구성 시간 간격, 단위: 초 [0,)
 * @param result                         업데이트 결과 반환
 */
FTSdk.updateRemoteConfig(remoteConfigMiniUpdateInterval, result)

코드 예제

FTSdk.updateRemoteConfig(0, new FTRemoteConfigManager.FetchResult() {
    @Override
    public void onResult(boolean success) {
        //
    }

    @Override
    public RemoteConfigBean onConfigSuccessFetched(RemoteConfigBean configBean, String jsonConfig) {
        // 선택적 확장, 사용자 정의 파싱 및 로컬 구성 변경
        boolean isVip = false;
        try {
            JSONObject jsonObject = new JSONObject(jsonConfig);
            String userid = jsonObject.optString("custom_userid");
            isVip = (userid.equals("custom_user_test6"));
        } catch (JSONException e) {
        }

        if (isVip) {
            configBean.setRumSampleRate(1f);
            configBean.setLogSampleRate(1f);
            configBean.setTraceSampleRate(1f);
        }
        return configBean;
    }
});
FTSdk.updateRemoteConfig(0, object : FTRemoteConfigManager.FetchResult {
    override fun onResult(success: Boolean) {
        // 
    }

    override fun onConfigSuccessFetched(
        configBean: RemoteConfigBean,
        jsonConfig: String
    ): RemoteConfigBean {
        // 선택적 확장, 사용자 정의 파싱 및 로컬 구성 변경
        var isVip = false
        try {
            val jsonObject = JSONObject(jsonConfig)
            val userId = jsonObject.optString("custom_userid")
            isVip = userId == "custom_user_test6"
        } catch (e: JSONException) {
            // 무시
        }

        if (isVip) {
            configBean.setRumSampleRate(1f)
        }
        return configBean
    }
})

Android ID 획득 동적 활성화 및 비활성화

FTSdk를 사용하여 SDK에서 Android ID를 획득할지 여부를 설정합니다.

FTSdk.setEnableAccessAndroidID(true);
FTSdk.setEnableAccessAndroidID(false);
FTSdk.setEnableAccessAndroidID(true)
FTSdk.setEnableAccessAndroidID(false)

동적 업데이트 주소

FTSdk를 사용하여 SDK 런타임 중에 데이터 전송 주소를 동적으로 전환합니다. 설정이 성공하면 이후 데이터는 새 주소로 계속 업로드됩니다.

ft-sdk >= 1.6.17에서 지원됩니다. setDatakitUrlsetDatawayUrl 중 하나를 선택하여 사용합니다. setDatawayUrl을 사용하는 경우 새 clientToken도 함께 전달해야 합니다.

사용 사례 설명

FTSDKConfig.builder()는 초기화 시 datakitUrl 또는 datawayUrl을 전달하지 않는 것을 지원합니다. 이 시나리오에서 SDK는 먼저 데이터 수집을 수행하지만 업로드는 하지 않습니다.

이후 FTSdk.setDatakitUrl(...) 또는 FTSdk.setDatawayUrl(..., ...)를 호출하여 데이터 전송 주소를 동적으로 설정하면 SDK가 로컬 캐시를 소비하고 데이터 업로드를 시작합니다.

업로드 주소가 설정되지 않은 동안 수집된 데이터는 여전히 로컬 캐시 상한 제한의 영향을 받습니다. 캐시 상한은 주로 다음 구성의 영향을 받습니다.

  • FTLoggerConfig.setLogCacheLimitCount
  • FTRUMConfig.setRumCacheLimitCount
  • FTSDKConfig.enableLimitWithCacheSize에 해당하는 총 캐시 크기 상한

캐시가 상한에 도달하면 초과된 데이터는 폐기될 수 있습니다. 따라서 이 모드에서는 가능한 한 빨리 업로드 주소를 설정하거나 비즈니스 시나리오에 맞춰 캐시 제한을 적절히 설정하는 것이 좋습니다.

FTSdk.setDatakitUrl("http://10.0.0.1:9529");
FTSdk.setDatawayUrl("https://open.dataway.url", "your-client-token");
FTSdk.setDatakitUrl("http://10.0.0.1:9529")
FTSdk.setDatawayUrl("https://open.dataway.url", "your-client-token")
메서드명 유형 필수 의미
setDatakitUrl String Datakit 데이터 전송 주소를 동적으로 설정합니다. 설정이 성공하면 SDK는 새 Datakit 주소로 데이터를 계속 업로드합니다.
setDatawayUrl String, String Dataway 데이터 전송 주소와 clientToken을 동적으로 설정합니다. 설정이 성공하면 SDK는 새 Dataway 주소로 데이터를 계속 업로드합니다.

문서 평가

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