Data handling guidelines

Handle search result data and errors in a custom visualization.

Check for empty data

Whenever the search results change, formatData is called. Use this function to check for an empty results data object and throw an error.

Best practice

Show a helpful error message. For example, use the following message.

The search did not return any data.

Avoid

Do not display a blank page or dashboard panel.

Check for invalid data

Handle cases in which the visualization search does not generate data in the correct format or type for rendering. Check for the expected data format or type before rendering the visualization.

Best practice

Show a helpful error message. For example, use the following message.

This visualization requires date or time information. Try using the timechart command in your query.

Avoid

Do not display the visualization when the data type or format is incorrect for rendering.

Handle large data sets

Make sure that the custom visualization handles large result data sets correctly.

Check for results that exceed configured row limits

Check for results that exceed the configured results row limit. Compare the number of rows requested in the visualization.js getInitialDataParams function with the number of results that the search returns.

Check search completion status

In the case of long running searches, paging results are inaccurate before the search completes. As of the latest software version, you can use the data.meta.done boolean flag to check on search completion.

The data.meta.done flag is part of the data object that passes to formatData and updateView in visualization.js. When the flag is true, it indicates that the search is complete.

Example

This visualization code displays a message when the search completes.

...
updateView: function(data) {
    if (!data) {
        return;
    }
    var message = 'My search job is still running';
    if (data.meta.done) {
        message = 'My search job is done';
    }
    this.el.innerHTML = 'Status: ' + message;
}
...

Best practice

Show a helpful warning message with the visualization in case there are more results than the visualization can render. For example, use the following message.

Warning: This visualization renders up to 10,000 data points. Results might be truncated.