書籍「入門 監視 モダンなモニタリングのためのデザインパターン」のまとめ
メトリクスは高頻度で取得する
最低でも1分に1回はメトリクスを取得すること。トラフィックが多いなら、10秒や30秒に1回は取得する。
メトリクスは2種類ある
カウンタ・・・増加していく指標。車の走行距離とか。サイト訪問者の累計数とか。
ゲージ・・・ある時点の数値。車の速度計とか。それだけでは過去のことはわからん。
ビジネスKPI
ビジネスKPI・・・ビジネスがよい状態であるために会社が重要と認識している指標、メトリクス。
経営者から見ると以下の視点が考えられる。
- ユーザーはアプリケーションやサービスを問題なく使えているか?
- 儲かっているか
- 成長か、縮小か、停滞か
- どれくらい利益が出ているか、収益性は改善しているか。
- ユーザーは満足しているか
上を判断すべく、必要な用語。
- 月次経常収益・・・顧客からの月ごとの経常収益。
- 顧客当たりの収益・・・顧客ごとの収益。年次が多い。
- 課金顧客の数・・・そのまま。多いほどいい。
- ネットプロモータスコア(NPS)・・・ユーザーの満足度。アンケートなどで判断する。
- 顧客生涯価値(LTV)・・・ある顧客の人生における価値の合計。
- 顧客当たりのコスト・・・顧客にサービスを提供するために、どれくらいのコストがかかっているか。低いほどいい。
- 顧客獲得単価・・・顧客を獲得するのに、どれくらいの金がかかるか。マーケには特に重要。
- 顧客の解約数・・・そのまま。離脱が多いのはよくない。
- アクティブユーザー数・・・1日、1か月などの複数の単位で判断する。
- 粗利・・・販売したもの(=売上)のコストを除いた利益のこと。SaaSなら8から90%。
KPI具体例
- 検索実行数
- 口コミ投稿数
- ユーザーのログイン数
- アクティブユーザー数
- チケット購入数
- チケット閲覧数
- チケット数
- アクティブなクリニック数
ビジネスKPIを技術指標に結び付ける
アプリケーションのそれぞれの処理が動いているというのが、基本である。ログインが失敗したり、チケット購入が失敗するということが多く発生すれば、メトリクスが取得できなくなり、それが売り上げの減少につながる。よって、各々の処理が正常に動いているかを把握するためのデータを取得するのがKPI実現に欠かせない。
- ログイン・・・ユーザーのログインの失敗率やログインのレイテンシ(通信の遅延時間)
- 口コミ投稿・・・口コミ投稿の失敗率や投稿のレイテンシ
- チケット購入・・・購入の失敗率や購入のレイテンシ
- チケット閲覧・・・チケット閲覧の失敗率や閲覧できるまでのレイテンシ
失敗率を測定することで、より目標達成に近づける。
ビルドとリリースのパイプライン監視
デプロイの前後で、APIの成功率が激減しているということがあったりする。デプロイのタイミング、ビルドのデータ、デプロイした人などを記録しておくとよい。
サーバ監視
- CPU
- メモリ
- SSL証明書・・・証明書の有効期限が近づいたら、通知する。
- メモリ
- Webサーバ・・・秒間リクエスト数(サーバの忙しさ)、HTTPステータスコード(500などが多くないか)。
- データベースサーバ・・・コネクション数、秒間クエリ数(データベースサーバーの忙しさ)
- ロードバランサー・・・フロントとバックのメトリクスをともに取得
- メッセージキュー・・・キューの長さ(待機中の処理)、消費率(実行率)
- キャッシュ(CDN、Redis)・・・キャシュから追い出されたアイテム数(多いとそれだけキャシュがひっ迫している証拠)、ヒットミス率
サーバ監視と機械学習
ログが膨大になるので、機械学習による異常検知がありうる。