Splunk 查询编辑器
Grafana 为 Splunk 数据源提供了一个查询编辑器,您可以使用 Splunk 的搜索处理语言 (SPL) 在两种不同模式下创建和执行查询:搜索
模式或事件
模式。如果您刚开始使用 SPL,请参阅 Splunk 的搜索参考文档以获取指导。
搜索模式
搜索模式下有以下选项可用
- 搜索 - 输入 Splunk 搜索查询。有关创建搜索查询和搜索语法的更多信息,请参阅 Splunk 文档中的搜索。
搜索查询示例
index=sales_data_index action=purchase | stats sum(bytes) BY host
命名空间 - 每个 Splunk 查询都有一个通过 REST API 访问的命名空间。有关命名空间的更多信息,请参阅Splunk REST API 用户手册。
采样率 - 有关更多信息,请参阅 Splunk 的事件采样文档。示例包括
1:100
、1:10000
。限制 - 向 timechart 参数添加
limit=value
。
如果您想获得创建搜索查询的帮助,请点击右上角的铅笔和记事本图标。
这将打开一个可视化查询编辑器,其中包含以下选项
索引 - 点击
select index
框,查看可用索引的下拉列表。选择要用于查询的索引。源类型 - 点击
select sourcetype
框,查看源类型的下拉列表,并选择适合您查询的源类型。命名空间 - 点击框以查看命名空间的下拉列表。
指标 - 添加指标。点击指标旁边的框,查看可用指标的下拉列表。您也可以指定列表中不存在的函数。默认为
avg
。点击select field 选择一个字段或创建一个新字段用于聚合。添加别名是可选的。点击指标行右侧的+ 号图标添加多个指标。拆分依据 - 点击+ 号选择要拆分的字段(可以通过在下拉列表中选择 remove 来移除这些字段)。
Where 子句 - 选择 Where 子句类型。在选择 Where 子句类型后,可以编辑 Where 子句中的每个函数(通过在比较器函数中选择 remove 来移除 Where 子句)。有关更多信息,请参阅Where 子句。
跨度 - 设置查询的时间跨度。默认为
auto
。限制 - 向 timechart 参数添加
limit=value
。整数可以是正数或负数。使用其他 - 开启此项以指定是否应为因不满足
where-clause
条件而未包含在图表中的序列数据添加一个序列。使用 Null 值 - 开启此项以控制是否为不包含拆分依据字段的事件创建序列。
连续 - 指定图表是否连续。开启后,搜索应用程序会填充时间间隔。
部分 - 开启此项以保留部分时间分箱。只有第一个和最后一个分箱可以是部分的。
分箱 - 有关更多信息,请参阅 Splunk 的 bin 参考文档。默认为
100
。
事件模式
您可以在事件模式下创建事件查询。Splunk 中的事件是单个数据块。有关事件的定义以及如何处理事件的更多信息,请参阅 Splunk 文档中的事件。
事件模式不像搜索模式那样有分步查询构建器。以下是事件查询编辑器选项列表
- 搜索 - 输入 Splunk 搜索查询。有关创建搜索查询和搜索语法的更多信息,请参阅 Splunk 文档中的搜索。
事件搜索查询示例
index=os sourcetype=iostat | where total_ops > 400
index=os sourcetype=iostat | where total_ops > $io_threshold
- 事件字段作为文本 - 如果您想使用字段值作为注释文本,此选项很适用。默认为
_raw
。例如,您有一条来自日志的错误消息文本
Event field as text: _raw
Regex: WirelessRadioManagerd\[\d*\]: (.*)
正则表达式 - 允许您提取消息的一部分。
Splunk 告警名称 - 指定一个告警名称,或将此字段留空以获取所有已触发的告警。支持模板变量。
常用选项
无论在哪种查询模式下,以下都是查询编辑器中的常用选项。
- 添加查询 - 点击+ 添加查询 在查询编辑器中添加查询。
查询历史
查询编辑器会保留您的 Splunk 查询历史记录。
查询历史 - 您的 Splunk 查询历史记录。查询会保留 2 周,除非它们被加星标。编辑器一次显示 100 条查询,但它是分页的,因此您在查看前 100 条后可以始终看到更多。总记录数上限为 200,000 条
已加星标 - 加星标的查询会保留超过 2 周的限制。
设置 - 开启此项以将默认活动选项卡从“查询历史”更改为“已加星标”。
查询检查器
点击查询检查器以获取关于您的查询的详细统计信息。检查器是一种调试工具,用于“检查”您的查询。它在统计下提供查询统计信息,在查询下提供请求响应时间,在{} JSON下提供数据帧详细信息,并在数据下提供数据的形状。
使用 Splunk 数据
以下部分详细介绍了从 Splunk 获取数据时,您可以在查询编辑器中使用的其他选项和命令。
Timechart
在使用时间序列数据时使用 timechart 命令生成统计聚合表。要了解有关 timechart 命令和 timechart 选项的更多信息,请参阅 Splunk 文档中的timechart 命令概述和timechart。
示例
index=os sourcetype=cpu | timechart span=1m avg(pctSystem) as system, avg(pctUser) as user, avg(pctIowait) as iowait
index=os sourcetype=ps | timechart span=1m limit=5 useother=false avg(cpu_load_percent) by process_name
Splunk 指标与 mstats
从版本 7.x 开始,Splunk 引入了用于分析指标的 mstats
命令,该命令与 timeseries
命令结合使用。您还必须设置 prestats=t
选项,如下例所示。
Current syntax:
| mstats prestats=t avg(disk.disk_ops.read) avg(disk.disk_ops.write) WHERE index="collectd" by metric_name span=1m
| timechart avg(disk.disk_ops.read) avg(disk.disk_ops.write) span=1m
Deprecated syntax:
| mstats prestats=t avg(_value) AS Value WHERE index="collectd" metric_name="disk.disk_ops.read" OR metric_name="disk.disk_ops.write" by metric_name span=1m
| timechart avg(_value) span=1m by metric_name
有关 mstats
命令的更多信息,请参阅 Splunk 的mstats 文档。
格式化为
支持两种结果格式模式:时间序列
(默认)和表格
。表格模式适用于当您想显示聚合数据时与表格面板一起使用。它适用于原始事件(返回所有选定字段)和 stats
搜索函数,后者返回类似表格的数据。结果类似于 Splunk UI 中的统计
选项卡。示例
index="_internal" sourcetype="scheduler" | fields host, source
index="_internal" sourcetype="splunkd_access" | stats avg(bytes) as bytes, avg(file) as file by status
在Splunk 搜索参考文档中了解有关 stats
函数的更多信息
注释
如果您想在图表上显示 Splunk 告警或事件,请使用注释。注释可以是预定义的 Splunk 告警或常规 Splunk 搜索。选择要在注释中显示的所需字段。注释文本显示如下例所示。