はじめに
AWSでシステムを運用する場合、datadogを使用したモニタリングをする機会があると思います。
今回の記事では自分がdatadog agentを使用してインスタンスのメトリクスを収集しようとした時調べたことをまとめていこうと思います。
メトリクス収集のアーキテクチャ
アーキテクチャは大きく分けると二つの領域で構成されます。
- AWS Cloud内のEC2インスタンス
- Datadog
それぞれの構成を見ていきましょう。
EC2インスタンス内の構成
EC2インスタンス内には以下のリソースが存在します。
- アプリケーション
- 今回モニタリングしたいアプリケーション
- システムメトリクス
- CPU使用率
- メモリ使用量
- ディスク使用状況
- ネットワークトラフィック
- Datadog Agent
- メトリクス収集を行うエージェント
Datadog内の構成
Datadog内では大きく三つのコンポーネントがメトリクス収集に関わってきます。
- Datadog Invoke API
- メトリクスの受け口となるAPI
- Metric Storage
- メトリクスを保存するストレージ層
- Monitoring Engine
- メトリクスの評価とアラート生成を行うエンジン
データ収集の流れ
では実際にデータ収集がどのように行われ、モニタリングができるようになるのかの処理の流れを見ていきます。
- 初期収集
- Datadog Agentは定期的にシステムメトリクスを収集する
- デフォルト設定は10s
- アプリケーション側からもカスタムメトリクスを収集することが可能
- 収集されたメトリクスは一時的にエージェント内でバッファリングされる
- Datadog Agentは定期的にシステムメトリクスを収集する
- データ転送
- バッファリングされたメトリクスはhttpsでDatadog Invoke APIに送信される
- データ処理
- Invoke APIで受信したメトリクスはMetric Storageに保存される前に必要な前処理が行われる
- モニタリング
- Monitoring Engineが保存されたメトリクスを継続的に評価する
- 設定された閾値に基づいてアラートが生成される
まとめ
Datadog Agentを使用したメトリクス収集の仕組みはシンプルかつ効果的な監視体制を構築することができます。