This plugin is compatible with Grafana version 9.1.1 and higher.
You must provide the Controller URL and Broker URL of the Pinot instance.
Authentication tokens supported. StarTree customers can visit this link to generate a new Pinot token for their cluster.
The builder helps you build a time series query for Pinot. The Table, Time Column, and Metric Column fields are required. The query results are formatted for the time series panel in Grafana.
The code editor allows you to run arbitrary sql and will format the Pinot results as either a table or time series.
The table display mode formats the Pinot response as a table. If you specify the time column alias and format, the time column will be converted into a Grafana time column.
The time series display mode will automatically format the Pinot response for time series panels. You must specify the
time
column alias, time column format, and metric column alias. The $__timeGroup() macro converts the time column
into 1:MILLISECONDS:EPOCH format.
To simplify syntax and to allow for dynamic parts, like date range filters, the query can contain the following macros:
| Name | Description | Example Output |
|---|---|---|
| $__tableName | Replaced by the quoted name of the table. | "my_table" |
| $__timeGroup(dateTimeColumn, *granularity) | Replaced by a expression usable in GROUP BY. The expression uses DATETIMECONVERT to convert the given time column into buckets with of the given granularity. The resulting bucket is the time group in milliseconds. The column must be a date time column. Granularity is optional and defaults to the granularity specified in the panel's query options. If granularity is given, it must be a format usable by DATETIMECONVERT, refer to DATETIMECOVERT | Apache Pinot Docs. | DATETIMECONVERT("ts", '1:SECONDS:TIMESTAMP', '1:MILLISECONDS:EPOCH', '15:SECONDS') |
| $__timeFilter(dateTimeColumn, *granularity) | Replaced by a time range filter for the specified date time column, aligned to the time granularity. The time range matches the format of the column. The specified column must be a date time column. Granularity is optional and defaults to the granularity specified in the panel's query options. If granularity is given, it must be a format usable by DATETIMECONVERT, refer to DATETIMECOVERT | Apache Pinot Docs. | "ts" >= 1721635200 AND "ts" <= 1721656800 |
| $__timeFilterMillis(column, *granularity) | Replaced by a time range filter in milliseconds for the specified column, aligned to the time granularity. The column does not have to be a date time column. Granularity is optional and defaults to the granularity specified in the panel's query options. If granularity is given, it must be a format usable by DATETIMECONVERT, refer to DATETIMECOVERT | Apache Pinot Docs. | "ts" >= 1721635200000 AND "ts" <= 1721656800000 |
| $__timeTo(dateTimeColumn) | Replaced by the exact start time of the currently active time selection. The output matches the format of the specified column. The specified column must be a date time column. | 1721636272 |
| $__timeToMillis | Replaced by the exact start time in milliseconds of the currently active time selection. | 1721636272002 |
| $__timeFrom(dateTimeColumn) | Replaced by the exact end time of the currently active time selection. The output matches the format of the specified column. The specified column must be a date time column. | 1721657872 |
| $__timeFromMillis | Replaced by the exact end time in milliseconds of the currently active time selection. | 1721657872002 |
| $__metricAlias | Replaced by the quoted metric alias specified in the query editor. | "my_metric" |
| $__timeAlias | Replaced by the quoted time alias specified in the query editor. | "my_time" |
| $__granularityMillis(*granularity) | Replaced by the time bucket granularity in milliseconds. Granularity is optional and defaults to the granularity specified in the panel's query options. If granularity is given, it must be a format usable by DATETIMECONVERT, refer to DATETIMECOVERT | Apache Pinot Docs. | 3600000 |
| $__panelMillis | Replaced by the total milliseconds in the panel's time selection. Equal to $__timeToMillis - $__timeFromMillis. |
86400000 |
* Indicates an optional parameter.