<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: How to calculate duration by error code? in Splunk Search</title>
    <link>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651036#M225093</link>
    <description>&lt;P&gt;How do you define duration from the data you illustrated? &amp;nbsp;In other words, without Splunk, how do you calculate duration? &amp;nbsp;When you ask a question about data processing, first define the problem in terms of data.&lt;/P&gt;</description>
    <pubDate>Tue, 18 Jul 2023 17:05:03 GMT</pubDate>
    <dc:creator>yuanliu</dc:creator>
    <dc:date>2023-07-18T17:05:03Z</dc:date>
    <item>
      <title>How to calculate duration by error code?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/650979#M225071</link>
      <description>&lt;P&gt;Hi team,&lt;/P&gt;&lt;P&gt;I have raw data with status: 200, 404, 503.&lt;/P&gt;&lt;P&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;BR /&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;BR /&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;BR /&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 404&lt;BR /&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;BR /&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;BR /&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;BR /&gt;183080267.ap-southeast-1.elb.amazonaws.com | app | 503&lt;/P&gt;&lt;P&gt;I want to calculate total time with error request (status!=200) by dns. Please help me!!! Thanks.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jul 2023 11:05:10 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/650979#M225071</guid>
      <dc:creator>dungnq</dc:creator>
      <dc:date>2023-07-18T11:05:10Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate duration by error code?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651036#M225093</link>
      <description>&lt;P&gt;How do you define duration from the data you illustrated? &amp;nbsp;In other words, without Splunk, how do you calculate duration? &amp;nbsp;When you ask a question about data processing, first define the problem in terms of data.&lt;/P&gt;</description>
      <pubDate>Tue, 18 Jul 2023 17:05:03 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651036#M225093</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2023-07-18T17:05:03Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate duration by error code?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651055#M225097</link>
      <description>&lt;P&gt;I'm so sorry for this confusion. I send back more detailed information as follows:&lt;/P&gt;&lt;P&gt;&lt;EM&gt;&lt;STRONG&gt;time&lt;/STRONG&gt; &lt;STRONG&gt;dns&lt;/STRONG&gt; | &lt;STRONG&gt;service&lt;/STRONG&gt; | &lt;STRONG&gt;status&amp;nbsp;&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;--------------------------------------------------------------------------&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:53 183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:52 183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:51 183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:49 183080267.ap-southeast-1.elb.amazonaws.com | app | 404&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:40 183080267.ap-southeast-1.elb.amazonaws.com | app | 404&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:30 183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:29 183080267.ap-southeast-1.elb.amazonaws.com | app | 200&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:23 183080267.ap-southeast-1.elb.amazonaws.com | app | 503&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:20 183080267.ap-southeast-1.elb.amazonaws.com | app | 503&lt;/EM&gt;&lt;BR /&gt;&lt;EM&gt;2023-18-07 12:53:10 183080267.ap-southeast-1.elb.amazonaws.com | app | 503&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;BR /&gt;Purpose I want to calculate total service downtime with status code !=200&lt;/P&gt;&lt;P&gt;&lt;EM&gt;Example: at 2023-18-07 12:53:40 services downtime(status code: 404) and then at 2023-18-07 12:53:51 services uptime (status code: 200). &lt;STRONG&gt;So Total downtime: 11s&lt;/STRONG&gt;&lt;/EM&gt;&lt;BR /&gt;&lt;BR /&gt;I used the "transaction" function but it's not correct.Because duration is calculated twice (first from event 404: 2023-18-07 12:53:40 to 1st event 200: 2023-18-07 12:53:51 and second&lt;BR /&gt;from event 404: 2023-18-07 12:53:49 to 1st event 200: 2023-18-07 12:53:51)&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&lt;EM&gt;transaction dns service startswith=(status!=200) endswith=(status=200) | rename duration AS Downtime&lt;/EM&gt;&lt;/STRONG&gt;&lt;/P&gt;</description>
      <pubDate>Wed, 19 Jul 2023 02:22:42 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651055#M225097</guid>
      <dc:creator>dungnq</dc:creator>
      <dc:date>2023-07-19T02:22:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate duration by error code?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651249#M225159</link>
      <description>&lt;P&gt;So, you will first need to determine the start event of "down" stream using &lt;A href="https://docs.splunk.com/Documentation/Splunk/latest/SearchReference/Streamstats#streamstats" target="_blank" rel="noopener"&gt;streamstats&lt;/A&gt;. &amp;nbsp;But in order to do this by DNS and service, you need to sort twice. &amp;nbsp;This can be expensive if number of events are large.&lt;/P&gt;&lt;P&gt;If you need to retain all events, you can do&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| eval updown = if(status != 200, "down", "up")
