添加下钻
Elastic Stack 无服务器
面板具有内置的交互功能,可将过滤器应用于仪表盘数据。例如,当您拖动时间范围或单击饼图切片时,将应用时间范围或饼图切片的过滤器。下钻让您可以在保持交互上下文的同时自定义交互行为。
您可以添加到仪表盘的三种类型的下钻
- 仪表盘 — 将您从一个仪表盘导航到另一个仪表盘。例如,创建一个 Lens 面板的下钻,将您从摘要仪表盘导航到具有特定主机名过滤器的仪表盘。
- URL — 将您从仪表盘导航到外部网站。例如,一个以特定主机名为参数的网站。
- Discover — 将您从 Lens 仪表盘面板导航到 Discover。例如,为 Lens 可视化创建一个下钻,在 Discover 中打开可视化数据以进行进一步探索。
第三方开发人员可以创建下钻。要了解如何编写下钻代码,请参阅 此示例插件。
仪表盘下钻使您可以从另一个仪表盘打开一个仪表盘,并将时间范围、过滤器和其他参数带到新的仪表盘,以便上下文保持不变。仪表盘下钻可帮助您从新的角度继续进行分析。
例如,如果您有一个仪表盘显示多个数据中心中的日志和指标,则可以创建一个下钻,从显示多个数据中心的仪表盘导航到显示单个数据中心或服务器的仪表盘。
使用以下编辑器创建的面板支持仪表盘下钻
- Lens
- Maps
- TSVB
- Vega
- 基于聚合的 面积图、数据表、热图、水平条形图、折线图、饼图、标签云和垂直条形图
- Timelion
使用 示例 Web 日志 数据创建仪表盘并添加面板,然后在 [Logs] Web Traffic 仪表盘上设置搜索和过滤器。
添加 示例 Web 日志 数据。
创建一个新的仪表盘,单击 从库中添加,然后添加以下面板
- [Logs] Response Codes Over Time + Annotations
- [Logs] Visits
将 时间过滤器 设置为 过去 30 天。
保存仪表盘。在 标题 字段中,输入
Detailed logs
。打开 [Logs] Web Traffic 仪表盘,然后设置搜索和过滤器。
搜索:
extension.keyword: ("gz" or "css" or "deb")
过滤器:geo.src: US
创建一个下钻,从 [Logs] Web Traffic 仪表盘打开 Detailed logs 仪表盘。
打开 [Logs] Errors by host 数据表的面板菜单,然后选择 创建下钻。
单击 转到仪表盘。
- 为下钻指定一个名称。例如,
View details
。 - 从 选择目标仪表盘 下拉列表中,选择 Detailed logs。
- 要使用 geo.src 过滤器、KQL 查询和时间过滤器,请选择 使用来自源仪表盘的过滤器和查询 和 使用来自源仪表盘的日期范围。
- 单击 创建下钻。
- 为下钻指定一个名称。例如,
保存仪表盘。
在数据表面板中,将鼠标悬停在一个值上,单击 +,然后选择
View details
。
URL 下钻使您可以从仪表盘导航到外部网站。目标 URL 可以是动态的,具体取决于仪表盘上下文或用户与面板的交互。要创建 URL 下钻,您可以将 变量 添加到 URL 模板,该模板配置下钻的行为。使用可视化编辑器创建的所有面板都支持仪表盘下钻。
某些面板支持多个交互,也称为触发器。您用于创建 变量 的 URL 模板 取决于您选择的触发器。URL 下钻支持以下类型的触发器
- 单击 — 面板中的单个数据点。
- 范围选择 — 面板中的一系列值。
例如,单击 具有 {{event.value}}
,而 范围选择 具有 {{event.from}}
和 {{event.to}}
。
例如,如果您有一个仪表盘显示来自 Github 存储库的数据,则可以创建一个 URL 下钻,从仪表盘面板打开 Github。
添加 示例 Web 日志 数据。
打开 [Logs] Web Traffic 仪表盘。
在工具栏中,单击 编辑。
创建环形图
- 单击 创建可视化。
- 从 图表类型 下拉列表中,选择 环形。
- 从 可用字段 列表中,将 machine.os.keyword 拖到工作区。
- 单击 保存并返回。
打开环形图面板菜单,然后选择 创建下钻。
单击 转到 URL。
为下钻指定一个名称。例如,
Show on Github
。对于 触发器,选择 单击。
要导航到 Kibana 存储库 Github 问题,请在 输入 URL 字段中输入以下内容
https://github.com/elastic/kibana/issues?q=is:issue+is:open+{{event.value}}
Kibana 将
{{event.value}}
替换为与所选饼图切片关联的值。单击 创建下钻。
保存仪表盘。
在环形图面板上,单击任何图表切片,然后选择 Show on Github。
在 Kibana 存储库问题列表中,验证是否显示了切片值。
Discover 下钻使您可以从 Lens 仪表盘面板打开 Discover,并将时间范围、过滤器和其他参数带到 Discover,以便上下文保持不变。
例如,当您为饼图创建 Discover 下钻时,您可以单击饼图中的切片,并且只有该切片的文档才会显示在 Discover 中。
Discover 下钻仅受 Lens 面板支持。要在 Discover 中打开所有 Lens 仪表盘面板数据,请选中 在 Discover 中打开面板数据。
创建一个下钻,从 示例 Web 日志 数据 [Logs] Web Traffic 仪表盘打开 Discover。
- 单击 编辑,打开 [Logs] Bytes distribution 条形垂直堆积图的面板菜单,然后选择 创建下钻。
- 单击 在 Discover 中打开。
- 为下钻指定一个名称。例如,
View bytes distribution in Discover
。 - 要在新选项卡中打开 Discover 下钻,请选择 在新选项卡中打开。
- 单击 创建下钻。
- 保存仪表盘。
- 在 [Logs] Bytes distribution 条形垂直堆积图上,单击一个条形,然后选择 View bytes distribution in Discover。
更改您的下钻,为另一个面板复制您的下钻,并删除下钻。
打开包含下钻的面板菜单,然后单击 管理下钻。
在 管理 选项卡上,使用以下选项
- 要更改下钻,请单击要更改的下钻旁边的 编辑,进行更改,然后单击 保存。
- 要进行复制,请单击要更改的下钻旁边的 复制,输入下钻名称,然后单击 创建下钻。
- 要删除下钻,请选择要删除的下钻,然后单击 删除。
此功能处于 Beta 版,可能会发生更改。其设计和代码不如正式 GA 功能成熟,并且按原样提供,不提供任何保证。Beta 版功能不受正式 GA 功能的支持 SLA 的约束。
URL 模板输入使用 Handlebars — 一种简单的模板语言。Handlebars 模板看起来像包含嵌入式 Handlebars 表达式的常规文本。
https://github.com/elastic/kibana/issues?q={{event.value}}
Handlebars 表达式是一个 {{
,一些内容,然后是 }}
。当执行向下钻取时,这些表达式将被仪表板和交互上下文中的值替换。
除了 内置 Handlebars 助手之外,您还可以使用自定义助手。
请参阅 Handlebars 文档以了解高级用法。
json
以 JSON 格式序列化变量。
示例
{{json event}}
{{json event.key event.value}}
{{json filters=context.panel.filters}}
rison
以 rison 格式序列化变量。Rison 是 Kibana 应用中用于在 URL 中存储状态的常见格式。
示例
{{rison event}}
{{rison event.key event.value}}
{{rison filters=context.panel.filters}}
date
格式化日期。支持相对日期表达式(例如,“now-15d”)。有关不同的格式化选项,请参阅 moment 文档。
示例
{{date event.from “YYYY MM DD”}}
{{date “now-15”}}
formatNumber
格式化数字。数字可以格式化为看起来像货币、百分比、时间或带有小数位、千位分隔符和缩写的数字。有关不同的格式化选项,请参阅 numeral.js。
示例
{{formatNumber event.value "0.0"}}
lowercase
将字符串转换为小写。
示例
{{lowercase event.value}}
uppercase
将字符串转换为大写。
示例
{{uppercase event.value}}
trim
删除字符串开头和结尾的空格。
示例
{{trim event.value}}
trimLeft
删除字符串开头的空格。
示例
{{trimLeft event.value}}
trimRight
删除字符串结尾的空格。
示例
{{trimRight event.value}}
mid
从字符串中提取子字符串,通过起始位置和要提取的字符数。
示例
{{mid event.value 3 5}}
- 从第三个字符开始提取五个字符。
left
从字符串中提取一定数量的字符(从左侧开始)。
示例
{{left event.value 3}}
right
从字符串中提取一定数量的字符(从右侧开始)。
示例
{{right event.value 3}}
concat
连接两个或多个字符串。
示例
{{concat event.value "," event.key}}
replace
替换字符串中的所有子字符串。
示例
{{replace event.value "stringToReplace" "stringToReplaceWith"}}
split
使用提供的分隔符分割字符串。
示例
{{split event.value ","}}
encodeURIComponent
使用内置的 encodeURIComponent
函数转义字符串。
encodeURIQuery
使用内置的 encodeURIComponent
函数转义字符串,同时保持 "@"、":"、"$"、"、" 和 ";" 字符不变。
URL 向下钻取模板有三个变量来源
- 全局 静态变量,它们不会随着使用 URL 向下钻取的位置或哪个用户交互执行了向下钻取而改变。例如:
{{kibanaUrl}}
。 - 上下文 变量,这些变量随着创建和使用向下钻取的位置而改变。这些变量是从仪表板上的面板上下文中提取的。 例如,
{{context.panel.filters}}
允许访问应用于当前面板的过滤器。 - 事件 变量,这些变量取决于触发器上下文。 这些变量是在执行向下钻取时从交互上下文中动态提取的。
为了确保配置的 URL 向下钻取能够按预期使用您的数据,您必须保存仪表板并在面板中进行测试。 您可以通过单击 URL 模板输入右上角的添加变量来访问当前面板和所选触发器可用的变量的完整列表。
来源 | 变量 | 描述 |
---|---|---|
全局 | kibanaUrl | Kibana 基本 URL。 用于创建在 Kibana 中导航的 URL 向下钻取。 |
上下文 | context.panel | 当前仪表板面板提供的上下文。 |
context.panel.id | 面板的 ID。 | |
context.panel.title | 面板的标题。 | |
context.panel.filters | 应用于面板的 Kibana 过滤器列表。 提示:与 rison 助手结合使用,以便在 Kibana 内部导航时传递当前过滤器。 |
|
context.panel.query.query | 当前查询字符串。 | |
context.panel.query.language | 当前查询语言。 | |
context.panel.timeRange.from context.panel.timeRange.to |
当前时间选择器值。 提示:与 date 助手结合使用以格式化日期。 |
|
context.panel.indexPatternId context.panel.indexPatternIds |
面板使用的数据视图 ID。 | |
context.panel.savedObjectId | 面板后面的已保存对象的 ID。 | |
单击 | event.value | 单击数据点后面的值。 |
event.key | 单击数据点后面的字段名称 | |
event.negate | 布尔值,指示单击的数据点是否导致负过滤器。 | |
event.points | 某些可视化效果具有可单击的点,这些点会发出多个数据点。 如果单个值不足,请使用数据点列表。 示例 {{json event.points}} {{event.points.[0].key}} {{event.points.[0].value}}``{{#each event.points}}key=value&{{/each}} 注意 {{event.value}} 是 {{event.points.[0].value}} 的简写{{event.key}} 是 {{event.points.[0].key}} 的简写 |
|
行单击 | event.rowIndex | 数字,表示单击的行,从 0 开始。 |
event.values | 将在其上执行操作的行的所有单元格值的数组。 要访问列值,请使用 {{event.values.[x]}} ,其中 x 表示列号。 |
|
event.keys | 每列的字段名称数组。 | |
event.columnNames | 列名称数组。 | |
范围选择 | event.from event.to |
所选范围的 from 和 to 值,以数字形式表示。提示:考虑使用 date 助手进行日期格式化。 |
event.key | 如果可用,则为所选范围后面的聚合字段。 |