Tool
observe_logs_search
Search the log lines of the current product, newest first.
Search the log lines of the current product, newest first. Filters are structured; there is no SQL surface. Page with nextCursor.
Behavior
- HTTP
GET /observe/logs/search
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
| q | string | — | Lucene-style expression, ANDed with the structured filters. `key:value` (service, environment, severity, trace_id, span_id, body; any other key matches an attribute), "quoted phrases", AND / OR / NOT in uppercase, parentheses. A bare word matches a whole word in the message body. Example: service:api AND NOT severity:INFO AND "connection refused" |
| to | string | — | Newest timestamp to include, ISO 8601 |
| from | string | — | Oldest timestamp to include, ISO 8601 |
| limit | integer | — | How many lines to return, 1-1000, default 100 |
| cursor | string | — | The nextCursor of the previous page; omit for the first page |
| search | string | — | Match the message body. A single word matches whole words and is indexed; anything longer is a case-insensitive substring match |
| service | string | — | Only lines of this service, e.g. "api" |
| traceId | string | — | Only lines of this trace |
| severityIn | array | — | Only lines whose severity is one of these, e.g. ["ERROR", "FATAL"] |
| environment | string | — | Only lines of this environment, e.g. "production" |
Response
| Field | Type | Always | Description |
|---|---|---|---|
| rows | array | • | The matching log lines, newest first |
| nextCursor | string | • | Pass back as cursor for the next page; null when the last page was reached |
Try it
Search the log lines of the current product, newest first.