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
,其选定值为 foo
和 bar
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 中使用变量的更多信息,请参阅变量。