Documentation
Query History

Query History

The Query History screen in Cube Cloud is a one-stop shop for all performance and diagnostic information about queries issued for a deployment. It is kept up-to-date in real time and provides a quick way to check whether queries are being accelerated with pre-aggregations, how long they took to execute, and if they failed.

Query History is available in Cube Cloud on all tiers (opens in a new tab).

Setting the time range

By default, Cube Cloud shows you a live feed of queries made to the API and connected data sources. You can see query history for the last 72 hours by using the date picker in the top right corner of the page and selecting a time period:

To go back to live mode, click :

Exploring queries

You can switch between queries made to the API and queries made to connected data sources by switching between the API and Database tabs.

All queries and top queries

Clicking All Queries will show all queries in order of recency, while Top Queries will show the queries with the largest total duration (hits * avg duration) in the selected time frame. Both results are limited to 100 unique queries.

Filtering

You can use filters to find queries by various criteria:

  • duration,
  • cache status,
  • whether the query was accelerated with pre-aggregations,
  • whether the query yielded an error,
  • API type.

Inspecting API queries

In the table, all queries are shown in their collapsed view by default. To see an expanded view of a query, click on the  button to the left of any query.

Check the columns to see the details:

  • Query column shows a representation of a query, similar to the REST API query format. In case of the SQL API, if the query is not coercible to a REST API query, raw SQL is shown "as is."
  • API column shows the API type that was used to run the query: REST API via HTTP transport, REST API via WebSockets, GraphQL API, or SQL API.
  • Duration column shows how long the query took.
  • Bolt icon indicates the cache type that was used to fulfill the query.
  • Time column shows the point in time the query was run at.

To drill down on a specific query, click it to see more information.

Query

The Query tab shows the raw JSON query sent to the Cube Cloud deployment.

Errors

If the query failed, the Errors tab will show you the error message and stacktrace:

SQL

The SQL tab shows the generated SQL query sent by Cube to either your data source or Cube Store if the query was accelerated with a pre-aggregation:

You can also run the SQL query directly against your data source using the SQL Runner by clicking ▶️:

Pre-aggregations

The Pre-Aggregations tab shows the pre-aggregation used to accelerate this query, if one was used:

If no pre-aggregations were used for this query, you should see the following screen:

Clicking Accelerate takes you to the Rollup Designer, where you can add a pre-aggregation to accelerate similar queries in the future.

Security context

The Security Context tab shows the security context that was used to process this query:

This is helpful in case multitenancy is configured.

Queue graph

The Queue Graph tab details any activity in the query queue while processing the query. This may include other queries that were being processed or were waiting in the queue by Cube Cloud at the same time as this query:

A large number of queries in the queue may indicate that your deployment is under-provisioned, and you may want to consider scaling up your deployment.

Flame graph

The Flame Graph tab shows a flame graph (opens in a new tab) of a query's execution time across resources in the Cube Cloud deployment. This is extremely useful for diagnosing where time is being spent in a query, and can help identify bottlenecks in your Cube deployment or data source.

Inspecting database queries

Query

For Database requests, the Query tab shows the SQL query compiled by Cube that is executed on the data source:

This can be useful for debugging queries that are failing or taking a long time, as you can copy the query and run it directly against your data source.

Errors

If the query failed, the Errors tab will show you the error message and stacktrace:

Errors here generally indicate a problem with querying the data source. The generated SQL query can be copied from the Query tab and run directly against your data source to debug the issue.

Events

The Events tab shows all data source-related events that occurred while the query is in the query execution queue: