Splunk创建另一个字段排序的一个字段的值图表

时间:2015-03-31 17:19:24

标签: charts splunk

我有我的示例日志行:

<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]

我想要做的是为每个itemId(它们是唯一的)创建一个执行时间的条形图/列图,其status = COMPLETE和itemType = file:import。 (奖励也很酷,还可以添加与itemId关联的serverId)

因此Y轴将是executionTime(s) 每个项目的X轴(带有itemId / serverId的奖励)

我已经尝试过了 itemType = file:import AND status = COMPLETE但不知道输入什么来获取轴和数据是正确的。

谢谢!它可能非常简单,但我只是真的做过查询,从未尝试过图表。

1 个答案:

答案 0 :(得分:1)

假设正确地进行了字段提取。您可能正在寻找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

现在让我们讨论与itemId&#34;相关联的&#34; serverId itemIds是否与服务器相关联,并且您希望在所有itemIds中查看每个服务器的系列?如果是这样的话:

itemType=file:import status=COMPLETE
| rex field=executionTime mode=sed "s/\D+//g"
| chart sum(executionTime) over itemId by serverId

您可以通过反转over和by子句将xaxis作为serverID,将系列作为itemId。根据您拥有的项目/服务器的数量,在这种情况下,您将要使用stats命令的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,或者你想要一个不同的分隔符。)