- 重要な情報
- はじめに
- 用語集
- ガイド
- エージェント
- インテグレーション
- OpenTelemetry
- 開発者
- API
- CoScreen
- アプリ内
- Service Management
- インフラストラクチャー
- アプリケーションパフォーマンス
- 継続的インテグレーション
- ログ管理
- セキュリティ
- UX モニタリング
- 管理
Datadog SDKを構成し、アプリを初回実行した後、Xcode のデバッガコンソールを確認します。SDK はいくつかの一貫性チェックを実装しており、構成ミスがある場合は関連する警告を出力します。
アプリケーションの作成時に、verbosityLevel
値を設定することで開発ログを有効にすることができます。設定したレベルと同等以上の優先度を持つ SDK からの関連メッセージが、Xcode のデバッガコンソールに出力されます。
Datadog.verbosityLevel = .debug
すべての処理が完了すると、RUM データのバッチが正しくアップロードされたことを示す以下のような出力が表示されます。
[DATADOG SDK] 🐶 → 17:23:09.849 [DEBUG] ⏳ (rum) Uploading batch...
[DATADOG SDK] 🐶 → 17:23:10.972 [DEBUG] → (rum) accepted, won't be retransmitted: success
推奨: DEBUG
コンフィギュレーションで Datadog.verbosityLevel
を使用し、RELEASE
で設定を解除してください。
DDURLSessionDelegate
を使用するDDURLSessionDelegate
を使ってネットワークリクエストを自動的に追跡したいが、アプリがすでに独自のセッションデリゲートを実装している場合は、inheritance または composition のいずれかのパターンを使って DDURLSessionDelegate
に呼び出しを転送することが可能です。
inheritance を使用する場合は、カスタムデリゲートのベースクラスとして DDURLSessionDelegate
を使用し、オーバーライドするメソッドから super
の実装を必ず呼び出すようにしてください。例:
class YourCustomDelegateURLSessionDelegate: DDURLSessionDelegate {
override func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
super.urlSession(session, task: task, didCompleteWithError: error) // Datadog デリゲートに転送する
/* カスタムロジック */
}
}
composition を使う場合は、Datadog の __URLSessionDelegateProviding
プロトコルを利用して、DDURLSessionDelegate
の内部インスタンスを保持して、ddURLSessionDelegate
に呼び出しを転送します。例:
private class YourCustomDelegateURLSessionDelegate: NSObject, URLSessionTaskDelegate, URLSessionDataDelegate, __URLSessionDelegateProviding {
// MARK: - __URLSessionDelegateProviding conformance
let ddURLSessionDelegate = DDURLSessionDelegate()
// MARK: - __URLSessionDelegateProviding handling
func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) {
d dURLSessionDelegate.urlSession(session, task: task, didFinishCollecting: metrics) // Datadog デリゲートに転送する
/* カスタムロジック */
}
func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
ddURLSessionDelegate.urlSession(session, task: task, didCompleteWithError: error) // Datadog デリゲートに転送する
/* カスタムロジック */
}
func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
ddURLSessionDelegate.urlSession(session, dataTask: dataTask, didReceive: data) // Datadog デリゲートに転送する
/* カスタムロジック */
}
}
注: composition を使用する場合、ddURLSessionDelegate
は __URLSessionDelegateProviding
プロトコルコメント に記載されている必要なすべての呼び出しを受け取る必要があります。デリゲートには以下が必要です。
URLSessionTaskDelegate
を実装し、以下を転送するURLSessionDataDelegate
を実装し、以下を転送するお役に立つドキュメント、リンクや記事: