🔎

Log Analytics を試してみる

2023/03/29に公開

こんにちは。Enabling team の山本です。

「負の整数」を初めて学んだ時のことを覚えていますか❓

マイナス×マイナス=プラス
になる理由など。

娘の中学準備で数学を改めて学ぶと、自分は形式的に覚えていただけなんだな、、と思いました。
それなりの成績しか取れないはずだ 🙀、、

日常に、見逃していた学びがありました。

さて、今回は、Log Analytics について書きます。

この記事の作成時点で、 asia-northeast1 が利用可能になりました。

個人的には、Log Explorer の機能は、充実しており、問題なく使える状態でした。
特に、Log Based Alerts は、Security 対策に重宝しています。

今回、Log Analytics を試すモチベーションは、アドホック分析です。

例えば、以下のような調査の依頼が最近よくあります。

  • ◯◯ エラーの時間帯別の発生件数。
  • ◯◯ の平均。

TL;DR

  • グループ化、平均など SQL ならではの機能が嬉しい。
  • 表示対象のフィールドを絞れるので見やすい。
  • Log Explorer にある機能の一部(Log based alert など)は、今のところ無い。

比較

Filter resource label

  • Log Explorer
    severity>=ERROR
    AND jsonPayload.message:"ホゲホゲ"
    

  • Log Analytics
    SELECT
      timestamp,
      JSON_VALUE(json_payload.message) as message
    FROM
      `hoge.global._Default._AllLogs`
    WHERE
      timestamp >= TIMESTAMP("2023-03-27 16:18:00", "Asia/Tokyo")
      AND timestamp <= TIMESTAMP("2023-03-27 16:20:00", "Asia/Tokyo")
      AND severity IS NOT NULL
      AND severity IN ('ERROR')
      AND JSON_VALUE(json_payload.message) LIKE "%ホゲホゲ%"
    

Group

  • Log Analytics
SELECT
  count(*) as count
FROM
  `hoge.global._Default._AllLogs`
WHERE
  timestamp >= TIMESTAMP("2023-03-27 16:18:00", "Asia/Tokyo")
  AND timestamp <= TIMESTAMP("2023-03-27 16:20:00", "Asia/Tokyo")
  AND severity IS NOT NULL
  AND severity IN ('ERROR')
  AND JSON_VALUE(json_payload.message) LIKE "%ホゲホゲ%"

まとめ

Log Analytics について書きました。
これを書いている時点では、あーでもない、こーでもない、と色々試してる段階です。
このあと、色々書き足していこうと思います。
集計・平均・フィールドでの並び替えを使えることで、不正や異常など、その時々の要件に対応できるため、有用だと感じました。

Discussion