- 限定コンテンツへのアクセス
- 他ユーザーとのつながり
- あなたの体験を共有
- サポート情報の発見
この記事ではXQLを使って直近30日間アクセスのない端末を検索してみます。
直近30日間アクセスのない端末の定義は、
現在の時間とエンドポイントの管理情報の「Last seen」の時間差を取って30日以上開きのあるもの、
としています。
Last seenの詳しい説明はこちらを確認してください。
作成したクエリは以下のとおりです。
dataset = endpoints |
alter 30days_before_from_now = to_timestamp(add(to_epoch(current_time()),-2592000)) |
filter last_seen <= 30days_before_from_now |
fields endpoint_name ,30days_before_from_now, last_seen
実際にクエリを実行すると、直近30日間アクセスのない端末の名前、last_seen、今から30日前の日時が、
出力されます。
以下ではこのXQLクエリについて簡単に解説します。
まず、この部分ですが、
to_epoch(current_time())
current_time()関数で現在時間を取得し、to_epoch関数でepoch timeに変換します。
epoch timeに変換するのは、次のadd関数で時間を足し算するときに正の整数にする必要があるからです。
(epoch timeは正の整数)
次にadd関数でepoch timeに変換した現在時間から-2592000秒足した時間、つまり30日前の時間を求めます。
2592000は30日間を秒に直した数値(30days x 24h x 60m x 60s)です。
add(to_epoch(current_time()),-2592000)
その後to_timestamp関数で、epoch timeをタイムスタンプ型に変換し、
alterコマンドで30days_before_from_nowという変数に30日前の時間を設定します。
これでおおよそ30日前の時間が求められます。
alter 30days_before_from_now = to_timestamp(add(to_epoch(current_time()),-2592000))
30days_before_from_nowとlast_seenを比較し、
last_seenの方が小さいデータだけ、つまり30日前からアクセスのないデータだけに
フィルタリングします。
filter last_seen <= 30days_before_from_now
最後にエンドポイント名、30日前の時間、last_seen、3つのフィールドだけを抽出します。
fields endpoint_name ,30days_before_from_now, last_seen
XQLはWidgetにしてダッシュボードに埋め込めば、都度検索しなくても常時確認することができます。