3分で概要を掴む Observability と APM
はじめに
先日、StudyCoさん主催の勉強会に参加しました。
そちらで学んだことを備忘録がてらに記事にしたいと思います。
超絶ザックリに3分で読める程度の分量を目指します♪
そもそも
Observability や APM は運用フェーズで用いられる。
それぞれの意味は以下になります。
Observability ⇒ 可観測性
APM ⇒ アプリケーション性能管理(Application Performance Management)
スーパーザックリに言うと、
「最近のシステムは複雑になってきているから、いつでもシステムの状態を監視できるようにして、品質保とうぜ」
という話です。(と、私は理解している)
怒られそうなくらい要約したので、下でもう少しだけ詳しく説明します。
なぜ流行っている??
これらの単語が流行した背景には、システムのマイクロサービス化の流行があります。
昔: モノリシック中心
- 特定のシステムや基盤からのデータ収集
- あらかじめ決めた閾値を超えると障害アラートを出すため、対応が後手後手になりがち(事後的)
↓↓↓↓↓↓↓↓↓↓↓↓ アンチテーゼ!! ↓↓↓↓↓↓↓↓↓↓↓↓↓↓
今: マイクロサービス化
- 複数のシステム、基盤にわたるデータ収集
- データを監視して、障害が起きる前に対応しよう!!(積極的)
Observabilityとは??
Observability ⇒ 可観測性
可観測性とは、外部出力の情報からシステムの内部状態をどれだけうまく観測できるかを示す尺度のこと。
具体的には、以下の3つで評価する。
- メトリック(メトリクス)
- トレース
- ログ
メトリクス
AWSさんによると、以下。
メトリクスとは、リソースやアプリケーションに関して測定できる変数
cloudWatchでいうと、こういうやつのこと(オブジェクトの数や、リクエストの合計など)
トレース
マイクロサービス化で複数のサービスが連携するようになったので、リクエストにidを付与して、複数のサービス間でどの繋がっているかを見れるようにしたやつ(多分...)
AWSでいうと、X-Rayとかが、それにあたると思います。
ログ
ログとは、何時何分に、どのユーザーがどういう行動をしたかのデータ
cloudwatchでいうと、こういうやつ
APMとは??
APM ⇒ アプリケーション性能管理(Application Performance Management)
広義では、アプリケーションからインフラまでを監視、追跡し、システム全体のパフォーマンス問題の特定、支援する。(ゴールデンシグナルだけでなく、トレーシング、サービスマップ、エンドユーザーモニタリング、ビジュアルダッシュボードなど)
サービス影響の未然防止と迅速な問題解決を通じて、安定稼働を実現し、エンドユーザーのUX / 生産性の向上に寄与する。
どうやって監視すんねん問題
ツールを使って監視するのが一般的。
代表的なものは、以下。
- datadog
- dynatrace
- new Relic
- Instana
最近では、ユーザー体験がよりリッチになっているので、APMもより重視されてきている。
終わりに
もっと詳しく知りたい方は、こちらからどうぞ。
↑勉強会で使用していたスライドになります。
会社ではよくdatadogを使っているので今度、触ってみようかな。
Discussion