Archive
Highlighted

営業日・時間内のイベントのみカウント

現在、ヒストグラムにて業務の対応時間を集計しています。
実働時間の記載がないデータのため、2つの時間項目(受付日時 対応完了日時)を使用して対応時間を算出しております。
ですが、現状算出されるデータは受付日時と対応完了日時が土日以外の曜日で9-18の間にタイムスタンプが押されているイベントを取ってくるだけで、営業時間外の時間も対応工数として集計してしまっています。
できれば、該当イベントの営業時間内のみ対応工数として時間集計をして欲しいのです。
どのように設定すればよいでしょうか。
ご教示頂けますよう、よろしくお願いします。

searchは以下の様になっております。

【search文】
index=問合せ対応index
|eval tnow=now(),受付=strptime('受付日時',"%Y/%m/%d %H:%M"),期限=strptime('対応完了日時',"%Y/%m/%d %H:%M")
|where (date
wday="saturday" OR datewday="sunday")
|eval myHour=strftime(
time, "%H")
|eval myMinute=strftime(_time, "%M")
|where ( (myHour >= 9 AND myMinute >= 00) OR (myHour <= 18 AND myMinute <= 00) )
|eval 対応時間=('期限'-'受付')/3600
|eval 対応時間(H)=round('対応時間')
|search 対応時間<610
|search 対応時間>0
|bucket 対応時間(H) span=10
|stats count as 問合せ件数 by 対応時間(H)
|sort 対応時間(H)

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

SplunkTrust
SplunkTrust

I believe your search has errors in it.

The first where clause is choosing events that happen on Saturday or Sunday instead of ignoring events on those days. It should be | where NOT (date_wday="saturday" OR date_wday="sunday").
The second where clause does not choose events within business hours. Try |where ( (myHour >= 9 AND myMinute >= 00) AND (myHour <= 18 AND myMinute <= 00) ).

---
If this reply helps you, an upvote would be appreciated.
0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

Champion

サーチ文はとりあえずおいといて、_time(タイムスタンプ)と受付日時、対応完了日時の関係と営業時間の定義を教えてもらえますか?

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

@HiroshiSatoh
 ご質問ありがとうございます。
 タイムスタンプに受付日時と対応完了日の両者を適応しております。この2項目の関係性としては、イベントの発生日時と終了日時です。
 営業時間の定義としては、毎日9:00-18:00(土日を除く)を定義しています。
 祝日はさすがに、入れようとすると工数がかかりすぎるため、省こうと考えています。
 よろしくお願いします。

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

Champion

もう少し詳しく質問しますが、
①_timeにはどんな日時が設定されていますか?受付日時ですか?
②受付日と対応完了日で日をまたがることはありますか?
③毎日9:00-18:00(土日を除く)以外の受付日時は除外で良いですか?
④対応完了日時が18:00以降になった場合は18時までの時間を集計するでよいですか?

③がNGの場合
・9時前に受け付けて完了が9時以降のデータは対象にしますか?
・9時前に受け付けたデータは9時からの時間を集計しますか?

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

再度ご質問、ありがとうございます。
①受付日時と対応完了日の両者をタイムスタンプフィールドに設定しているので、_timeはその2つのフィールドが設定されているものと思います(不要であれば、対応完了日を外します)。
②基本的に別日なので、日または月をまたぐことがあります。
③はい、おっしゃる通りです。
④これも、おっしゃる通りです。

追随して、欲を言ってしまうと、12時から13時の間(平日)も除外したいです。
ですが、これはできればという形なので、まずは上の状態で出るようにしたいです。
よろしくお願いします。

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

Champion

①ですが、Splunkのtimeは1つです。1つのログにはどちらかしか設定できません。どちらですか?または全く違う時刻が設定されていますか?ログのイメージが提示できるのならお願いします。
※date
wdayは_timeの値で設定されます。

②ですが、日をまたぐと計算も複雑になりますが、受付日時から完了日時までの9:00-18:00(土日を除く)間の時間を集計するでいいですか?

③ですが、土日に受け付けて完了日時が平日の場合でも対象外になりますがそれでいいですか?

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

①に関しては、受付日時のタイムスタンプになっていました。
 イメージ図に関しては、申し訳ありませんが、提示しかねます。

②はおっしゃる通りです。

③に関しては、対象外になって大丈夫です。

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

Thank you for your replying to my question.
I fixed my search query as you proposed however, it still counting hours that are out of business time hour.
Regards. satoshi

0 Karma
Highlighted

Re: 営業日・時間内のイベントのみカウント

SplunkTrust
SplunkTrust

On closer inspection I see a logic error: myMinute can never be < 0. Try this

... | eval myTime = (myHour * 100) + myMinute
| where myTime >= 900 AND myTime <= 1800 
| ...
---
If this reply helps you, an upvote would be appreciated.
0 Karma