| sort DNS service _time
| streamstats min(_time) as down by DNS service updown reset_on_change=true
| eval updown = if(updown == "up" OR _time == down, updown, null())
| sort - DNS service _time
| transaction DNS service startswith=updown=down endswith=updown=up keepevicted=true&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;Your sample events will show something like&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;_raw&lt;/TD&gt;&lt;TD&gt;_time&lt;/TD&gt;&lt;TD&gt;closed_txn&lt;/TD&gt;&lt;TD&gt;duration&lt;/TD&gt;&lt;TD&gt;eventcount&lt;/TD&gt;&lt;TD&gt;field_match_sum&lt;/TD&gt;&lt;TD&gt;linecount&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023-18-07T12:53:53,183080267.ap-southeast-1.elb.amazonaws.com,app,200&lt;/TD&gt;&lt;TD&gt;2023-07-18 12:53:53&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023-18-07T12:53:52,183080267.ap-southeast-1.elb.amazonaws.com,app,200&lt;/TD&gt;&lt;TD&gt;2023-07-18 12:53:52&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023-18-07T12:53:40,183080267.ap-southeast-1.elb.amazonaws.com,app,404 2023-18-07T12:53:49,183080267.ap-southeast-1.elb.amazonaws.com,app,404 2023-18-07T12:53:51,183080267.ap-southeast-1.elb.amazonaws.com,app,200&lt;/TD&gt;&lt;TD&gt;2023-07-18 12:53:40&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;TD&gt;6&lt;/TD&gt;&lt;TD&gt;3&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023-18-07T12:53:30,183080267.ap-southeast-1.elb.amazonaws.com,app,200&lt;/TD&gt;&lt;TD&gt;2023-07-18 12:53:30&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;0&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023-18-07T12:53:10,183080267.ap-southeast-1.elb.amazonaws.com,app,503 2023-18-07T12:53:20,183080267.ap-southeast-1.elb.amazonaws.com,app,503 2023-18-07T12:53:23,183080267.ap-southeast-1.elb.amazonaws.com,app,503 2023-18-07T12:53:29,183080267.ap-southeast-1.elb.amazonaws.com,app,200&lt;/TD&gt;&lt;TD&gt;2023-07-18 12:53:10&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;8&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;If, on the other hand, you don't care about events not used in this calculation, you can improve efficiency by dropping them early:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| eval updown = if(status != 200, "down", "up")
| sort DNS service _time
| streamstats min(_time) as down by DNS service updown reset_on_change=true
| where updown == "up" OR _time == down
| sort - DNS service _time
| transaction DNS service startswith=updown=down endswith=updown=up&lt;/LI-CODE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;This will give you&lt;/P&gt;&lt;TABLE&gt;&lt;TBODY&gt;&lt;TR&gt;&lt;TD&gt;_raw&lt;/TD&gt;&lt;TD&gt;_time&lt;/TD&gt;&lt;TD&gt;closed_txt&lt;/TD&gt;&lt;TD&gt;duration&lt;/TD&gt;&lt;TD&gt;eventcount&lt;/TD&gt;&lt;TD&gt;field_match_sum&lt;/TD&gt;&lt;TD&gt;linecount&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023-18-07T12:53:40,183080267.ap-southeast-1.elb.amazonaws.com,app,404 2023-18-07T12:53:51,183080267.ap-southeast-1.elb.amazonaws.com,app,200&lt;/TD&gt;&lt;TD&gt;2023-07-18 12:53:40&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;11&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;TR&gt;&lt;TD&gt;2023-18-07T12:53:10,183080267.ap-southeast-1.elb.amazonaws.com,app,503 2023-18-07T12:53:29,183080267.ap-southeast-1.elb.amazonaws.com,app,200&lt;/TD&gt;&lt;TD&gt;2023-07-18 12:53:10&lt;/TD&gt;&lt;TD&gt;1&lt;/TD&gt;&lt;TD&gt;19&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;TD&gt;4&lt;/TD&gt;&lt;TD&gt;2&lt;/TD&gt;&lt;/TR&gt;&lt;/TBODY&gt;&lt;/TABLE&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;P&gt;The following is an emulation of your sample data that you can play with and compare with real data:&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;&lt;LI-CODE lang="markup"&gt;| makeresults
| eval _raw = "time,DNS,service,status
2023-18-07T12:53:53,183080267.ap-southeast-1.elb.amazonaws.com,app,200
2023-18-07T12:53:52,183080267.ap-southeast-1.elb.amazonaws.com,app,200
2023-18-07T12:53:51,183080267.ap-southeast-1.elb.amazonaws.com,app,200
2023-18-07T12:53:49,183080267.ap-southeast-1.elb.amazonaws.com,app,404
2023-18-07T12:53:40,183080267.ap-southeast-1.elb.amazonaws.com,app,404
2023-18-07T12:53:30,183080267.ap-southeast-1.elb.amazonaws.com,app,200
2023-18-07T12:53:29,183080267.ap-southeast-1.elb.amazonaws.com,app,200
2023-18-07T12:53:23,183080267.ap-southeast-1.elb.amazonaws.com,app,503
2023-18-07T12:53:20,183080267.ap-southeast-1.elb.amazonaws.com,app,503
2023-18-07T12:53:10,183080267.ap-southeast-1.elb.amazonaws.com,app,503"
| multikv forceheader=1
| eval _time = strptime(time, "%Y-%d-%mT%H:%M:%S")
| fields - linecount time
``` the above emulates sample events ```&lt;/LI-CODE&gt;&lt;P&gt;Hope this helps.&lt;/P&gt;&lt;P&gt;&amp;nbsp;&lt;/P&gt;</description>
      <pubDate>Thu, 20 Jul 2023 07:44:48 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651249#M225159</guid>
      <dc:creator>yuanliu</dc:creator>
      <dc:date>2023-07-20T07:44:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to calculate duration by error code?</title>
      <link>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651823#M225317</link>
      <description>&lt;P&gt;Hi yuanliu,&lt;/P&gt;&lt;P&gt;So great !!!&amp;nbsp;&lt;EM&gt;How kind you are to help me. Thank you very much.&lt;/EM&gt;&lt;/P&gt;&lt;P&gt;&lt;EM&gt;--DungNQ--&lt;/EM&gt;&lt;/P&gt;</description>
      <pubDate>Tue, 25 Jul 2023 03:07:09 GMT</pubDate>
      <guid>https://community.splunk.com/t5/Splunk-Search/How-to-calculate-duration-by-error-code/m-p/651823#M225317</guid>
      <dc:creator>dungnq</dc:creator>
      <dc:date>2023-07-25T03:07:09Z</dc:date>
    </item>
  </channel>
</rss>

