Datadogは、インフラストラクチャ監視、APM、ログ記録、デジタルエクスペリエンスを単一のインターフェースに統合するクラウド可観測性プラットフォームです。このプラットフォームは、サーバー、コンテナ、モバイルデバイスからメトリクス、トレース、ログをリアルタイムで収集し、チームが問題の根本原因を迅速に特定できるようにします。Datadog、2025によると、このプラットフォームは世界中の何千もの顧客から毎日2.5ペタバイト以上のデータを処理しています。モバイル開発者向けに、DatadogはAndroidとiOS向けのネイティブSDKを提供し、パフォーマンスメトリクスを自動収集します。
主要ポイント
Datadogは、2010年にOlivier PomelとAlexis Lê-Quôcによって立ち上げられたクラウド監視および可観測性プラットフォームです。このプラットフォームは、インフラストラクチャ、アプリケーション、ユーザーデバイスからメトリクス、ログ、トレースを収集するための統合ダッシュボードを提供します。ポイントソリューションとは異なり、DatadogはAPM、ログ、インフラストラクチャ監視、Synthetic Monitoring、RUMを単一の製品に統合しています。
Datadogのアーキテクチャはエージェント — サーバーにインストールされるかアプリケーションに埋め込まれる軽量プログラム — に基づいています。エージェントはデータを収集し、暗号化された接続を介してDatadogクラウドインフラストラクチャに送信します。モバイルプラットフォーム向けに、DatadogはAndroid(Kotlin、Java)およびiOS(Swift、Objective-C)で動作するネイティブSDKを提供しています。
Gartner Magic Quadrant for APM and Observability(2024)レポートによると、Datadogは統合機能の最も幅広いセットを持つ可観測性カテゴリのリーダーとして認められています。このプラットフォームは、Samsung、Adidas、Pelotonなどの企業が毎日何百万ものデバイスを監視するために使用しています。
モバイルチームにとって、Datadogはバックエンドのパフォーマンスをデバイス上のユーザーエクスペリエンスに結び付ける点で特に価値があります。APIの応答が遅くなり始めた場合、Datadogはサーバーの応答時間だけでなく、特定の電話モデルでの起動時間や画面レンダリングにどのように影響したかも表示します。
Infrastructure Monitoringは、サーバー、コンテナ、KubernetesクラスターのCPU、メモリ、ディスク、ネットワークメトリクスを追跡します。APM(Application Performance Monitoring)は、分散システムを通過する各リクエストのトレースを収集し、各ホップでのレイテンシを表示します。ログ管理は、全文検索とログからメトリクスを作成する機能を備えて、すべてのログ — システムからアプリケーションまで — を集中管理します。Synthetic Monitoringは、さまざまな地理的位置からユーザーシナリオをシミュレートします。Real User Monitoring(RUM)は、モバイルフォンやタブレットを含む実際のユーザーデバイスからデータを収集します。
Datadogは製品ごとの料金設定で従量課金モデルを採用しています:インフラストラクチャホスト、APMホスト、ログ(ギガバイト単位の容量)、RUMセッション、Syntheticテスト。各製品は個別に請求されるため、使用する機能に対してのみ支払うことができます。料金はインフラストラクチャ監視が月額ホストあたり15ドル、RUMセッション10,000件あたり1ドルから始まります。スタートアップは最大10万ドルのクレジットが付与されるDatadog for Startupsプログラムに申請できます。
Application Performance Monitoring(APM)はDatadogにおける分散トレーシングシステムであり、エントリーからすべてのネストされた操作の完了まで各リクエストを追跡します。APMはSpring Boot、Django、Express.js、ASP.NET Coreなどの一般的なフレームワークやライブラリを自動的にインストルメント化します。各リクエストに対して、APMはフレームグラフ — すべてのコードパスにわたる実行時間の視覚的表現 — を構築します。
フレームグラフは、各関数呼び出しまたは外部サービスリクエストにかかった時間を示します。データベースメソッドが期待される200ミリ秒ではなく2秒かかる場合、それはグラフですぐに確認できます。Datadog APMはOpenTelemetry — テレメトリ収集のためのオープンスタンダード — をサポートしており、互換性のある任意のプロバイダーからのインストルメンテーションを接続できます。
Benchling Engineering Blog(2024)によると、Datadog APMへの移行により、トレースとログおよびメトリクスの自動相関を通じて、チームのインシデント診断時間が45分から8分に短縮されました。主要なシナリオはトレース対ログの相関です:単一のトレースIDを使用して、手動検索なしで特定のリクエストに関連するすべてのログを見つけることができます。
サービスマップは、すべてのシステムサービスとその相互接続を自動的に構築したグラフです。各サービスはノードとして表示され、ノード間の接続はサービス間で発生する呼び出しを示します。ノードの色は健全性ステータスを反映します:緑 — 正常動作、黄 — レイテンシ増加、赤 — エラー。サービスマップは、アーキテクチャの事前知識がなくても、どのサービスがボトルネックかを迅速に特定するのに役立ちます。
import datadog.trace.api.Trace;
import io.opentelemetry.api.trace.Span;
public class PaymentService {
@Trace(resourceName = "PaymentService.processPayment")
public PaymentResult processPayment(Order order) {
Span span = Tracer.buildSpan("validate.payment").start();
try {
PaymentGateway gateway = new PaymentGateway();
PaymentResult result = gateway.charge(order.getAmount());
span.setTag("payment.provider", "stripe");
return result;
} finally {
span.close();
}
}
}
Real User Monitoring(RUM)はDatadogにおいて、実際のユーザーデバイスからデータ — 画面読み込み時間、タッチ応答性、メモリ消費、ANR(Application Not Responding)頻度、クラッシュ率 — を収集します。AndroidおよびiOS向けのRUM SDKはアプリケーションに統合され、自動的にセッションを作成し、単一のユーザーインタラクション内のすべてのイベントをグループ化します。
各RUMセッションにはイベントのシーケンスが含まれます:画面を開く、ボタンタップ、ネットワークリクエスト、スクロール。各イベントについて、Datadogはタイムスタンプ、期間、デバイスの技術的特性(モデル、OS、アプリバージョン、接続タイプ)を記録します。これにより、特定のバージョンやデバイスでメトリクスをフィルタリングできます。たとえば、特定のSamsungモデルでAndroid 14の起動時間が増加したことを確認できます。
RUMはAPMと緊密に統合されています:ユーザーセッションが支払い画面でエラーで終了した場合、Datadogは自動的に対応するバックエンドトレースを表示します。これにより、フロントエンドとバックエンドのログを手動で照合するよりも5〜7倍診断が高速化します。モバイルチーム向けに、RUMはウォッチリストレポート — 主要メトリクスの低下に関する週次サマリー — も提供します。
Datadog RUMは、ソースコードの行番号を含む完全なスタックトレース付きでクラッシュレポートを自動収集します。Androidの場合、これはACRAまたはFirebase Crashlyticsとの統合を通じて機能します。iOSの場合 — PLCrashReporterを通じて。各クラッシュはユーザーセッションに関連付けられ、クラッシュに至る一連のアクションを再生できます。RUMはANRも追跡します — Androidアプリケーションにとって最も重要なイベントの1つです。アプリが5秒以上応答しない場合、DatadogはANRを記録し、UIブロッケージ時の完全なスレッドダンプを表示します。
ログ管理はDatadogにおいて、全文検索を備えた単一のリポジトリにすべてのアプリケーションおよびインフラストラクチャログを集中管理します。モバイルログ(分析イベント、APIエラー、テレメトリ)はSDKを介してデバイスから送信され、共通の識別子を使用してサーバーログとマージされます。Datadogはログを自動的に構造化フィールド(レベル(INFO、WARN、ERROR)、サービス、ホスト、タイムスタンプ、メッセージ)に解析します。
ログフィルタリングのために、Datadogはワイルドカード、正規表現、ファセットをサポートする独自のクエリ言語を使用します。ログはパターンでグループ化できます — Datadogは自動的に繰り返しパターンを検出し、それらを単一のクラスターとして表示します。これはモバイルデバイスからの何千ものログを解析する際に特に役立ちます:同一のエラーがグループ化され、開発者は10,000行ではなく、発生頻度とともに10個のクラスターを確認できます。
メトリクスは1秒間隔で収集される数値時系列です。Datadogは3種類のメトリクスをサポートしています:ゲージ(現在値)、カウント(間隔の合計)、レート(変化率)。モバイルアプリケーションの場合、カスタムメトリクスは画面開封数、主要なビジネスシナリオの実行時間、特定の機能の使用頻度を追跡できます。カスタムメトリクスはDogStatsD — Datadog拡張機能を備えたStatsD互換プロトコル — を介して送信されます。
import com.datadog.android.Datadog
import com.datadog.android.log.Logger
class PaymentAnalytics {
private val logger = Logger.Builder()
.setDatadogLogsEnabled(true)
.setNetworkInfoEnabled(true)
.setBundleWithTraceEnabled(true)
.build()
fun trackCheckout(orderId: String, amount: Double) {
logger.info(
"Checkout initiated for order {orderId}",
mapOf(
"order.id" to orderId,
"order.amount" to amount,
"payment.method" to "credit_card"
)
)
}
}
Datadog SDKはAndroidおよびiOS向けに統合モジュールセットを提供します:Core(初期化)、RUM(ユーザーエクスペリエンス監視)、Logs(ログ送信)、Trace(リクエストトレーシング)。Androidの場合はGradleを介してSDKが追加されます。iOSの場合はCocoaPodsまたはSwift Package Managerを介して。インストール後、SDKはクライアントトークン、環境、アプリケーション名を渡してApplication.onCreate(Android)またはAppDelegate(iOS)で初期化されます。
Androidでのネットワークリクエストの自動トレーシングにはOkHttp Interceptorが使用されます。iOSではNSURLProtocolまたはURLSessionデリゲートが使用されます。DatadogはRetrofit、Apollo GraphQL、Ktor、Alamofireなどの人気のあるHTTPクライアントとの統合もサポートしています。Interceptorを接続後、各HTTPリクエストは自動的にRUMセッションとAPMトレースにリンクされ、クライアントからサーバーへの単一チェーンを形成します。
dependencies {
// メインSDKとRUMモジュール
implementation "com.datadoghq:dd-sdk-android-core:2.15.0"
implementation "com.datadoghq:dd-sdk-android-rum:2.15.0"
// 自動トレーシングのためのOkHttp統合
implementation "com.datadoghq:dd-sdk-android-okhttp:2.15.0"
// NDKクラッシュレポート
implementation "com.datadoghq:dd-sdk-android-ndk:2.15.0"
}
import DatadogCore
import DatadogRUM
import DatadogLogs
@main class AppDelegate: UIResponder, UIApplicationDelegate {
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
Datadog.initialize(
with: DatadogConfiguration.builder(
clientToken: "your_client_token",
environment: "production"
).build()
)
RUM.enable(
with: RUMConfiguration(applicationID: "your_rum_app_id")
)
return true
}
}
Datadogはグラフィカルダッシュボードエディタを提供し、メトリクスチャート、ログテーブル、エラー分布ツリーマップ、SLOウィジェットを組み合わせることができます。ダッシュボードはテンプレート変数をサポートしています — たとえば、すべてのサービス用のダッシュボードを作成し、サービス名のドロップダウンを使用してコンテキストを切り替えることができます。各ダッシュボードは公開リンクを介して外部ステークホルダー向けに読み取り専用モードで公開できます。
モニター(アラート)システムは、任意のメトリクスにしきい値条件を設定できます:レイテンシが5分以上500msを超えた場合 — Slack、PagerDuty、またはメールに通知を送信します。Datadogは複合条件をサポートしています:「5xxエラーが1%を超え、かつリクエスト数が1000/分を超える場合、優先度をクリティカルに引き上げる。」モバイルチームにとって、回帰検出モニターは特に有用です — Datadogは現在のメトリクスを過去のベースラインと自動比較し、統計的に有意な低下がある場合に警告します。
Gartner Peer Insights(2024)によると、自動相関を備えたDatadogモニターを使用するチームの平均解決時間(MTTR)は、導入後最初の月に35%減少します。これは、各アラートにトリガー条件だけでなく、関連するダッシュボード、ログ、トレースへのリンクが含まれているためです — 開発者はツールを切り替える必要がありません。
よくある質問
Datadogはメトリクス、ログ、トレース、RUMを1つのインターフェースに統合した統一プラットフォームで際立っています。Grafana + Prometheus(メトリクスのみ)やELK(ログのみ)とは異なり、Datadogは手動で統合を設定することなく、すべてのデータタイプ間で組み込みの相関を提供します。
料金は月額10,000 RUMセッションあたり1ドルから始まります。月間50,000セッションの小規模プロジェクトの場合、費用は約5ドルになります。APMとログは別途請求されます。スタートアップは、初年度に最大10万ドルのクレジットが付与されるDatadog for Startupsプログラムに申請できます。
Datadog SDKはAndroid(API 21+、KotlinおよびJava)、iOS(iOS 13+、SwiftおよびObjective-C)、React Nativeをサポートしています。FlutterおよびXamarin向けのコミュニティ統合も利用可能です。SDKはMaven Central、CocoaPods、Swift Package Managerを介して配布されています。
Datadogはデータスクラビング — ログおよびRUMデータからのPIIの自動削除 — を提供します。マスキングルールを設定して、メール、電話番号、クレジットカードをハッシュまたはアスタリスクに置き換えることができます。データは転送中(TLS 1.3)および保存中(AES-256)に暗号化されます。
はい、APMとRUMなしでLogsモジュールのみを使用できます。この場合、ログ容量に対してのみ支払います。Datadogは各製品を個別に請求するため、1つのモジュールから開始し、再統合なしに必要に応じて他のモジュールを追加できます。
まとめ
ターンキー方式のモバイルアプリケーションを開発します
IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。