SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

大規模解析サービスを支えるGCP活用事例

大規模解析サービスを支える監視サービスと監視構成のポイント

大規模解析サービスを支えるGCP活用事例 第5回

監視のポイント

 監視のためにメトリクス/ログに対してアラートを設定しますが、以下のようなポイントを意識することが大切です。

対応不要なアラートは設定しない

 対応不要なアラートが大量に流れてくると、本当に対応が必要なアラートが埋もれてしまうと同時にアラートに対する緊張感がなくなってしまいます。

 これらは問題への対応スピードを下げてしまう恐れがあるので、調査などの何かしらの対応が必要なもののみアラートを設定することが重要です。

 Datadogには閾値、異常値、外れ値など様々なアラートトリガーが設定できるので、必要なアラートを比較的容易に設定することが可能です。

アラートへの対応を明確にしておく

 アラートへの対応をあらかじめ明確にしておくと、問題解決までのスピードを上げることができます。特に問題が発生している時は余裕がないことも想定されるため、事前の準備をしておくことは大切です。

 例えばKARTEではDatadogのダッシュボードとアラートメッセージを利用することで、アラート発生時に以下のような通知を行い対応の明確化を行っています。

 ダッシュボードは問題箇所を簡単に把握できるように作成しており、以下のように複数種類作成しています。

  • 問題が発生しているコンポーネントを把握するための、サービスの全体感が見えるダッシュボード
  • コンポーネント内の問題箇所を把握するための、コンポーネントごとのダッシュボード

 最適なダッシュボードを選択すれば数分で問題の切り分けが完了することもあるので、ダッシュボードの作成はとても重要になります。

 また、アラートによってある程度ダッシュボードの確認ポイントが決まっているので、確認作業の定型化が可能です。

 そこでアラートメッセージには

  • 最適なダッシュボードのURL
  • ダッシュボードの確認ポイント

 を記載するようにし、エンジニアはそれにベースに対応を行うようにしています。

 これによりアラート発生時に均質化された、スピーディな対応を行うことができます。

通知先は重要度で分ける

 問題を知るべき人は複数いると思いますが、その人たちはエンジニアであったり、セールスだったり役割が異なる人達です。その全員が同じレベルで問題を知る必要があるかと言えばそうではありません。

 例えば、エンジニアに内部SLOに基づく厳しめのアラートを通知するのは、外部SLOを守る上で有効ですが、セールスにそのアラートを通知してもあまり有効ではあるとは言えません。外部から見てサービスは正常であるからです。

 一方で外部SLOに満たない場合は顧客へのサポートなどが必要になってくる場合があるので、エンジニアだけでなく、セールスにも通知が必須になります。

 私たちは社内のコミュニケーションツールであるSlackをベースに、以下のように緊急度に応じて、通知先/通知方法を分けて運用しています。PagerDutyとStatuspageというクラウドサービスを活用しているのがポイントです。

PagerDutyとは

 PagerDutyは、インシデントマネジメントのためのクラウドサービスです。

 API経由で登録済みの電話番号に電話をかけることができる機能が存在し、KARTEではこの機能を主に利用しています。

 PagerDutyはDatadogと連携が可能なので、以下の図のようにDatadogのアラートをトリガーに担当のエンジニアに電話をかける仕組みを実現しています。

 また、LogDNAにもPagerDutyとの連携機能が存在するので、Datadogと同様の仕組みを作っています。

Statuspageとは

 Statuspageは文字通り、サービスのステータスページを簡単に作れるクラウドサービスです。

 以下のようにサービスの稼働状況や障害情報を掲載することができ、KARTEではユーザへの障害通知は主にStatuspage経由で行っています。

 この稼働状況や障害情報の更新はAPI経由で実行できるので、ユーザへの通知を自動的かつ最短で行うことができます。

 StatuspageはDatadogとは直接連携ができませんが、PagerDutyとは連携が可能なので、以下の図のようにPagerDutyをハブにしてDatadogからのアラートをトリガーに稼働状況や障害情報の更新をしています。

次のページ
監視の全体構成

この記事は参考になりましたか?

大規模解析サービスを支えるGCP活用事例連載記事一覧

もっと読む

この記事の著者

竹村尚彦(株式会社プレイド)(タケムラ ナオヒコ)

 株式会社プレイド エンジニア 2014年からプレイドで、インフラを中心にKARTEの裏側を全般的に担当。 プレイド入社前はNECにてクラウドサービスの立ち上げにエンジニアとして従事。 2011年、同志社大学工学部を卒業。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/10674 2018/03/07 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー