我想检查是否有多个正在运行的作业/流程实例。
例如:我的Splunk搜索:
index=abc <jobname> | stats earliest(_time) AS earliest_time, latest(_time) AS latest_time count by source | convert ctime(earliest_time), ctime(latest_time) | sort - count
返回:
source earliest_time latest_time count
logA 06/06/2020 15:24:09 06/06/2020 15:24:59 1
logB 06/06/2020 15:24:24 06/06/2020 15:25:12 2
在上面,由于logB表示作业在logA完成时间之前运行,因此它表示进程的并发运行。如果可能的话,我想生成一份所有此类工作的清单,感谢您的帮助。谢谢。
为此,有一个内置的Splunk命令,concurrency
。此命令需要事件开始时间和持续时间,我们可以将其计算为最早时间与最近时间之间的差。此命令将创建一个名为concurrency
的新字段,该字段是度量表示每个特定事件开始时正在进行的事件总数,包括事件本身。
index=abc <jobname> | stats earliest(_time) as et latest(_time) as lt count by source | eval duration=lt-et | concurrency start=et duration=duration | where concurrency>1
concurrency
的文档可以在https://docs.splunk.com/Documentation/Splunk/8.0.4/SearchReference/Concurrency中找到>