2019 年ももう12月ですね。 FOLIO アドベントカレンダー の 14日目です。
株式会社FOLIOでは、普段 SRE / Infra 的な業務をおこなっており、FOLIO でのインフラ環境の監視については、Datadog を全般的に採用しています。 ついこの間あった、AWS による re:Invent での発表ラッシュもすごかったですが、個人的には Datadog の 2019 年の新製品リリースのスピードもかなりすごいと感じており、振り返りも兼ねて 2019 年に発表されたプロダクトで特に気になったものをピックアップして紹介していきたいと思います。
ちなみに2019年のはじめには 2018 in review という記事も出ているので、きっと 2019 年のまとめも公式から出てくると期待しています。 www.datadoghq.com
Datadog synthetics
Datadog synthetics は個人的に待ち望んでいた外部監視系のサービスになります。 今まで HTTP のエンドポイント監視のためには、そのための Datadog agent を用意し、自分用意した外部環境から監視を行う必要がありました。 Datadog synthetics では Datadog が用意した各リージョンからの HTTP アクセスチェックを設定でき、設定したエンドポイントの継続的なレイテンシの監視やレスポンスコードの監視を行うことができます。
ただ、あまりに高い頻度でのチェックを設定したり、必要以上に複数リージョンから設定すると、ご検知が増えたり課金も増えるので、最小限の設定から行うのがおすすめです。
Browser test
2019 年のはじめには Datadog が Madumbo というアプリケーションテスティングのスタートアップを買収したというニュースが流れました。 その後すぐ、おそらく Madumbo のプロダクトをいい感じに Datadog プラットフォームに融合させた Browser Test というプロダクトが発表されました。
Browser Test では、GUI 上で、画面遷移を伴うステップ監視設定を行うことができ、各ステップごとで指定したタグ等が表示されているかどうかのアサーション設定も可能となっています。
また、
も可能となっており、リリース初期から完成度の高さを感じました。
また、設定した各ステップごとのスクリーンショットも確認できるので、後からどのような場面でテストに失敗したのか確認できるのも非常に楽で便利です。
Serverless
意外と監視が難しいのが serverless のアプリですよね。AWS との連携を設定している場合だと、連携した AWS アカウントで使用している lambda をこの Serverless の画面で一覧で確認することができるようになります。 また、
- 呼び出し回数 (Invocations)
- 平均実行時間 (Duration)
- エラー数 (Errors)
のような情報も簡単に確認できるようになります。
Metric from logs and Log Rehydration ™
Datadog logs はログ収集のための特別なクラスタの設定や管理も必要なく、ログデータを送るだけで イイカンジにログを見れるようにするしてくれるプロダクトで、FOLIOでも活用しています。
もともと Datadog logs では、課金はかかるもの、最大 30日間ログを保存し、確認することができました。 Log Rehydration という機能は、この Datadog logs に送られたログを S3 にアーカイブし、必要になったタイミングでアーカイブから指定した期間のインデックスを復元してログ検索等を行うことができる、といったものになっています。 Datadog logs に最大保持期間を超えて、必要なタイミングで Datadog logs のインタフェースを使用できるのは使いやすくて良さそうですね。
Service SLO
モニタの SLOを定義し、決められた期間内 (7日, 30日, 90日) でのサービスレベルの確認と、SLO に対して現在残っているエラーバジェットの確認もできる機能も発表されました。 対象となるエンドポイントを synthetics で定義しておくことで、各エンドポイントのサービスレベルが低下しているのか、目標を維持しているのかを一目で確認できるようになります。
Network performance monitoring
Network performance monitoring 用の追加のエージェントをインストールし、Datadog agent で設定することで、各インスタンスがどういったところにアクセスをしているのか、どのようにネットワークを使用しているしのかをモニタリングできる機能となっています。
Network Performance Monitoring Installation にも書かれていますが、 Linux kernel の eBPF の機能を使用しているため、各ディストリの新しめのバージョンが必要となっているのに注意です。
ところで、Network performance の Map とか、APMの service map もそうなんですが、こういった Map 描画系のものすごい綺麗に描画されてる印象なんですが、なにかライブラリ公開されてたりするんだろうか。
Security monitoring
こちらはまだ Private Beta 中とのことなので、アナウンスだけ出たものですが、Cloudtrail のログなどの Audit 関連のログを使用し、セキュリティ関連の検知を行ってくれるサービスのようです。
Datadog のポートフォリオがセキュリティ分野まで拡充していくことで、Datadog だけで完結するのはすごく良いですね。(できれば課金もそのままにしておいてくれれば...
Real user monitoring
今までのモニタリングといえば、サーバにインストールした Datadog agent からのモニタリングがメインでしたが、ユーザのブラウザ環境で実行されるSDKを元に、今まで取れなかったクライアントサイドのメトリクスやログを収集するのが Real user monitoring の機能です。ざっくり言ってしまうと、Sentry のような機能なのかな?
クライアントサイドのメトリクスを取れるようになることで、CDN等も考慮した上でのパフォーマンス確認が可能になりますね。
まとめ
こちらで紹介したものについては、夏に行われた Datadog のカンファレンスである Dash 2019 にて発表されたものが多いのですが、まだリリースされていないものも多くあるようなので、2020年のリリースも楽しみですね。
9月には NASDAQ への Datadog 上場イベントもありました。 似たようなモニタリングSaaS サービスを提供している会社だと New Relic や PagerDuty が米国市場で株式公開していますが、今後も管理系のサービスが盛り上がり、楽になった分の時間で自分たちの必要な開発に時間を割いていければなと思います 🙏