管理数据视图

编辑

要自定义数据视图中的数据字段,您可以向现有文档添加运行时字段,添加脚本字段以动态计算数据,并更改 Kibana 显示数据字段的方式。

使用运行时字段浏览您的数据

编辑

运行时字段是在您摄取数据后添加到文档的字段,并在查询时进行评估。使用运行时字段,您可以拥有更小的索引和更快的摄取时间,从而可以使用更少的资源并降低运营成本。您可以在使用数据视图的任何地方使用运行时字段,例如,您可以在Discover中浏览运行时字段,并为仪表板创建带有运行时字段的可视化。

使用运行时字段,您可以

  • 在不修改底层架构的情况下,为特定用例定义字段。
  • 覆盖从索引字段返回的值。
  • 在不了解结构的情况下开始处理您的数据。
  • 在不重新索引数据的情况下向现有文档添加字段。

运行时字段可能会影响 Kibana 的性能。当您运行查询时,Elasticsearch 会首先使用您索引的字段来缩短响应时间。索引您常用的搜索和筛选字段,例如 timestamp,然后使用运行时字段来限制 Elasticsearch 用于计算值的字段数量。

有关如何在 Elasticsearch 中使用运行时字段的详细信息,请参阅运行时字段

添加运行时字段

编辑

要向数据视图添加运行时字段,请打开要更改的数据视图,然后使用Painless 脚本语言发出单个值来定义字段值。您还可以在DiscoverLens中添加运行时字段。

  1. 使用导航菜单或全局搜索字段转到数据视图管理页面。
  2. 选择要添加运行时字段的数据视图,然后单击添加字段
  3. 输入字段名称,然后选择类型
  4. 选择设置自定义标签,然后输入要在使用数据视图的位置(例如Discover)中显示的标签。
  5. 选择设置值,然后定义脚本。脚本必须与类型匹配,否则数据视图在任何使用它的地方都会失败。
  6. 为了帮助您定义脚本,请使用预览

    • 要查看其他可用字段,请使用文档 ID箭头。
    • 要筛选字段列表,请在筛选字段中输入关键字。
    • 要将常用字段固定到列表顶部,请将鼠标悬停在字段上,然后单击将字段固定到列表顶部的图标
  7. 单击创建字段

运行时字段示例

编辑

使用示例 Web 日志数据,亲自尝试运行时字段示例。

返回关键字值

编辑

返回 Hello World!

emit("Hello World!");

Runtime field with keyword type

对单个字段执行计算

编辑

从字节计算千字节

emit(doc['bytes'].value / 1024)

返回子字符串

编辑

返回 URL 中最后一个斜杠后出现的字符串

def path = doc["url.keyword"].value;
if (path != null) {
    int lastSlashIndex = path.lastIndexOf('/');
    if (lastSlashIndex > 0) {
        emit(path.substring(lastSlashIndex+1));
    return;
    }
}
emit("");

使用复合运行时字段返回多个字段

编辑

当选择 Composite 类型时,单个运行时字段也可以生成多个子字段。脚本编辑器提供可为每个子字段自定义的默认类型。

返回 keyworddouble 类型子字段。请注意,emit 的第一个参数是子字段的名称。

emit('subfield_a', 'Hello');
emit('subfield_b', 42);

Runtime field with composite type

用空白替换 Null

编辑

None 替换 null

def source = doc['referer'].value;
if (source != null) {
	emit(source);
	return;
}
else {
	emit("None");
}

指定操作系统条件

def source = doc['machine.os.keyword'].value;
if (source != "") {
	emit(source);
}
else {
	emit("None");
}

管理运行时字段

编辑

编辑运行时字段的设置,或从数据视图中删除运行时字段。

  1. 使用导航菜单或全局搜索字段转到数据视图管理页面。
  2. 选择包含要管理的运行时字段的数据视图,然后打开运行时字段编辑选项或删除运行时字段。

向数据视图添加脚本字段

编辑

在 7.13 中已弃用。

请使用运行时字段代替脚本字段。运行时字段支持 Painless 脚本,并提供更大的灵活性。

脚本字段从 Elasticsearch 索引中的数据动态计算数据。这些数据在“Discover”选项卡上显示为文档数据的一部分,您可以在可视化中使用脚本字段。您可以使用Kibana 查询语言查询脚本字段,并可以使用筛选栏筛选它们。脚本字段值在查询时计算,因此它们不会被索引,并且无法使用 Kibana 默认查询语言进行搜索。

使用脚本字段动态计算数据可能会非常消耗资源,并且会对 Kibana 的性能产生直接影响。请记住,没有对脚本字段进行内置验证。如果您的脚本存在错误,那么每当您尝试查看动态生成的数据时,都会收到异常。

