菜单
文档面包屑箭头 插件面包屑箭头 Splunk 数据源面包屑箭头 Splunk 模板和变量

Splunk 模板和变量

要添加新的 Splunk 查询变量,请参阅添加查询变量。请使用 Splunk 数据源作为您的数据源。

使用 SPL (搜索处理语言) 进行查询以返回值的列表,例如,使用 stats命令

日志
index=os sourcetype="iostat" | stats values(Device)

该查询从 iostat 源返回 Device 字段值的列表。您可以使用这些设备名称进行时序查询或注释。

Grafana 中使用的变量查询有两种可能的类型

  • 一种简单的查询(如上所示),它返回一个值的列表
  • 一种可以创建键/值变量的查询。该查询返回两列,分别命名为 _text_value_text 列的值应是唯一的(如果不是唯一的,则使用第一个值)。下拉列表中的选项将包含一个文本和一个值,允许您使用易记的名称作为文本,并使用 id 作为值。

此搜索返回一个包含 Name(Docker 容器名称)和 Id(容器 ID)列的表格

日志
source=docker_inspect | stats count latest(Name) as Name by Id | table Name, Id

为了将容器名称用作变量的可见值,并将 ID 用作其真实值,请按照以下示例所示修改查询

日志
source=docker_inspect | stats count latest(Name) as Name by Id | table Name, Id | rename Name as "_text", Id as "_value"

多值变量

您可以在查询中使用多值变量。插值搜索取决于变量使用上下文。Splunk 插件支持多种上下文。在下面的示例中,我们假设有一个变量 $container,其选定值为 foobar

  • search command 的基本过滤器

    日志
    source=docker_stats $container
    =>
    source=docker_stats (foo OR bar)
  • 字段-值过滤器

    日志
    source=docker_stats container_name=$container
    =>
    source=docker_stats (container_name=foo OR container_name=bar)
  • 带有 IN 运算符和 in() 函数的字段-值过滤器

    日志
    source=docker_stats container_name IN ($container)
    =>
    source=docker_stats container_name IN (foo, bar)
    
    source=docker_stats | where container_name in($container)
    =>
    source=docker_stats | where container_name in(foo, bar)

多值变量和引号

如果变量用引号(双引号或单引号)括起来,其值也将被括起来

日志
source=docker_stats container_name="$container"
=>
source=docker_stats (container_name="foo" OR container_name="bar")

source=docker_stats container_name='$container'
=>
source=docker_stats (container_name='foo' OR container_name='bar')

创建变量后,您可以使用这种语法在您的 Splunk 查询中使用它。

有关在 Grafana 中使用变量的更多信息,请参阅变量