【问题标题】:Splunk - To search for concurrent run of processesSplunk - 搜索并发运行的进程
【发布时间】:2020-06-10 17:33:14
【问题描述】:

我想检查一个作业/进程是否有多个实例正在运行。

例如:我的 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完成时间之前运行,它表示进程并发运行。如果可能的话,我想生成所有此类工作的列表,感谢任何帮助。 谢谢你。

【问题讨论】:

    标签: concurrency transactions splunk


    【解决方案1】:

    为此有一个内置的 Splunk 命令,concurrency。此命令需要事件开始时间和持续时间,我们可以将其计算为最早时间和最晚时间之间的差异。此命令将创建一个名为concurrency 的新字段,它是一个度量,表示[ing]每个特定事件开始时正在进行的事件总数,包括事件本身

    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 找到

    【讨论】:

    • 谢谢西蒙。这很有帮助。我对此有一个后续问题:我想检查并发运行和相应的工作。例如:JOB1 具有 logA 和 logB 的并发时序,JOB2 具有 logC 和 log D 的并发时序。即,基于作业名,可以扩展此解决方案吗?我不希望在 logC 和 logA 之间发生并发检查,因为它们属于不同的作业。谢谢你的帮助。
    • 活动中有 Job 字段吗?如果是这样,我们可能可以将该字段包含在stats 命令的by 子句中。发布一些事件,我们可以看到最好的方法是什么
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-01-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多