在 Kibana 中定义脚本字段时,您可以选择Lucene 表达式Painless 脚本语言。

您可以在表达式中引用任何单个值数字字段,例如

doc['field_name'].value

有关脚本字段和更多示例的详细信息,请参阅在 Kibana 脚本字段中使用 Painless

创建脚本字段

编辑

创建脚本字段并将其添加到您的数据视图。

  1. 使用导航菜单或全局搜索字段转到数据视图管理页面。
  2. 选择要向其添加脚本字段的数据视图。
  3. 选择脚本字段选项卡,然后单击添加脚本字段
  4. 输入脚本字段的名称,然后输入要用于从索引数据动态计算值的脚本
  5. 单击创建字段

有关 Elasticsearch 中脚本字段的详细信息,请参阅脚本

管理脚本字段

编辑
  1. 使用导航菜单或全局搜索字段转到数据视图管理页面。
  2. 选择包含要管理的脚本字段的数据视图。
  3. 选择脚本字段选项卡,然后打开脚本字段编辑选项或删除脚本字段。

脚本字段不支持内置验证。当您的脚本包含错误时,在查看动态生成的数据时会收到异常。

格式化数据字段

编辑

Kibana 使用与 Elasticsearch 相同的字段类型,但是,某些 Elasticsearch 字段类型在 Kibana 中不受支持。要自定义 Kibana 显示数据字段的方式,请使用格式化选项。

  1. 使用导航菜单或全局搜索字段转到数据视图管理页面。
  2. 单击包含要更改的字段的数据视图。
  3. 找到该字段,然后打开编辑选项(数据字段编辑图标)。
  4. 选择设置自定义标签,然后输入该字段的自定义标签
  5. 选择设置格式,然后输入该字段的格式

对于数值字段,默认字段格式化程序基于 meta.unit 字段。单位与时间单位、百分比或字节相关联。百分比的惯例是使用值 1 表示 100%。

字符串字段格式化程序

编辑

字符串字段支持 字符串Url格式化程序。

字符串字段格式化程序使您能够对字段应用转换。

支持的转换包括

  • 转换为小写
  • 转换为大写
  • 转换为标题大小写
  • 应用短点转换,该转换将 . 字符之前的内容替换为内容的首字符。例如

原始

变为

com.organizations.project.ClassName

c.o.p.ClassName

  • Base64 解码
  • URL 参数解码

您可以为 Url 字段格式化程序指定以下类型

  • 链接 — 将字段内容转换为 URL。您可以指定图像的宽度和高度,同时保持宽高比。当图像小于指定的参数时,图像无法放大。
  • 图像 — 指定图像目录。
  • 音频 — 指定音频目录。

要自定义 URL 字段格式,请使用模板。URL 模板使您能够向部分 URL 添加值。要将字段的内容添加到固定的 URL,请使用 {{value}} 字符串。

例如,当

  • 字段包含用户 ID
  • 字段使用 Url 字段格式化程序
  • URI 模板为 http://company.net/profiles?user_id={­{value}­}

生成的 URL 会将 {{value}} 替换为该字段中的用户 ID。

{{value}} 模板字符串会对字段的内容进行 URL 编码。当编码到 URL 中的字段包含非 ASCII 字符时,这些字符将替换为 % 字符和相应的十六进制代码。例如,字段内容 users/admin 会导致 URL 模板添加 users%2Fadmin

当格式化器类型为 Image 时,{{value}} 模板字符串指定指定 URI 上的图像名称。

当格式化器类型为 Audio 时,{{value}} 模板字符串指定指定 URI 上的音频文件名。

要将未转义的值直接传递到 URL,请使用 {{rawValue}} 字符串。

标签模板 使您可以指定一个文本字符串,该字符串会显示而不是原始 URL。您可以在标签模板中正常使用 {{value}} 模板字符串。您还可以使用 {{url}} 模板字符串来显示格式化后的 URL。

日期字段格式化器

编辑

日期字段支持 DateStringUrl 格式化器。

Date 格式化器使您可以使用 moment.js 标准格式定义来选择日期戳的显示格式。

字符串字段格式化程序使您能够对字段应用转换。

支持的转换包括

  • 转换为小写
  • 转换为大写
  • 转换为标题大小写
  • 应用短点转换,该转换将 . 字符之前的内容替换为内容的首字符。例如

原始

变为

com.organizations.project.ClassName

c.o.p.ClassName

  • Base64 解码
  • URL 参数解码

