書籍「入門 監視 モダンなモニタリングのためのデザインパターン」のまとめ

メトリクスは高頻度で取得する

最低でも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)・・・キャシュから追い出されたアイテム数(多いとそれだけキャシュがひっ迫している証拠)、ヒットミス率

サーバ監視と機械学習

ログが膨大になるので、機械学習による異常検知がありうる。