はじめに
レバレジーズ株式会社 レバウェル開発部の山口です。 2024年10月に開催されたDatadog主催のイベント「Datadog Summit Tokyo」に参加しました。Datadogは監視ツールとしてだけでなく様々な活用方法があるということを知り、とても勉強になるイベントでした! その内容を皆さんに紹介したいと思います。
Datadog Summitの紹介
Datadogは、クラウドベースの監視(モニタリング)ツールです。システムやアプリケーションのパフォーマンスや動作状況をリアルタイムで可視化し、問題を早期に発見・解決するためのプラットフォームを提供してくれます。
そしてDatadog Summit Tokyoはオブザーバビリティの専門家やDatadogチームから直接学ぶことができる無料の1Day イベントです。 セッションでは他社のDatadogを活用した様々な取り組みを知ることができます。現場の生の声を聞く貴重な機会です。
参加の背景
Datadog使いこなせてないかも?
総合転職サービス「レバウェル」のスカウトサービスでは監視ツールとしてDatadogを利用しています。しかし導入以来あまりメンテされておらず、新機能はおろか基本的な機能もフル活用できていないように見受けられました。 もっと活用したらサービスの品質を高い状態で維持したり、障害発生時の復旧速度を上げられるのでは?というモチベーションでチームとして知識向上に取り組み始めていました。 そんな時にDatadog Summit Tokyoの開催を知り、「これは行くしかない!」と他メンバーを誘って一緒に参加することを決めました。
カンファレンス支援制度
レバレジーズではエンジニアの支援制度の一つに「カンファレンス支援制度」というものがあります。これは勉強会やカンファレンスの参加費の補助と、業務時間内での参加が可能になる制度です。今までこの制度を利用したことがなかったので、「せっかくなら使える制度はどんどん活用してチームのモチベーションも上げていこうぜ!」ということで業務として参加させてもらうことにしました。
セッション
イベントでは様々なセッションがありましたが、その中でも「Datadogってこんな使い方できるんだ!」という驚きがあったものを紹介したいと思います。 どのセッションも思わず聞き入ってしまうような内容だったので、ご興味ある方はぜひアーカイブ動画の視聴をお勧めします!
【Datadogダッシュボードで見える化する、新たなビジネス価値創造のチャンス】NTT Docomo - 野部 大貴 様
アーカイブ動画
こちらのセッションは大きく3つのテーマについて扱われました。
- 利用しているDatadogの機能
- ビジネス価値向上への貢献事例
- ダッシュボードとの向き合い方
この中でも特にダッシュボードに関するお話がとても勉強になりました。 全体的な内容をまとめつつ、「こんな使い方があったんだ」といったDatadogを使いこなすヒントになる情報を紹介していきたいと思います。
利用しているDatadogの機能
紹介のあった機能と主な使い方は以下の通りです。
- 障害検知にMonitor
- Slackへの通知
- 普段と挙動が違うときに通知(Anomaly機能)
- 分析にAPM
- どこの通信、サーバーで問題が起きているのかを特定
- 網羅的な情報のモニタリングにダッシュボード
- 意味のあるデータが整理整頓されている
- 用途に応じたダッシュボードを作成
この中で私たちもぜひ活用したいと感じた機能がAnomaly機能です。 AnomalyとはDatadogのMonitorの中の種類の一つであり、いわゆる異常検知モニターというものです。以下、公式サイトからの引用です。
異常検知は、傾向や、季節的な曜日や時間帯のパターンを考慮しながらメトリクスの挙動が過去のものとは異なる期間を認識するアルゴリズム機能です。これは、しきい値ベースのアラート設定では監視することが困難な強い傾向や反復パターンを持つメトリクスに適しています。
現在は主に閾値を用いた異常検知を行っていますが、アラートを鳴らす閾値を正しく設定するのが難しい場合もあります。例えば曜日によってアクセス数の傾向が大きく変わる場合などです。閾値が低すぎると偽陽性アラート(本当は問題がないのに問題があると通知する)が増えてしまいますし、逆に閾値が高すぎると異常を検知することができません。 Anomaly機能を利用すると過去のメトリクスをもとにパターンを学習し、そのパターンから外れた時にアラートを出してくれます。つまり「何かいつもと違う!」を検知することができます。より柔軟な監視設定をすることが可能になるため、ぜひレバウェルでも導入を検討したいです。
ビジネス価値向上を実現するためのダッシュボード作成
1つ前のテーマである「利用しているDatadogの機能紹介」でも触れられていましたが、情報の見える化・網羅的な情報のモニタリングにダッシュボードを活用しているというお話でした。
実際のビジネス価値向上事例
- 新機能であるd払いスタンプ機能をリリース
- モニタリングのためにダッシュボードを作成
- モニタリングの結果、決済数は増加しているが宝箱開封率が低い、つまりお得さを届けきれていないお客様がいることが判明
- 宝箱開封を促すメッセージ機能の実装で開封率が32.3%向上し、KPI改善に貢献
- システム担当が積極的にビジネス観点も見るようになった
この事例の中ですごいと感じたのが、新機能をリリースして終わりではなく、システム担当がしっかりモニタリングまで行っている点です。 モニタリングをする際はシステム観点(問題なく使えているか)はもちろん、サービス観点(目的達成に貢献できているか)で計測することを意識しているとのこと。 具体的にはユーザーストーリー毎にエラー数やレイテンシを計測し問題なくスムーズに使えているかを確認したり、アクセス数を計測してどのくらい使われているかを確認しているそうです。 Datadogで確認した情報がきっかけで新たな検討に繋がり、ユーザーへより良い価値を届けられるという点が非常に素晴らしいですね。
ダッシュボードとの向き合い方
1つ前のテーマでもあった「システム担当が積極的にビジネス観点も見るようになった」という変化は、ダッシュボードへの向き合い方が変わってきたからこその結果と考えているとのこと。 具体的な内容は以下の通りです。
- 価値に繋がるデータは何か、どんな見方が良いのかを徹底的に考える
- 機能が目標通り使われているか?(リクエスト数)
- 目標達成の見込みを把握できる
- 起動時間はどれくらいかかるのか(レイテンシ)
- 改善が必要な処理を特定する
- 多く使われる動線はどちらか
- ニーズが高い動線を把握可能
- 機能が目標通り使われているか?(リクエスト数)
- 今後の展望
- ダッシュボードURLを発行して共有することで様々な人と議論できる
- ビジネス担当にも広げていきたい
- 一緒にデータを活用するという意識を高めた
- 同じデータを見ることでシステム改善の速度が向上する
- システム担当とビジネス担当が一体となっていきたい
前半の「価値に繋がるデータは何か、どんな見方が良いのかを徹底的に考える」はエンジニアにとって非常に重要な視点だと感じました。 私たちのチームでも日々様々な施策の開発を行っていますが、1つ1つの施策の目的をしっかり理解できているだろうか?と思わず自問自答してしまいました。 目的を理解していなければ、顧客へ届ける価値に紐づくデータがなんであるかも分かりません。ここはチームでも改めて考えてみたいと思います。
後半の「今後の展望」ではシステム担当とビジネス担当が同じデータを見てサービス価値向上に努めていきたいというお話がありました。 これはDatadogが掲げる「Datadogを通じて同じデータを共有し、部門の壁を破壊する」というコンセプトともマッチするものだと思います。 発表の中でも触れられていたダッシュボードの共有機能も今まで使ったことがありませんでしたが、とても便利な機能ですね! この機能を使えばDatadogのアカウントを持っていないユーザーにも気軽にダッシュボードを共有することができます。 自分自身も部門や職種の壁を感じることは多く、ビジネスサイドがどのような数値を追っているのか明確には分からないというのが正直なところです。 開発サイドとビジネスサイドが同じデータを見て、同じ目標を追って施策を打てるように働きかけていきたいと思いました。
ワークショップ
午後はワークショップ「APMと分散トレーシング - 高品質なソフトウェアの提供」に参加しました。講義スタイルではなく、Datadog Learning Centerでワークショップ用のコースを1人で進めていき、分からないことがあれば個別に質問するスタイルでした。 Datadogを利用してオブザーバビリティを高めることで、いつどこで何が起こったのかを把握することができます。
ワークショップの内容に入る前に簡単にAPMとオブザーバビリティについて簡単に説明します。
APM(Application Performance Monitoring)
APMはアプリケーションのパフォーマンス監視機能のことです。アプリケーションのパフォーマンスと信頼性を監視、トラブルシューティング、最適化することが可能です。APMは、アプリケーション内の各リクエストの流れを詳細に追跡し、ボトルネックやエラーの特定、パフォーマンス向上に役立ちます。 より詳細な内容については公式を参照ください。
オブザーバビリティ(Observability)
オブザーバビリティ(Observability)とはシステムやアプリケーションの内部状況を外部から観測可能にすることです。つまりアプリケーションの中でいつ・どこで・何が起こったのか把握することを可能にします。 オブザーバビリティの実現には以下の三つを収集する必要があります。
- ログ
- メトリクス
- トレース
ログはアプリケーション内で発生したイベントの記録です。エラーログやアクセスログなどが該当します。 メトリクスはアプリケーションのパフォーマンスやリソース使用量を定量的に計測したものです。CPU使用率やエラーレートなどが該当します。 トレース(分散トレーシング)はリクエストがシステム全体でどのように処理されるかの流れを追跡するものです。リクエストに付与されたユニークなトレースIDを元に、処理時間などの情報を記録・収集します。
ワークショップの内容
ワークショップの内容は主に以下の通りです
- APMデータを収集するためにDatadog Agentを設定する
- RubyのアプリケーションにAPMを構成する
- PythonのアプリケーションにAPMを構成する
- Datadogを使ったアプリケーションのデバッグ
- ボトルネックを特定する
- 最適でないSQLクエリの検出する
- アラート設定を追加する
- 継続的プロファイリング
- ダイナミックインスツルメンテーションによるオブザーバビリティの向上
今まで知らなかった機能の中で「これいいな!」と思ったものがダイナミックインスツルメンテーションのプローブ機能です。 プローブを使用すると、プログラムの実行を停止することなく、コード内の特定のポイントからデータを収集することができます。イメージとしてはアプリケーションを止めずにデバッグできる感じです。またプローブの設定をするためにリリースする必要はないため、不具合調査のためにどうしてもこのポイントのデータをみたい!という時にコード内にログを仕込んでリリースする...などという手間がなくなります。 ただし現時点(2024/11/22現在)でダイナミックインスツルメンテーションのサポートはPython、Java、.NET、PHP で構築されたアプリケーションに限定されているなど、環境の制限があることに注意です。
余談
ご飯
イベントではなんと朝昼夕の3食が提供されました! 朝食はパンやハム、チーズに加えてフルーツも盛りだくさん
夜は懇親会 他社の方とSRE文化についてお話したりと有意義な時間を過ごすことができました。
Datadogのマスコットキャラクター「Bits」のチーズケーキ 可愛すぎて食べるのが勿体無い。。。(※3つ食べました)
AWS GameDay
お昼休みはAWS GameDayのスピードランに挑戦しました。 課題としてAWS LamdaとDatadogを連携したオンラインストアのアプリケーションが用意されており、設定のミスや問題点を見つけて修正していくという流れでした。 普段AWS Lamdaを使うことがないので解けるか心配でしたが、チームでも参加できましたしDatadogの方がサポートでついてくれていたので楽しく取り組むことができました!
Datadog認定プログラムを新たに資格取得支援制度の対象へ
レバレジーズのスキルアップ支援制度の一つに資格取得支援制度があります。これは業務遂行に必要・有益な資格について、受験費用や年間登録料、更新手数料を会社が補助してくれる制度です。 Datadogの認定プログラムは元々支援対象に入っていませんでしたが、Datadog Summit Tokyoの中で認定プログラムの紹介があったこともあり、業務に有益であると考えて追加申請を行いました。その結果無事に支援対象に追加されたため、Datadogのスキルアップの一環として認定プログラム受験がしやすくなりました!
まとめ
Datadog Summit Tokyoは想像以上に色々な情報を得ることができて有意義なカンファレンスでした。Datadogって色々な機能があるけど全然使いこなせていないな、、、という意識から、監視ツールとしての機能はもちろん、部門の壁を破壊するプラットフォームとしての役割を果たしてくれる協力なツールであるということに気がつきました。 特にダッシュボードを活用したデータの可視化は非常に有用であると感じたため、今後チームでも取り組もうと考えています。他にも今回は触れていませんがSRE文化の醸成に関するセッションなども非常に興味深く、どのセッションも学びのある有意義なものでした。ぜひ次回の開催にも参加したいです!
レバレジーズにはエンジニアのスキルアップを支援する様々な制度があり、またそれを活用して様々な挑戦を楽しむ開発メンバーがたくさんいます! そういったメンバーと一緒に仕事をしたい方はぜひエントリーお願いします!