XQL Query best practices
Apply XQL query best practices in Cortex AgentiX.
Cortex AgentiX includes built-in mechanisms for mitigating long-running queries, such as default limits for the maximum number of allowed issues, and for the maximum number of returned rows. Only specified mapped datasets are searched when querying by the Cortex Data Model (XDM) to use system resources and time more efficiently. The following suggestions can help you to streamline your queries:
Add a smaller limit to queries by using a
limitstage.To help reduce the Cortex Query Language (XQL) response time, the default results for an XDM query or an XQL dataset query is limited to 1000, when no limit is explicitly stated in the query. This applies to basic queries with no stages except the
fieldsstage. This default limit does not apply to widgets, Correlation Rules, public APIs, saved queries, or scheduled queries, where the limit is a maximum of 1,000,000 results. Queries based on legacy templates are limited to 10,000 results. Adding a smaller limit can greatly reduce the response time.Example 90.
datamodel dataset = microsoft_windows_raw | fields *host* | limit 100Use a small time frame for queries by specifying the specific date and time in the Timeframe, such as selecting Relative time and defining Last 30 Minutes, instead of picking the nearest larger option available or defining an extended time period.
Use filters that exclude data, along with other possible filters.
Select the specific fields that you would like to see in the query results.
Expected results when querying fields
The following are returned when querying fields:
If specific fields are stated in the
fieldsstage, those exact fields will be returned.If no fields are stated in the query, the
xdm_corefieldset will be returned.Unmapped fields are treated as NULL. An unmapped field is an
xdmfield that hasn't been mapped from the relevant datasets using a Data Model Rule.By default, the
_timesystem field will be added to all data model queries. Yet, the_timesystem field will not be added to queries that contain thecompstage.For dataset queries, all current system fields will be returned, even if they are not stated in the query.
For UNION between XDM and dataset, each part of the UNION will return its own fields.
Each new column in the result set created by the
alterstage will be added as the last column. You can specify a different column order by modifying the field order in thefieldsstage of the query.Each new column in the result set created by the
compstage will be added as the last column. Other fields that are not in thegroup by / calculatedcolumn will be removed from the result set, including the core fields and_timesystem field.When no limit is explicitly stated in a
datamodelquery, a maximum of 1000 results are returned (default). When this limit is applied to results using thelimitstage, it will be indicated in the user interface.
Last updated
Was this helpful?
