Calculate time based metrics(hourly)

后端 未结 2 1752
感动是毒
感动是毒 2021-01-03 00:24

How would I calculate time-based metrics (hourly average) based on log file data?

let me make this more clear, consider a log file that contains entries as follows:

2条回答
  •  小鲜肉
    小鲜肉 (楼主)
    2021-01-03 01:08

    Given your posted input file:

    $ cat file
    2013-04-03 08:54:19,989 INFO [LOGGER] <UId>904c-be-4e-bbda-3e62</UId><
    2013-04-03 08:54:39,389 INFO [LOGGER] <UId>904c-be-4e-bbda-3e62</UId><
    2013-04-03 08:54:34,979 INFO [LOGGER] <UId>edfc-fr-5e-bced-3443</UId><
    2013-04-03 08:55:19,569 INFO [LOGGER] <UId>edfc-fr-5e-bced-3443</UId><
    

    This GNU awk script (you are using GNU awk since you set RS to a multi-character string in the script you posted in your question)

    $ cat tst.awk
    {
        date = $1
        time = $2
        guid = gensub(/.*;gt;([^&]+).*/,"\\1","")
    
        print guid, date, time
    }
    

    will pull out what I THINK is the information you care about:

    $ gawk -f tst.awk file
    904c-be-4e-bbda-3e62 2013-04-03 08:54:19,989
    904c-be-4e-bbda-3e62 2013-04-03 08:54:39,389
    edfc-fr-5e-bced-3443 2013-04-03 08:54:34,979
    edfc-fr-5e-bced-3443 2013-04-03 08:55:19,569
    

    The rest is simple math, right? And do it in this awk script - don't go piping the awk output to some goofy shell loop!

提交回复
热议问题