in RCA Logfile: “Somelogfile.log” ... In<ED>cio PASSO: P062 30-01-2016 17:36:42 In<ED>cio PASSO: P063 30-01-2016 17:38:38 In<ED>cio PASSO: P064 30-01-2016 17:40:02 In<ED>cio PASSO: P070 30-01-2016 17:45:55 In<ED>cio PASSO: P071 30-01-2016 17:58:24 In<ED>cio PASSO: P073 30-01-2016 18:00:17 ... Perl script computes the elapsed time between steps and returns JSON: {"@timestamp":"2016-01-30T17:36:42+0000","EXECUTION_TIME":104000,"component":"PACK_DWPRQMOVSRV","filename":"PRQ_SRV_Ph.PACK_DWPRQMOVSRV.DWPRQSRVDP30Q.sql.20160129.2.log","message": "Início PASSO: P062 30-01-2016 17:36:42","process":"PRQ_SRV_Ph","segment":"PRQ_SRV_Ph","shipper":"parser","state":"running","step":"P061"} {"@timestamp":"2016-01-30T17:38:38+0000","EXECUTION_TIME":116000,"component":"PACK_DWPRQMOVSRV","filename":"PRQ_SRV_Ph.PACK_DWPRQMOVSRV.DWPRQSRVDP30Q.sql.20160129.2.log","message": "Início PASSO: P063 30-01-2016 17:38:38","process":"PRQ_SRV_Ph","segment":"PRQ_SRV_Ph","shipper":"parser","state":"running","step":"P062"} {"@timestamp":"2016-01-30T17:40:02+0000","EXECUTION_TIME":84000,"component":"PACK_DWPRQMOVSRV","filename":"PRQ_SRV_Ph.PACK_DWPRQMOVSRV.DWPRQSRVDP30Q.sql.20160129.2.log","message":" Início PASSO: P064 30-01-2016 17:40:02","process":"PRQ_SRV_Ph","segment":"PRQ_SRV_Ph","shipper":"parser","state":"running","step":"P063"} {"@timestamp":"2016-01-30T17:45:55+0000","EXECUTION_TIME":353000,"component":"PACK_DWPRQMOVSRV","filename":"PRQ_SRV_Ph.PACK_DWPRQMOVSRV.DWPRQSRVDP30Q.sql.20160129.2.log","message": "Início PASSO: P070 30-01-2016 17:45:55","process":"PRQ_SRV_Ph","segment":"PRQ_SRV_Ph","shipper":"parser","state":"running","step":"P064"} {"@timestamp":"2016-01-30T17:58:24+0000","EXECUTION_TIME":749000,"component":"PACK_DWPRQMOVSRV","filename":"PRQ_SRV_Ph.PACK_DWPRQMOVSRV.DWPRQSRVDP30Q.sql.20160129.2.log","message": "Início PASSO: P071 30-01-2016 17:58:24","process":"PRQ_SRV_Ph","segment":"PRQ_SRV_Ph","shipper":"parser","state":"running","step":"P070"} {"@timestamp":"2016-01-30T18:00:17+0000","EXECUTION_TIME":113000,"component":"PACK_DWPRQMOVSRV","filename":"PRQ_SRV_Ph.PACK_DWPRQMOVSRV.DWPRQSRVDP30Q.sql.20160129.2.log","message": "Início PASSO: P073 30-01-2016 18:00:17","process":"PRQ_SRV_Ph","segment":"PRQ_SRV_Ph","shipper":"parser","state":"running","step":"P071"} Finally, we run the oneliner to populate elasticsearch with the generated metrics: $ ./parsefiles.pl PRQ_SRV_Ph/PRQ_SRV_Ph.PACK_DWPRQMOVSRV.DWPRQSRVDP30Q.sql.20160129.2.log | ~/opt/logstash/bin/logstash -f ~/etc/jsonin_ampqout.conf And finally, insight through kibana, “who took the greater time slice?”, “what component deviates the most?”, ...