Visualize Operator
Overview
The visualize
operator is in open beta starting with Panther version 1.110, and is available to all customers. Please take special note of the Limitations listed below, and share any bug reports and feature requests with your Panther support team.
Use the visualize
operator to generate a bar or line chart of your query results.
You can use visualize
with any results set that has two fields where at least one one field is numeric. It's particularly useful to use visualize
with summarize
and aggregations like agg.count()
. The visualize
operator must be used last in a PantherFlow query, and does not filter or transform data.
By default, visualize
displays a vertical bar chart, but you can use line
or bar
to set the type. Further customize the chart using the supported annotations.
Limitations
The wrong column may be selected when declaring a
series=
but not anxcolumn=
, or vice versa (xcolumn=
but not aseries
)To move a vertical bar chart horizontally (left/right), you must scroll vertically (up/down)
A maximum of 999 data points can be visualized
Data is graphed in sorted order. For timeseries data, you must sort the data by time if you want it to appear in time order in the graph
In bar charts, columns are ordered alphabetically and cannot be rearranged
Timeseries data renders incorrectly when used as an axis (
xcolumn
orycolumn
) value in abar
chart. Use aline
chart with timeseries data instead.
Supported chart types
bar
(default)line
In order to create a
line
chart, the field represented on the x-axis must have a date/time data type.
Supported annotations
Use annotations with visualize
to customize the resulting chart. Separate multiple annotations with a comma.
In order to use any of the annotations below, your query must also explicitly set a chart type (bar
or line
).
title
The title of the chart. If not provided, the default is <name of x-axis field> vs <name of y-axis field>
. If value contains spaces, it must be enclosed in quotation marks.
<String>
title="My Chart"
orientation
The direction of the chart. Applicable only to bar
charts.
vertical
(default)
horizontal
orientation=horizontal
legend
The existence and placement of a chart legend.
hidden
(default)
visible
(defaults to top
)
top
bottom
left
right
legend=right
xcolumn
Name of field that should be represented on the x-axis. (This is not the label of the x-axis.) If a timeseries field, must be used with a line
chart.
<String>
xcolumn=mean
ycolumn
Name of field that should be represented on the y-axis. (This is not the label of the y-axis.) If a timeseries field, must be used with a line
chart.
<String>
ycolumn=detectionId
series
Name of field that should be used to group data.
<String>
series=email
Examples
Example data
Default bar chart
Bar chart with legend
, orientation
, and title
set
legend
, orientation
, and title
setBar chart with agg.count()
agg.count()
This example uses sample data that has more than two fields (like most real-world data sets). The query uses summarize events = agg.count() by actionName
to generate a results set with two fields (actionName
and events
) before visualize
is used. Learn more about aggregations on PantherFlow Functions and summarize
on Summarize Operator.
This query has unique example data:
Example data
Line chart with title
set
title
setThis query has unique example data:
Example data
Bar chart measuring mean time to detection
The query below displays the mean time between when an event is ingested and when a detection is triggered, for the 15 slowest rules by detectionId
.
Unlike the other example queries (which use a datatable
to provide mock data), the query below pulls from live data in your panther_signals
database.
Bar chart using series
series
This query has unique example data:
Example data:
Last updated