2016-10-06 2 views
0

私のスプランクデータには、「impact_time」と「incident_name」という2つのフィールドがあります。今私は "impact_time"と私が与えるスパンに基づいてこれらのインシデント名を集計したいと思います。たとえば、 spanに1dを指定すると、各日付のインシデントを集計する必要があります。私は1時間としてスパンを与えるとスプランク出力にデータフィールドがありません

2016-06-28 a,b,c,d 
2016-06-29 g,r,w,d 
2016-06-30 f,e,r,t 

、それは私が次のクエリでこれを取得しています

2016-06-28 03:00:00 a,b,c,d 
2016-06-29 04:00:00 g,r,w,d 
2016-06-30 05:00:00 f,e,r,t 

impact_timeから時間に基づいて集計する必要があります: -

index=sn impact=1 OR impact=2 | eval time = round(strptime(impact_start,"%Y-%m-%d %H:%M:%S"), 0)| where time >= ' + timeStart + ' AND time<=' + timeEnd + '| bucket time span=' + hm + ' | stats values(number) as incident_name by time 

しかし1つの問題があります。集計時間を「時間」にすると、1時間にデータがない場合、その「impact_time」には何も表示されません。 inと同様に、対応するimpact_timeはデータテーブルから完全に欠落しています。 "impact_time"に表示するデータがない場合、 "impact_time"の空の "incident_number"フィールドを表示する方法はありますか?たとえば、 -

2016-06-28 03:00:00 a,b,c,d 
2016-06-29 04:00:00 g,r,w,d 
2016-06-30 05:00:00 f,e,r,t 
2016-06-30 08:00:00 f,e,r,t 

ここで、06:00:00、07:00:00の時間にデータはありません。したがって、これらのフィールドは、これを示す代わりにデータ出力から完全に欠落しています: -

2016-06-28 03:00:00 a,b,c,d 
2016-06-29 04:00:00 g,r,w,d 
2016-06-30 05:00:00 f,e,r,t 
2016-06-30 06:00:00 (null or empty) 
2016-06-30 07:00:00 (null or empty) 
2016-06-30 08:00:00 f,e,r,t 

ありがとうございます。代わりにbucket time span=アプローチを使用しての

答えて

0

、あなたが代わりにtimechartアプローチを使用することができます。

私は自分のデータに似た何かを実行して、シナリオをrepro'd:

[...] 
| bucket _time span=1h 
| stats values(hostIdentifier) as hosts 

をこれが得られた:

------------------------------------------- 
| _time   | hosts    | 
------------------------------------------- 
| 2016-10-10 22:00 | host1, host2, host3 | 
------------------------------------------- 
| 2016-10-10 23:00 | hosta, hostb, hostc | 
------------------------------------------- 
| 2016-10-11 00:00 | hostf, hoste, hostd | 
------------------------------------------- <---This is the gap! 
| 2016-10-11 02:00 | host4, host5, host6 | 
------------------------------------------- 

次に、クエリを使用するように変更しました。

[...] 
| timechart span=1h values(hostIdentifier) as hosts 
| fillnull "hosts" value="No Host Data" 

これが得られた:

------------------------------------------- 
| _time   | hosts    | 
------------------------------------------- 
| 2016-10-10 22:00 | host1, host2, host3 | 
------------------------------------------- 
| 2016-10-10 23:00 | hosta, hostb, hostc | 
------------------------------------------- 
| 2016-10-11 00:00 | hostf, hoste, hostd | 
------------------------------------------- 
| 2016-10-11 01:00 | No Host Data  | <---This _was_ the gap! 
------------------------------------------- 
| 2016-10-11 02:00 | host4, host5, host6 | 
------------------------------------------- 

をあなたはfillnullスタンザを省略した場合、それだけでそのセル内の空白値になります。

このソリューションは、あなたのデータセットでは機能するはずです。 1つは、Splunkが組み込みの_timeフィールドをタイムチャートに使用していることです。

[...] 
eval _time=time 

か、単に_time変数の代わりに、あなたの時間の計算の全てでtimeを使用して:あなたは、独自のカスタムフィールドラへ_time値を上書きする必要があるかもしれません。

希望に役立ちます!

+0

の名前を変更するか、出力の_timeフィールドの名前を「time」などの名前に変更することができます。 _time ASの名前を変更します。ドキュメントリンク:https://docs.splunk.com/Documentation/Splunk/6.5.0/SearchReference/Rename –

関連する問題