您可以为 Url 字段格式化程序指定以下类型

  • 链接 — 将字段内容转换为 URL。您可以指定图像的宽度和高度,同时保持宽高比。当图像小于指定的参数时,图像无法放大。
  • 图像 — 指定图像目录。
  • 音频 — 指定音频目录。

要自定义 URL 字段格式,请使用模板。URL 模板使您能够向部分 URL 添加值。要将字段的内容添加到固定的 URL,请使用 {{value}} 字符串。

例如,当

  • 字段包含用户 ID
  • 字段使用 Url 字段格式化程序
  • URI 模板为 http://company.net/profiles?user_id={­{value}­}

生成的 URL 会将 {{value}} 替换为该字段中的用户 ID。

{{value}} 模板字符串会对字段的内容进行 URL 编码。当编码到 URL 中的字段包含非 ASCII 字符时,这些字符将替换为 % 字符和相应的十六进制代码。例如,字段内容 users/admin 会导致 URL 模板添加 users%2Fadmin

当格式化器类型为 Image 时,{{value}} 模板字符串指定指定 URI 上的图像名称。

当格式化器类型为 Audio 时,{{value}} 模板字符串指定指定 URI 上的音频文件名。

要将未转义的值直接传递到 URL,请使用 {{rawValue}} 字符串。

标签模板 使您可以指定一个文本字符串,该字符串会显示而不是原始 URL。您可以在标签模板中正常使用 {{value}} 模板字符串。您还可以使用 {{url}} 模板字符串来显示格式化后的 URL。

地理点字段格式化器

编辑

地理点字段支持 String 格式化器。

字符串字段格式化程序使您能够对字段应用转换。

支持的转换包括

  • 转换为小写
  • 转换为大写
  • 转换为标题大小写
  • 应用短点转换,该转换将 . 字符之前的内容替换为内容的首字符。例如

原始

变为

com.organizations.project.ClassName

c.o.p.ClassName

  • Base64 解码
  • URL 参数解码

数字字段格式化器

编辑

数字字段支持 BytesColorDurationHistogramNumberPercentageStringUrl 格式化器。

BytesNumberPercentage 格式化器使您可以使用 Kibana 维护的 Elastic 数字模式 语法来选择字段中数字的显示格式。

Histogram 格式化器仅用于 histogram 字段类型。当您使用 Histogram 格式化器时,您可以将 BytesNumberPercentage 格式应用于聚合数据。

您可以为 Url 字段格式化程序指定以下类型

  • 链接 — 将字段内容转换为 URL。您可以指定图像的宽度和高度,同时保持宽高比。当图像小于指定的参数时,图像无法放大。
  • 图像 — 指定图像目录。
  • 音频 — 指定音频目录。

要自定义 URL 字段格式,请使用模板。URL 模板使您能够向部分 URL 添加值。要将字段的内容添加到固定的 URL,请使用 {{value}} 字符串。

例如,当

  • 字段包含用户 ID
  • 字段使用 Url 字段格式化程序
  • URI 模板为 http://company.net/profiles?user_id={­{value}­}

生成的 URL 会将 {{value}} 替换为该字段中的用户 ID。

{{value}} 模板字符串会对字段的内容进行 URL 编码。当编码到 URL 中的字段包含非 ASCII 字符时,这些字符将替换为 % 字符和相应的十六进制代码。例如,字段内容 users/admin 会导致 URL 模板添加 users%2Fadmin

当格式化器类型为 Image 时,{{value}} 模板字符串指定指定 URI 上的图像名称。

当格式化器类型为 Audio 时,{{value}} 模板字符串指定指定 URI 上的音频文件名。

要将未转义的值直接传递到 URL,请使用 {{rawValue}} 字符串。

标签模板 使您可以指定一个文本字符串,该字符串会显示而不是原始 URL。您可以在标签模板中正常使用 {{value}} 模板字符串。您还可以使用 {{url}} 模板字符串来显示格式化后的 URL。

字符串字段格式化程序使您能够对字段应用转换。

支持的转换包括

  • 转换为小写
  • 转换为大写
  • 转换为标题大小写
  • 应用短点转换,该转换将 . 字符之前的内容替换为内容的首字符。例如

原始

变为

com.organizations.project.ClassName

c.o.p.ClassName

  • Base64 解码
  • URL 参数解码

Duration 字段格式化器以以下增量显示字段的数值

  • 皮秒
  • 纳秒
  • 微秒
  • 毫秒
  • 分钟
  • 小时

您可以为输入和输出格式指定这些增量,最多 20 位小数。

Color 字段格式化器使您可以为数字字段指定具有值范围的颜色。

当您选择 Color 格式化器时,请单击 添加颜色,然后指定 范围文本颜色背景颜色