URL templating
editURL templating
editThis functionality is in beta and is subject to change. The design and code is less mature than official GA features and is being provided as-is with no warranties. Beta features are not subject to the support SLA of official GA features.
The URL template input uses Handlebars — a simple templating language. Handlebars templates look like regular text with embedded Handlebars expressions.
https://github.com/elastic/kibana/issues?q={{event.value}}
A Handlebars expression is a {{
, some contents, followed by a }}
. When the drilldown is executed, these expressions are replaced by values from the dashboard and interaction context.
In addition to built-in Handlebars helpers, you can use custom helpers.
Refer to Handlebars documentation to learn about advanced use cases.
Custom helper | Use case |
---|---|
json |
Serialize variables in JSON format. Example:
|
rison |
Serialize variables in rison format. Rison is a common format for Kibana apps for storing state in the URL. Example:
|
date |
Format dates. Supports relative dates expressions (for example, "now-15d"). Refer to the moment docs for different formatting options. Example:
|
formatNumber |
Format numbers. Numbers can be formatted to look like currency, percentages, times or numbers with decimal places, thousands, and abbreviations. Refer to the numeral.js for different formatting options. Example:
|
lowercase |
Converts a string to lower case. Example:
|
uppercase |
Converts a string to upper case. Example:
|
trim |
Removes leading and trailing spaces from a string. Example:
|
trimLeft |
Removes leading spaces from a string. Example:
|
trimRight |
Removes trailing spaces from a string. Example:
|
mid |
Extracts a substring from a string by start position and number of characters to extract. Example:
|
left |
Extracts a number of characters from a string (starting from left). Example:
|
right |
Extracts a number of characters from a string (starting from right). Example:
|
concat |
Concatenates two or more strings. Example:
|
replace |
Replaces all substrings within a string. Example:
|
split |
Splits a string using a provided splitter. Example:
|
encodeURIComponent |
Escapes string using built in |
encodeURIQuery |
Escapes string using built in |
URL template variables
editThe URL drilldown template has three sources for variables:
-
Global static variables that don’t change depending on the place where the URL drilldown is used or which user interaction executed the drilldown. For example:
{{kibanaUrl}}
. -
Context variables that change depending on where the drilldown is created and used. These variables are extracted from a context of a panel on a dashboard. For example,
{{context.panel.filters}}
gives access to filters that applied to the current panel. - Event variables that depend on the trigger context. These variables are dynamically extracted from the interaction context when the drilldown is executed.
To ensure that the configured URL drilldown works as expected with your data, you have to save the dashboard and test in the panel. You can access the full list of variables available for the current panel and selected trigger by clicking Add variable in the top-right corner of a URL template input.
Variables reference
editSource | Variable | Description |
---|---|---|
Global |
kibanaUrl |
Kibana base URL. Useful for creating URL drilldowns that navigate within Kibana. |
Context |
context.panel |
Context provided by current dashboard panel. |
context.panel.id |
ID of a panel. |
|
context.panel.title |
Title of a panel. |
|
context.panel.filters |
List of Kibana filters applied to a panel. |
|
context.panel.query.query |
Current query string. |
|
context.panel.query.language |
Current query language. |
|
context.panel.timeRange.from |
Current time picker values. |
|
context.panel.indexPatternId |
Index pattern ids used by a panel. |
|
context.panel.savedObjectId |
ID of saved object behind a panel. |
|
Single click |
event.value |
Value behind clicked data point. |
event.key |
Field name behind clicked data point |
|
event.negate |
Boolean, indicating whether clicked data point resulted in negative filter. |
|
event.points |
Some visualizations have clickable points that emit more than one data point. Use list of data points in case a single value is insufficient. Example:
Note:
|
|
Row click |
event.rowIndex |
Number, representing the row that was clicked, starting from 0. |
event.values |
An array of all cell values for the raw on which the action will execute. |
|
event.keys |
An array of field names for each column. |
|
event.columnNames |
An array of column names. |
|
Range selection |
event.from |
|
event.key |
Aggregation field behind the selected range, if available. |