개요
오류 추적은 RUM Android SDK에서 수집된 오류를 처리합니다.
Android 충돌 보고 및 오류 추적을 활성화하면 실제 사용자 모니터링(RUM) 기능을 사용해 종합적인 충돌 보고서와 오류 동향을 확보할 수 있습니다. 다음에 액세스할 수 있습니다.
- 집계된 Android 충돌 대시보드 및 속성
- 난독화 해제된 Anroid 충돌 보고서
- Android 오류 추적 및 동향 분석
오류 추적에 충돌 보고서가 표시됩니다.
설정
Android SDK를 아직 설정하지 않은 경우 인앱 설정 지침을 따르거나 Android RUM 설정 설명서를 참조하세요.
- 최신 버전의 RUM Android SDK를 Gradle 종속성에 추가하세요.
- SDK를 초기화할 때 애플리케이션의
env
및 variant
을 설정하세요. - 난독화 해제된 스택 트레이스에 액세스하려면 Gradle 태스크를 실행하여 Proguard/R8 매핑 파일을 Datadog에 업로드하세요.
관련 스택 트레이스의 각 프레임에 대한 파일 경로, 줄 번호 및 코드 스니펫에 액세스하여 오류를 확인할 수 있습니다.
매핑 파일 업로드
참고: 소스 맵을 다시 업로드할 때 버전이 변경되지 않으면 이전 소스 맵을 다시 쓰지 않습니다.
다음 코드 스니펫을 사용해 Android Gradle 플러그인을 Gradle 프로젝트에 추가하세요.
// In your app's build.gradle script
plugins {
id("com.datadoghq.dd-sdk-android-gradle-plugin") version "x.y.z"
}
전용 Datadog API 키를 생성하고 DD_API_KEY
또는 DATADOG_API_KEY
라는 이름의 환경 변수로 내보내기하세요. 대신, 작업 속성으로 전달하거나 프로젝트 루트에 datadog-ci.json
파일이 있는 경우 apiKey
속성에거 가져올 수 있습니다.
또는 build.gradle
스크립트에서 플러그인을 설정하여 유럽연합 지역에 파일을 업로드하도록 플러그인을 설정할 수 있습니다.
난독화된 APK 빌드 이후 업로드 작업을 실행하세요.
./gradlew uploadMappingRelease
참고: 프로젝트에서 추가 작업을 사용하는 경우 플러그인은 난독화가 활성화된 각 변형에 대해 작업 업로드를 제공합니다. 이 경우 적절한 변형 이름으로 RUM Android SDK를 초기화하세요(필수 API는 버전 1.8.0
이상에서 사용할 수 있음).
다음 코드 스니펫을 사용해 Android Gradle 플러그인을 Gradle 프로젝트에 추가하세요.
// In your app's build.gradle script
plugins {
id("com.datadoghq.dd-sdk-android-gradle-plugin") version "x.y.z"
}
전용 Datadog API 키를 생성하고 DD_API_KEY
또는 DATADOG_API_KEY
라는 이름의 환경 변수로 내보내기하세요. 대신, 작업 속성으로 전달하거나 프로젝트 루트에 datadog-ci.json
파일이 있는 경우 apiKey
속성에거 가져올 수 있습니다.
앱의 build.gradle
스크립트 파일에서 다음 스니펫을 추가해 EU 지역에서 사용할 플러그인을 설정하세요.
난독화된 APK 빌드 이후 업로드 작업을 실행하세요.
./gradlew uploadMappingRelease
참고: 프로젝트에서 추가 작업을 사용하는 경우 플러그인은 난독화가 활성화된 각 변형에 대해 작업 업로드를 제공합니다. 이 경우 적절한 변형 이름으로 RUM Android SDK를 초기화하세요(필수 API는 버전 1.8.0
이상에서 사용할 수 있습니다.).
플러그인 설정 옵션
플러그인 확장을 통해 설정할 수 있는 플러그인 속성에는 여러 가지가 있습니다. 여러 변형을 사용하는 경우 변형에서 특정 작업에 대한 속성 값을 설정할 수 있습니다.
예를 들어, fooBarRelease
변형의 경우 다음 설정을 사용할 수 있습니다.
datadog {
foo {
versionName = "foo"
}
bar {
versionName = "bar"
}
fooBar {
versionName = "fooBar"
}
}
이 변형에 대한 작업 설정은 다음 순서로 제공된 세 개의 모든 작업 설정을 병합한 것입니다.
bar
foo
fooBar
이는 fooBar
인 versionName
속성에 대한 최종 값을 확인합니다.
속성 이름 | 설명 |
---|
versionName | 애플리케이션 버전 이름(기본적으로 build.gradle 스크립트의 android 블록에서 정의한 버전)입니다. |
serviceName | 애플리케이션의 서비스 이름(기본적으로 build.gradle 스크립트의 android 블록에서 정의된 애플리케이션 패키지 이름)입니다. |
site | (US1, US3, US5, EU1, US1_FED, 또는 AP1)에 데이터를 업로드할 Datadog 사이트입니다. |
remoteRepositoryUrl | 원격 리포지토리 URL로 소스 코드가 배포되는 것입니다. 제공되지 않는 경우 이 값은 작업 실행 시간 동안 Git 설정에서 확인됩니다. |
checkProjectDependencies | 이 속성은 플러그인이 Datadog Android SDK이 종속성에 포함되어 있는지 확인하도록 제어합니다. 작동하지 않는 경우 “없음"은 무시되고 “경고"는 경고를 기록하며 “실패는"는 빌드에 오류가 있음(기본값)을 나타냅니다. |
CI/CD 파이프라인과 통합
기본적으로 매핑 작업 업로드는 빌드 그래프에 있는 다른 작업과 독립적입니다. 매핑을 업로드해야 하면 수동으로 작업을 실행합니다.
CI/CD 파이프라인에서 이 작업을 실행하려 하고 빌드 그래프의 일환으로 작업이 필요한 경우, 업로드 작업을 설정해 매핑 파일이 설정된 후 실행되도록 할 수 있습니다.
예시:
tasks["minify${variant}WithR8"].finalizedBy { tasks["uploadMapping${variant}"] }
한계
매핑 파일은 300MB로 제한됩니다. 프로젝트에 이보다 큰 매핑 파일이 있는 경우 다음 옵션 중 하나를 사용해 파일 크기를 줄입니다.
매핑 파일은 50MB로 제한됩니다. 프로젝트에 이보다 큰 매핑 파일이 있는 경우 다음 옵션 중 하나를 사용해 파일 크기를 줄입니다.
mappingFileTrimIndents
옵션을 true
로 설정합니다. 그러면 평균적으로 파일 크기가 5%로 줄어듭니다.mappingFilePackagesAliases
맵 설정: 이는 패키지 이름을 더 짧은 별칭으로 대체합니다. 참고: Datadog 스택트레이스는 원본 패키지 이름 대신 동일한 별칭을 사용하므로 타사 종속성을 위해 이 옵션을 사용하는 것이 더 좋습니다.
datadog {
mappingFileTrimIndents = true
mappingFilePackageAliases = mapOf(
"kotlinx.coroutines" to "kx.cor",
"com.google.android.material" to "material",
"com.google.gson" to "gson",
"com.squareup.picasso" to "picasso"
)
}
참고 자료
Additional helpful documentation, links, and articles: