メインコンテンツまでスキップ

Datadog Log Ingestion API を使用したイベントの取り込み

Datadogのログ取り込みAPIを使用して、JSON形式のログイベントをDatadog Log Managementに直接送信できます。クラウドアプリ、マイクロサービス、あるいはテレメトリデータを出力するあらゆるシステムからのログを取り込むことができます。ログを取り込むと、数秒以内にLog Explorerで利用可能になります。 Log Pipelines を使用して、ログの処理、ルーティング、アーカイブを行うことができます。

このエンドポイントは、構造化および半構造化のJSONペイロードの、高スループットかつリアルタイムでの取り込みに対応しています。

このAPIでサポートされている操作​

  • Datadogエージェントをインストールすることなく、クラウドアプリから直接ログを送信できます。
  • Grokパーサー、リマッパー、ルックアッププロセッサなどのパイプラインプロセッサを、受信データに適用します。
  • コンテンツに基づいて、ログをインデックス、アーカイブ、またはアラート送信先に振り分けます。
  • このエンドポイントをサンプリングおよびフィルタリングルールと組み合わせることで、インデックス作成のコストを削減できます。
注記

認証情報の管理に関する詳細については、Datadog API およびアプリケーションキー を参照してください。

始める前に​

以下のものが揃っていることを確認してください:

  • ログ取り込み権限を持つDatadog API キー。これは、組織設定 → API キーで確認できます。

  • Datadogのサイトアドレス。このアドレスはリージョンによって異なります:

    地域サイトのURL
    米国(東部)datadoghq.com
    US3(西)us3.datadoghq.com
    US5(中央)us5.datadoghq.com
    EU(欧州)datadoghq.eu
    AP1(日本)ap1.datadoghq.com
    AP2(オーストラリア)ap2.datadoghq.com
  • curl または Postman がインストールされていること。

  • JSON形式のログペイロード。

パイプラインの概要​

Datadogのログ取り込みパイプライン

取り込みエンドポイント​

POST https://http-intake.logs.{dd_site}/api/v2/logs

{dd_site} を、お住まいの地域のサイトアドレス(例:datadoghq.com や ap2.datadoghq.com)に置き換えてください。

リクエストヘッダー​

ヘッダー値必須説明
DD-API-KEY<your_api_key>はいお客様の Datadog API キー
Content-Typeapplication/jsonはいペイロードの形式
Content-Encodinggzipオプション圧縮ペイロード形式(大容量のバッチ処理に推奨)

リクエスト本文​

リクエスト本文は、1つ以上のログオブジェクトからなるJSON配列です。各ログオブジェクトは、以下のフィールドをサポートしています:

フィールド種類必須説明
messagestringはいログメッセージの本文
ddsourcestringおすすめログの発生元となった技術(例:python や nginx など)。
ddtagsstringオプションカンマ区切りのタグ。例:env:prod,team:payments。
hostnamestringオプションログを生成したホストの名前
servicestringおすすめアプリまたはサービスの名称
注記

message フィールドは必ず含める必要があります。その他のフィールドはすべて任意ですが、Datadog ではこれらの使用を推奨しています。Datadog では、フィルタリング、ファセット、パイプラインのマッチングに service、ddsource、および ddtags を使用します。

ペイロードの例​

Payload: single log
[
{
"message": "Transaction failed: Gateway timeout",
"ddsource": "payment-gateway",
"ddtags": "env:prod,region:us-east-1",
"hostname": "payments-host-01",
"service": "payment-gateway",
"timestamp": "2025-11-15T08:30:00Z",
"transaction_id": "txn_998877",
"customer_id": "cus_554433",
"level": "ERROR"
}
]
注記

timestamp は、国際標準化機構(ISO)8601 規格に基づく協定世界時(UTC)形式で指定する必要があります。Datadog では、Log Explorer でのタイムラインの同期にこの形式を使用しています。Datadog では、タイムスタンプが指定されていないログについては、取り込み時刻に基づいてインデックスを作成します。

cURL の例​

cURL
export DD_API_KEY="your_datadog_api_key_here"
export DD_SITE="datadoghq.com"

curl -X POST "https://http-intake.logs.$DD_SITE/api/v2/logs" \
-H "DD-API-KEY: $DD_API_KEY" \
-H "Content-Type: application/json" \
-d '[
{
"message": "Transaction failed: Gateway timeout",
"ddsource": "payment-gateway",
"ddtags": "env:prod,region:us-east-1",
"hostname": "payments-host-01",
"service": "payment-gateway",
"level": "ERROR",
"transaction_id": "txn_998877"
}
]'

