Start by creating a query to retrieve your logs for a given context, for example, for a given query in a set timeframe:
curl -X POST https://api.datadoghq.com/api/v1/logs-queries/list \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \
-d '{
"limit": 50,
"query": "*",
"sort": "desc",
"time": {
"from": "2019-08-06T00:00:00Z",
"to": "2019-08-07T00:00:00Z"
}
}'
Example result:
{
"logs": ["(...)"],
"nextLogId": "AAAAAAAAAAAAAAAABBBBBBBBBBBBBBCCCCCCCCCCDDDDDDDDDD",
"status": "done",
"requestId": "cDdWYB0tAm1TYHFsQVZ2R05QWm9nQXx5cFM4aExkLVFPNlhZS21RTGxTUGZ3"
}
The logs
parameter is an array of Log objects and at maximum it contains as many logs as defined with the limit
parameter in your query. This parameter equals 50
by default, but can be set up to 1000
. If the amount of logs that matched your query is greater than the limit
, then the nextLogId
parameter is not equal to null
.
When the nextLogId
parameters returns something other than null
, it indicates that the query you entered matched more logs than just the one returned.
To retrieve the next page of logs, re-send your query, but this time with the startAt
parameter that takes the nextLogId
value from the previous call:
curl -X POST https://api.datadoghq.com/api/v1/logs-queries/list \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \
-d '{
"limit": 1000,
"query": "*",
"startAt": "AAAAAAAAAAAAAAAABBBBBBBBBBBBBBCCCCCCCCCCDDDDDDDDDD",
"sort": "desc",
"time": {
"from": "2019-08-06T00:00:00Z",
"to": "2019-08-07T00:00:00Z"
}
}'
Which returns these results:
{
"logs": ["(...)"],
"nextLogId": "EEEEEEEEEEEEEEEEFFFFFFFFFFFFFFGGGGGGGGGGHHHHHHHHHH",
"status": "done",
"requestId": "YVhETk5jQy1TQkDFSFjqU3fhQMh5QXx6M2pSUlA1ODhXNk5PT2NOSUVndThR"
}
To see every page of your logs, continue to resend your query where the startAt
parameter takes the nextLogId
value from the previous call. When the nextLogId
returns null
, you have returned all pages of logs associated with your query.
Notes: For better control over pagination results, use an absolute time
parameter - don’t use thenow
keyword.
Start by creating a query to retrieve your logs for a given context, for example, for a given query in a set timeframe:
curl -X POST https://api.datadoghq.com/api/v2/logs/events/search \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \
-d '{
"filter":
{
"from": "2019-08-06T00:00:00Z",
"to": "2019-08-07T00:00:00Z",
"query": "@datacenter:us @role:db"
},
"page":
{
"limit":50
}
}'
Example result:
{
"meta": {
"page": {
"after": "eyJhZnRlciI6IkFRQUFBWE4tV0ZVbzZFRGRnZ0FBQUFCQldFNHRWMFpwVG1jelgwRTJURjlaVjBGQlFRIn0"
}
},
"data": [
{
"attributes": {"..."},
"id": "AQAAAXN-WFUo6EDdggAAAABBWE4tV0ZpTmczX0E2TF9ZV0FBQQ",
"type": "log"
}
],
"links": {
"next": "https://api.datadoghq.com/api/v2/logs/events?filter%5Bto%5D=1595552587369&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWE4tV0ZVbzZFRGRnZ0FBQUFCQldFNHRWMFpwVG1jelgwRTJURjlaVjBGQlFRIn0&page%5Blimit%5D=1&filter%5Bfrom%5D=1595552579929"
}
}
The data
parameter is an array of Log objects and at maximum it contains as many logs as defined with the limit
parameter in your query. This parameter equals 50
by default, but can be set up to 1000
.
To see next page of your logs, continue to resend your query but include the cursor
parameter where it takes the after
value from the previous call. When you see data
returns null
, you have returned all pages of logs associated with your query.
curl -X POST https://api.datadoghq.com/api/v2/logs/events/search \
-H "Content-Type: application/json" \
-H "DD-API-KEY: ${DD_CLIENT_API_KEY}" \
-H "DD-APPLICATION-KEY: ${DD_CLIENT_APP_KEY}" \
-d '{
"filter":
{
"from": "2019-08-06T00:00:00Z",
"to": "2019-08-07T00:00:00Z",
"query": "@datacenter:us @role:db"
},
"page":
{
"cursor": "eyJhZnRlciI6IkFRQUFBWE4tV0ZVbzZFRGRnZ0FBQUFCQldFNHRWMFpwVG1jelgwRTJURjlaVjBGQlFRIn0",
"limit": 50
}
}'
Which returns these results:
{
"meta": {
"page": {
"after": "eyJhZnRlciI6IkFRQUFBWE4tV0VsdzZFRGRnUUFBQUFCQldFNHRWMFV5UzJjelgwRTJURjlaY1d0QlFRIn0"
}
},
"data": [
{
"attributes": {"..."},
"id": "AQAAAXN-WElw6EDdgQAAAABBWE4tV0UyS2czX0E2TF9ZcWtBQQ",
"type": "log"
}
],
"links": {
"next": "https://api.datadoghq.com/api/v2/logs/events?filter%5Bto%5D=1595552587369&page%5Bcursor%5D=eyJhZnRlciI6IkFRQUFBWE4tV0VsdzZFRGRnUUFBQUFCQldFNHRWMFV5UzJjelgwRTJURjlaY1d0QlFRIn0&page%5Blimit%5D=10&filter%5Bfrom%5D=1595552579929"
}
}