Slide 1

Slide 1 text

Error Tracking for Logsを⽤いた バッチ処理のエラー監視 @Datadog Japan Meetup 2023 Fall Cloudbase 株式会社 @ryuke

Slide 2

Slide 2 text

2022年4月 株式会社メルカリ Microservice Platform CI/CD Kubernetes / Github Actions 2023年1月 Cloudbase株式会社 Platform / SRE チーム Go / terraform / Datadog SNS https://twitter.com/i_ryuke Pokemon Sleep 6645-5328-5408 スイカを転がすゲーム ブーム 現職 前職 @ryuke 岩井 ⿓之介

Slide 3

Slide 3 text

No content

Slide 4

Slide 4 text

システム構成

Slide 5

Slide 5 text

システム構成

Slide 6

Slide 6 text

スキャンワークフローをStep Functionsで実現 +

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Datadog導⼊により達成できたこと ● インテグレーションによりサービスの状態が⼀⽬でわかるように

Slide 9

Slide 9 text

Datadog導⼊により達成できたこと ● CloudWatch Logsを使っていたが、ロググループごとにしかログを確認で きなかった → ログを横断的に確認できるように

Slide 10

Slide 10 text

⼀⽅で、⼤量のデータを処理するバッチジョブに対する監視の課題 ● ⼤量のデータを処理する中で、どうしても⼀部のケースでエラーは発⽣する ○ APIのレートリミットや権限不⾜、想定していないパターンのデータ、避けられ ないヌルポ ● 個々のエラーは要対応ではあるが、寝ている⼈を毎回叩き起こすほどのものではない ● 既存のソリューションはうまくフィットしない ○ Step Functions インテグレーション: ジョブ単位の死活監視のみ ○ APM: 処理がリクエストごとに分割されていることが前提

Slide 11

Slide 11 text

監視要件 1. 各エラーが何件、どんな頻度で発⽣しているのかを可視化したい 2. 新しいパターンのエラーが発⽣したときに通知したい 3. 各エラーを調査するのに⼗分なコンテキストが得られること

Slide 12

Slide 12 text

監視要件 1. 各エラーが何件、どんな頻度で発⽣しているのかを可視化したい 2. 新しいパターンのエラーが発⽣したときに通知したい 3. 各エラーを調査するのに⼗分なコンテキストが得られること → Error Tracking for Logs がうまくハマった

Slide 13

Slide 13 text

Error Tracking for Logs

Slide 14

Slide 14 text

Datadog Error Tracking for Logs ● APM / RUM にもError Trackingはあったが、そのLogs版 ● Datadog Logsを活⽤していれば、最⼩限のセットアップで使い始めること が可能 ● 2022/11リリース ● 2023/10時点でβ機能

Slide 15

Slide 15 text

セットアップ ● 構造化ログのフィールドにエラースタックとメッセージを追加するだけ

Slide 16

Slide 16 text

1. 各エラーが何件、どんな頻度で発⽣しているのかを可視化したい ● コンテキスト情報を元に⾃動でグルーピングしてくれる ● それぞれの発⽣件数や頻度を可視化 ● ステータスのトラッキング ● regressionの検知

Slide 17

Slide 17 text

2. 新しいパターンのエラーが発⽣したときに通知したい ● 新規に発⽣したイシューに対してのみ通知を発⾏することが可能 ○ アラート疲れの防⽌ ● もちろん、既存のものを通知することもできる

Slide 18

Slide 18 text

3. 各エラーを調査するのに⼗分なコンテキストが得られること ● ログのフィールドとして好きな情報を⼊れられる ● 該当のログに対してフィルタリングやグルーピングを⾏なってドリルダウンしながら調査し ていく体験が最⾼

Slide 19

Slide 19 text

達成できたこと ✅ 1. 各エラーが何件、どんな頻度で発⽣しているのかを可視化したい ✅ 2. 新しいパターンのエラーが発⽣したときに通知したい ✅ 3. 各エラーを調査するのに⼗分なコンテキストが得られること

Slide 20

Slide 20 text

まとめ ● バッチ処理の監視に関して、全体に影響を与えないエラーの発⽣状況をう まくトラッキングしたいという課題があった ● Error Tracking For Logsを活⽤することで以下を実現 ○ エラーの⾃動グルーピングと発⽣状況の可視化 ○ 新規パターンの通知 ○ エラー調査のためのコンテキストの集約 ● β版ではありますが、とても便利な機能なのでぜひ使ってみてください!

Slide 21

Slide 21 text

ク ラ ウ ド 運 ⽤ を 安 全 に