応答コード​

CodeStatus説明
202Acceptedペイロードが受理され、インデックス作成のためにキューに入れられました
400Bad request書式設定または検証エラー
401 / 403Unauthorized / ForbiddenAPIキーが見つかりません(401)または、キーが無効、あるいは権限が不十分です(403)
413Payload too large圧縮前のペイロードが 5 MB を超えています(gzip 圧縮時は 50 MB)。
429Too many requests摂取率の上限を超えました

202件受理​

「202 Accepted」というレスポンスは、Datadogがペイロードを受信したことを示します。このレスポンスの本文は空です。ログイベントは、数秒以内にLog Explorerに表示されます。

Response: 202 Accepted
HTTP/1.1 202 Accepted

400 不正なリクエスト​

Datadogは、ペイロードに書式や検証のエラーがある場合、以下のコードを返します:

  • JSONの構文が正しくない、またはエスケープされていない文字が含まれている。
  • 必須の message フィールドが指定されていません。
  • 圧縮されていないペイロードが5 MBの制限を超えています。
Response: 400 Bad Request
{
"errors": ["Invalid JSON"]
}

401 アクセス権限なし、403 アクセス禁止​

DD-API-KEY ヘッダーが欠落している場合、Datadog は 401 Unauthorized を返します。API キーが無効であるか、ログ取り込みの権限がない場合、Datadog は 403 Forbidden を返します:

Response: 403 Forbidden
{
"errors": ["Forbidden"]
}

413 ペイロードが大きすぎます​

Datadog は、リクエストのペイロードが最大サイズ制限(非圧縮 JSON の場合は 5 MB、gzip 圧縮データの場合は 50 MB)を超えた場合に、このコードを返します。

Response: 413 Payload Too Large
{
"errors": ["Payload too large"]
}

429 リクエストが多すぎます​

クライアントのリクエストレート制限を超過しました。リクエストの頻度を減らすか、ログオブジェクトを配列ペイロードにまとめて送信してください。

複数のログイベントのバッチ処理​

配列を渡すことで、1回のリクエストで最大1,000件のログエントリを送信できます。Datadogでは、高スループットのサービスにおいてこのアプローチを推奨しています。

Payload: batched logs
[
{
"message": "User login succeeded",
"service": "auth-service",
"ddsource": "python",
"ddtags": "env:prod",
"level": "INFO"
},
{
"message": "Transaction failed: Gateway timeout",
"service": "payment-gateway",
"ddsource": "python",
"ddtags": "env:prod",
"level": "ERROR",
"transaction_id": "txn_998877"
}
]

制限:

  • 最大ペイロードサイズ:非圧縮のリクエストあたり 5 MB(gzip で圧縮した場合は 50 MB)
  • 1つのログファイルの最大サイズ:1 MB
  • 配列の最大要素数:1,000 個のログオブジェクト

一般的な利用例​

  • Datadogエージェントをデプロイせずに、マイクロサービスからのログを取り込む。
  • Amazon Web Services (AWS) Lambda や Google Cloud Run などのサーバーレス関数から、構造化された JSON イベントを送信します。
  • IoTデバイスやエッジサービスからのテレメトリデータのストリーミング。
  • Log Pipelines を通じて、エンリッチされたイベントをセキュリティ情報およびイベント管理(SIEM)、S3、またはアラート送信先へルーティングする。
  • 継続的インテグレーションおよび継続的デリバリー(CI/CD)パイプライン、あるいはデプロイスクリプトからのログを送信する。

トラブルシューティング​

問題点相当な理由解決策
401 UnauthorizedAPIキーが間違っているか、指定されていません組織設定 → API キー で DD_API_KEY を確認してください
400 Bad RequestJSONの形式が不正です送信する前に、jq . payload.json で検証してください
エクスプローラーに表示されないログログを除外するパイプラインフィルターフィルタをクリアする;インデックスのルーティングルールを確認する
タイムスタンプの順序が乱れているUTC形式またはISO 8601形式以外"2025-11-15T08:30:00Z" という形式を使用してください。
429 Too Many Requestsレート制限を超えましたBatch log objects into a single array payload

今後の手順​