Splunk 创建一个字段的值图表由另一个排序
Splunk create chart of value of one field ordered by another
我的示例日志行为:
<158>Mar 31 16:33:09 :[ 31-03-2015 16:33:09.823 ] [ pool-17-thread-9;itemId=1234567 ] [ INFO ] [ ItemManager ] - itemType=file:import completed with status=COMPLETE, executionTime=30 (sec), queuedTime=0 (sec), throttledTime=0 (sec), [FileImport(1234567) id=1234567 status=COMPLETE statusText= createdDate=2015-03-31T16:30:30.000Z scheduledDate=2015-03-31T16:30:30.000Z restartDate= startDate=2015-03-31T16:30:30.670Z lastUpdate=2015-03-31T16:33:09.513Z endDate=2015-03-31 serverId=foo.com:1]
我想要做的是为状态=COMPLETE 和 itemType=file:import 的每个 itemId(唯一的)创建一个 bar/column 执行时间图。 (如果还添加与 itemId 关联的 serverId 会很酷)
所以 Y 轴就是执行时间(秒)
X 轴将是每个 itemId(具有 itemId/serverId 的奖励)
我试过了
itemType=file:import AND status=COMPLETE 但不知道要输入什么才能使轴和数据正确。
谢谢!这可能超级简单,但我真的只做过查询,从未尝试过绘制图表。
假设字段提取正确完成。您可能正在寻找 chart 命令。
itemType=file:import status=COMPLETE
| chart sum(executionTime) as executionTime over itemId
对于你的第一个。 Splunk 可能足够聪明,但您可能需要从 executionTime
中删除所有非数字(例如 30
而不是 30 (sec)
)。如果是这样,一种方法是使用 rex 命令。
itemType=file:import status=COMPLETE
| rex field=executionTime mode=sed "s/\D+//g"
| chart sum(executionTime) as executionTime over itemId
现在让我们讨论一下您的 "serverId associated with the itemId" itemId 是否跨服务器关联,并且您想查看所有 itemId 中每个服务器的系列?如果是:
itemType=file:import status=COMPLETE
| rex field=executionTime mode=sed "s/\D+//g"
| chart sum(executionTime) over itemId by serverId
您可以通过反转 over 和 by 子句,让 xaxis 成为 serverID,series 成为 itemId。根据您拥有的物品/服务器数量,在这种情况下,您需要使用统计命令的 limit=
参数。
但是如果您只想将每个服务器/项目对作为其自己的 xaxis 值怎么办?然后我们将使用 eval 在制图之前构建我们的 xAxis 值......可能像这样:
itemType=file:import status=COMPLETE
| rex field=executionTime mode=sed "s/\D+//g"
| eval serverItem = serverId . "x" . itemId
| chart sum(executionTime) as executionTime over serverItem
(很明显,您可以完全控制键值的格式,所以如果您首先需要 itemId,或者其他分隔符则由您决定。)
我的示例日志行为:
<158>Mar 31 16:33:09 :[ 31-03-2015 16:33:09.823 ] [ pool-17-thread-9;itemId=1234567 ] [ INFO ] [ ItemManager ] - itemType=file:import completed with status=COMPLETE, executionTime=30 (sec), queuedTime=0 (sec), throttledTime=0 (sec), [FileImport(1234567) id=1234567 status=COMPLETE statusText= createdDate=2015-03-31T16:30:30.000Z scheduledDate=2015-03-31T16:30:30.000Z restartDate= startDate=2015-03-31T16:30:30.670Z lastUpdate=2015-03-31T16:33:09.513Z endDate=2015-03-31 serverId=foo.com:1]
我想要做的是为状态=COMPLETE 和 itemType=file:import 的每个 itemId(唯一的)创建一个 bar/column 执行时间图。 (如果还添加与 itemId 关联的 serverId 会很酷)
所以 Y 轴就是执行时间(秒) X 轴将是每个 itemId(具有 itemId/serverId 的奖励)
我试过了 itemType=file:import AND status=COMPLETE 但不知道要输入什么才能使轴和数据正确。
谢谢!这可能超级简单,但我真的只做过查询,从未尝试过绘制图表。
假设字段提取正确完成。您可能正在寻找 chart 命令。
itemType=file:import status=COMPLETE
| chart sum(executionTime) as executionTime over itemId
对于你的第一个。 Splunk 可能足够聪明,但您可能需要从 executionTime
中删除所有非数字(例如 30
而不是 30 (sec)
)。如果是这样,一种方法是使用 rex 命令。
itemType=file:import status=COMPLETE
| rex field=executionTime mode=sed "s/\D+//g"
| chart sum(executionTime) as executionTime over itemId
现在让我们讨论一下您的 "serverId associated with the itemId" itemId 是否跨服务器关联,并且您想查看所有 itemId 中每个服务器的系列?如果是:
itemType=file:import status=COMPLETE
| rex field=executionTime mode=sed "s/\D+//g"
| chart sum(executionTime) over itemId by serverId
您可以通过反转 over 和 by 子句,让 xaxis 成为 serverID,series 成为 itemId。根据您拥有的物品/服务器数量,在这种情况下,您需要使用统计命令的 limit=
参数。
但是如果您只想将每个服务器/项目对作为其自己的 xaxis 值怎么办?然后我们将使用 eval 在制图之前构建我们的 xAxis 值......可能像这样:
itemType=file:import status=COMPLETE
| rex field=executionTime mode=sed "s/\D+//g"
| eval serverItem = serverId . "x" . itemId
| chart sum(executionTime) as executionTime over serverItem
(很明显,您可以完全控制键值的格式,所以如果您首先需要 itemId,或者其他分隔符则由您决定。)