- 필수 기능
- 시작하기
- Glossary
- 표준 속성
- Guides
- Agent
- 통합
- 개방형텔레메트리
- 개발자
- Administrator's Guide
- API
- Datadog Mobile App
- CoScreen
- Cloudcraft
- 앱 내
- 서비스 관리
- 인프라스트럭처
- 애플리케이션 성능
- APM
- Continuous Profiler
- 스팬 시각화
- 데이터 스트림 모니터링
- 데이터 작업 모니터링
- 디지털 경험
- 소프트웨어 제공
- 보안
- AI Observability
- 로그 관리
- 관리
",t};e.buildCustomizationMenuUi=t;function n(e){let t='
",t}function s(e){let n=e.filter.currentValue||e.filter.defaultValue,t='${e.filter.label}
`,e.filter.options.forEach(s=>{let o=s.id===n;t+=``}),t+="${e.filter.label}
`,t+=`이 페이지에서는 iOS SDK를 사용하여 Real User Monitoring(RUM) 및 Error Tracking 모두에서 애플리케이션을 계측하는 방법을 설명합니다. 아래 단계에 따라 RUM(Error Tracking 포함) 또는 Error Tracking(독립형 제품으로 구매한 경우)을 사용하여 애플리케이션을 계측할 수 있습니다.
URLSessionInstrumentation
를 활성화하여 데이터 전송을 시작합니다.패키지 관리자에 따라 라이브러리를 종속성으로 선언하세요. Swift 패키지 관리자(SPM)를 권장합니다.
Apple의 Swift 패키지 관리자를 사용하여 통합하려면 다음을 종속 항목으로 Package.swift
에 추가합니다.
.package(url: "https://github.com/Datadog/dd-sdk-ios.git", .upToNextMajor(from: "2.0.0"))
프로젝트에서 다음 라이브러리를 연결합니다.
DatadogCore
DatadogRUM
CocoaPods을 사용하여 dd-sdk-ios
을 설치할 수 있습니다.
pod 'DatadogCore'
pod 'DatadogRUM'
Carthage를 사용하여 dd-sdk-ios
를 설치할 수 있습니다.
github "DataDog/dd-sdk-ios"
Xcode에서 다음 프레임워크를 연결합니다.
DatadogInternal.xcframework
DatadogCore.xcframework
DatadogRUM.xcframework
애플리케이션 유형으로 iOS
를 선택하고 애플리케이션 이름을 입력하여 고유한 Datadog 애플리케이션 ID와 클라이언트 토큰을 생성합니다.
웹 뷰를 계측하려면 *Instrument your webviews 토글을 클릭합니다. 자세한 내용은 웹 뷰 트래킹을 참조하세요.
클라이언트 IP 또는 지리적 위치 데이터에 대한 자동 사용자 데이터 수집을 사용하지 않으려면 해당 설정의 토글을 사용하세요. 자세한 내용은 RUM iOS 데이터 수집을 참조하세요.
Error Tracking > Settings > Browser and Mobile > Add an Application으로 이동합니다.
애플리케이션 유형으로 iOS
를 선택하고 애플리케이션 이름을 입력하여 고유한 Datadog 애플리케이션 ID와 클라이언트 토큰을 생성합니다.
웹 뷰를 계측하려면 웹 뷰 계측 토글을 클릭합니다. 자세한 내용은 웹 뷰 트래킹을 참조하세요.
클라이언트 IP 또는 지리적 위치 데이터에 대한 자동 사용자 데이터 수집을 사용하지 않으려면 해당 설정의 토글을 사용합니다. 자세한 내용은 iOS 데이터 수집을 참조하세요.
데이터의 안전을 보장하려면 클라이언트 토큰을 사용해야 합니다. Datadog API 키]3만 사용하여 dd-sdk-ios
라이브러리를 구성하는 경우 iOS 애플리케이션의 바이트 코드에 클라이언트 측에 노출됩니다.
클라이언트 토큰 설정에 대한 자세한 내용은 클라이언트 토큰 설명서를 참조하세요.
초기화 스니펫에서 환경 이름, 서비스 이름 및 버전 번호를 설정합니다. 아래 예제에서 app-name
은 데이터를 생성하는 애플리케이션의 버전을 지정합니다.
자세한 내용은 태그 사용을 참조하세요.
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
service: "<service name>"
),
trackingConsent: trackingConsent
)
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.service = @"<service name>";
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
site: .eu1,
service: "<service name>"
),
trackingConsent: trackingConsent
)
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.service = @"<service name>";
configuration.site = [DDSite eu1];
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
site: .us3,
service: "<service name>"
),
trackingConsent: trackingConsent
)
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.service = @"<service name>";
configuration.site = [DDSite us3];
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
site: .us5,
service: "<service name>"
),
trackingConsent: trackingConsent
)
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.service = @"<service name>";
configuration.site = [DDSite us5];
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
site: .us1_fed,
service: "<service name>"
),
trackingConsent: trackingConsent
)
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.service = @"<service name>";
configuration.site = [DDSite us1_fed];
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
import DatadogCore
Datadog.initialize(
with: Datadog.Configuration(
clientToken: "<client token>",
env: "<environment>",
site: .ap1,
service: "<service name>"
),
trackingConsent: trackingConsent
)
@import DatadogObjc;
DDConfiguration *configuration = [[DDConfiguration alloc] initWithClientToken:@"<client token>" env:@"<environment>"];
configuration.service = @"<service name>";
configuration.site = [DDSite ap1];
[DDDatadog initializeWithConfiguration:configuration
trackingConsent:trackingConsent];
iOS SDK에서는 SDK 초기화에서 제공된 옵션에 따라 사용자 세션을 자동으로 추적합니다. EU 사용자에 대한 GDPR 준수 및 기타 초기화 매개변수를 SDK 구성에 추가하려면 추적 동의 설정 설명서를 참조하세요.
애플리케이션이 Datadog RUM으로 전송하는 데이터를 제어하려면 RUM iOS SDK 초기화 중에 RUM 세션의 샘플링 속도를 지정합니다. 비율은 0에서 100 사이의 백분율입니다. 기본적으로 sessionSamplingRate
은 100으로 설정되어 있습니다(모든 세션 유지).
예를 들어, 세션 사용량의 50%만 유지하려면 다음과 같이 하세요.
let configuration = RUM.Configuration(
applicationID: "<rum application id>",
sessionSampleRate: 50
)
DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicationID:@"<rum application id>"];
configuration.sessionSampleRate = 50;
GDPR 규정을 준수하려면, RUM iOS 소프트웨어 개발 키트(SDK)는 초기화 시 추적 동의 값이 필요합니다.
trackingConsent
설정은 다음 값 중 하나가 될 수 있습니다:
.pending
: RUM iOS 소프트웨어 개발 키트(SDK)는 데이터 수집 및 일괄 처리 작업을 시작하지만 해당 데이터를 Datadog으로 전송하지는 않습니다. RUM iOS소프트웨어 개발 키트(SDK)는 새로운 추적 동의 값을 기다렸다가 일괄 처리된 데이터로 실행할 작업을 결정합니다..granted
: RUM iOS 소프트웨어 개발 키트(SDK)가 데이터 수집을 시작하고 Datadog으로 해당 데이터를 전송합니다..notGranted
: RUM iOS SDK는 어떠한 데이터도 수집하지 않습니다. Datadog로 로그, 추적 또는 이벤트가 전송되지 않습니다.RUM iOS SDK 초기화 후 추적 동의 값을 변경하려면 Datadog.set(trackingConsent:)
API 호출을 사용합니다. RUM iOS SDK에서 새로운 값에 따라 동작을 변경합니다.
예를 들어 현재 추적 동의가 .pending
인 경우는 다음과 같습니다.
.granted
로 변경하면 RUM iOS 소프트웨어 개발 키트(SDK)는 현재 및 향후 모든 데이터를 Datadog 으로 전송합니다..notGranted
로 변경하면 RUM iOS 소프트웨어 개발 키트(SDK)는 현재 데이터를 모두 삭제하고 향후 데이터를 수집하지 않습니다.URLSessionInstrumentation
활성화Datadog 모니터를 구성하고 등록합니다. 보통 AppDelegate
코드에 한 번만 등록하면 됩니다.
import DatadogRUM
RUM.enable(
with: RUM.Configuration(
applicationID: "<rum application id>",
uiKitViewsPredicate: DefaultUIKitRUMViewsPredicate(),
uiKitActionsPredicate: DefaultUIKitRUMActionsPredicate(),
urlSessionTracking: RUM.Configuration.URLSessionTracking()
)
)
@import DatadogObjc;
DDRUMConfiguration *configuration = [[DDRUMConfiguration alloc] initWithApplicationID:@"<rum application id>"];
configuration.uiKitViewsPredicate = [DDDefaultUIKitRUMViewsPredicate new];
configuration.uiKitActionsPredicate = [DDDefaultUIKitRUMActionsPredicate new];
[configuration setURLSessionTracking:[DDRUMURLSessionTracking new]];
[DDRUM enableWith:configuration];
URLSession
인스턴스에서 리소스로 전송된 요청을 모니터로 보내려면 위임 유형에 대해 URLSessionInstrumentation
을 활성화하고 위임 인스턴스를 URLSession
으로 전달합니다.
URLSessionInstrumentation.enable(
with: .init(
delegateClass: <YourSessionDelegate>.self
)
)
let session = URLSession(
configuration: .default,
delegate: <YourSessionDelegate>(),
delegateQueue: nil
)
DDURLSessionInstrumentationConfiguration *config = [[DDURLSessionInstrumentationConfiguration alloc] initWithDelegateClass:[<YourSessionDelegate> class]];
[DDURLSessionInstrumentation enableWithConfiguration:config];
NSURLSession *session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration defaultSessionConfiguration]
delegate:[[<YourSessionDelegate> alloc] init]
delegateQueue:nil];
Datadog iOS SDK에서는 SwiftUI
애플리케이션의 뷰를 계측할 수 있습니다. 이 계측 기능은 하이브리드 UIKit
및 SwiftUI
애플리케이션에서도 작동합니다.
SwiftUI.View
를 계측하려면 보기 선언에 다음 메서드를 추가하세요.
import SwiftUI
import DatadogRUM
struct FooView: View {
var body: some View {
FooContent {
...
}
.trackRUMView(name: "Foo")
}
}
trackRUMView(name:)
메서드는 SwiftUI
뷰가 화면에서 나타나고 사라질 때 뷰를 시작하고 중지합니다.
Datadog iOS SDK에서 SwiftUI
애플리케이션의 탭 동작을 계측할 수 있습니다. 이 계측 기능은 하이브리드 UIKit
및 SwiftUI
애플리케이션에서도 작동합니다.
SwiftUI.View
에서 탭 작업을 계측하려면 보기 선언에 다음 메서드를 추가하세요.
import SwiftUI
import DatadogRUM
struct BarView: View {
var body: some View {
Button("BarButton") { {
...
}
.trackRUMTapAction(name: "Bar")
}
}
백그라운드 이벤트 추적으로 추가 세션이 발생하여 청구 금액에 영향을 미칠 수 있습니다. 자세한 내용은 Datadog 지원팀에 문의하세요.
애플리케이션이 백그라운드에서 동작할 때(예: 활성 보기를 사용할 수 없음) 크래시 및 네트워크 요청과 같은 이벤트를 추적할 수 있습니다.
Datadog 설정에서 초기화하는 동안 다음 스니펫을 추가합니다:
import DatadogRUM
RUM.enable(
with: RUM.Configuration(
...
trackBackgroundEvents: true
)
)
iOS 크래시 보고 및 Error Tracking에서는 애플리케이션의 모든 문제와 사용 가능한 최신 오류를 표시합니다. RUM 탐색기)에서 JSON을 포함한 오류 세부 정보 및 속성을 확인할 수 있습니다.
iOS SDK는 사용자 디바이스가 오프라인 상태일 때 데이터 가용성을 보장합니다. 네트워크가 약한 지역이나 디바이스 배터리가 부족할 경우 모든 이벤트는 먼저 로컬 디바이스에 일괄적으로 저장됩니다. 네트워크를 사용할 수 있고 배터리가 충분히 충전되는 즉시 iOS SDK 최종 사용자의 경험에 영향을 미치지 않는 방식으로 전송됩니다. 애플리케이션이 포그라운드에 있는 동안 네트워크를 사용할 수 없거나 데이터 업로드에 실패하면 성공적으로 전송될 때까지 배치가 유지됩니다.
즉, 사용자가 오프라인 상태에서 애플리케이션을 열어도 데이터가 손실되지 않습니다.
참고: iOS SDK에서 디스크 공간을 너무 많이 사용하지 않도록 하기 위해 디스크의 데이터가 너무 오래되면 자동으로 삭제됩니다.
iOS SDK와 호환되는 운영 체제 버전 및 플랫폼 목록은 지원되는 버전을 참조하세요.