The list of filterable fields is the same in both UIs, but the expression power differs.
Legacy UI
The legacy explorer is a facet-driven interface. You build a query by:- Clicking facet values in the left sidebar (Severity, Source, Host, Service). Each click adds an equality filter pill at the top.
- Typing
field:valueinto the search bar, which adds the same kind of pill. - Prefixing with
-to negate (-hostname:web-canary). - Typing bare text with no
field:, which runs acontainssearch against the log message.
AND-ed together. The legacy bar does not parse AND, OR, parentheses, wildcards, ranges, or IN (...); those tokens are treated as plain text.
Examples that work in the legacy UI:
Modern UI
The modern explorer parses the search bar as a full query expression. It supports every feature listed in the table above.Quick reference
Field names and string values are case sensitive. The keywords
AND, OR, NOT, and IN are case insensitive.
Operators
Equality and inequality
field:value matches exact equality. !: and the NOT prefix both negate.
Comparison
Numeric and lexical comparison operators are written next to the colon:Ranges
Use square brackets and theTO keyword for inclusive ranges:
IN / NOT IN
Match any value from a list:Wildcards
* matches zero or more characters; ? matches exactly one character:
Free-text search
Bare terms (nofield:) are matched against the log message body. Quote multi-word phrases:
key:value term whose key isn’t one of the filterable fields is treated as free text too, so a log line written as label: value is searchable as-is. For example, apex_snap_images: apex upload verify matches that text in the message. Quote the whole phrase to match it as one contiguous substring:
Boolean operators and grouping
Combine clauses withAND, OR, and NOT (or !). Use parentheses to control precedence, because without them AND binds tighter than OR.
Filterable fields
These attributes are first-class fields on every log event. They are extracted by the agent or the ingest API and indexed for fast filtering. The same fields work in both the Legacy and Modern UIs.tags, sensitiveData, and sensitiveDataCatagory are arrays, so field:value matches if any element equals value.
Numeric vs string fields
The available comparison operators depend on the field’s type:- String fields support equality, negation,
starts with,ends with,contains, and case-insensitive contains. In the Modern UI these surface as:,!:, and the wildcard syntax (prefix*,*suffix,*substr*). - Numeric fields (
statusCode,urlPort) additionally support:>,:<,:>=,:<=, and:[a TO b]in the Modern UI.
Attribute access (@ prefix)
Logs carry arbitrary structured attributes, such as parsed JSON keys, ECS-standardised fields, and Kubernetes metadata. Use the @ prefix to match against them. This works in both UIs.
@<ecs_or_kube_field>: ECS-standardised fields (@host.name,@trace.id, etc.) and Kubernetes context fields (@kube_namespace,@kube_pod_name, etc.) are routed to the appropriate context column automatically.@message.<path>: match a key inside a JSON message body, including nested keys (see Searching inside JSON messages below).@sensitive_data:<value>: match a sensitive-data marker on the event.@sensitive_data_catagory:<category>: match by sensitive-data category.
@<key> is matched against the event’s parsed attribute map.
Searching inside JSON messages
When a logmessage is itself a JSON object, match against its keys with the @message. prefix. The key is read from the raw message at query time, so it works even for keys that aren’t promoted to first-class attributes.
@message.<path> filter into the search bar.
Examples
Find every 5xx response from the order-api service in the last hour (Modern UI):account key and drop debug noise) (Modern UI):
POST /v1/accounts/:accountId/logs/search as the filterConditions parameter; the Legacy UI sends its facet/pill selections as a filters array of field:value strings. Both formats accept the same set of fields.