【読書メモ】モニタリングでの4大シグナル/USEメソッド/REDメソッド

f:id:febc_yamamoto:20190217131709j:plain

最近、監視やモニタリング熱が自分の中で高まってきてます。
その一環で先月"Prometheus Up & Running"を購入しました。

Prometheus: Up & Running: Infrastructure and Application Performance Monitoring

Prometheus: Up & Running: Infrastructure and Application Performance Monitoring

少し前にようやく届いたので読んでいってます。

今回は読書のメモとして調べたサイトなどを残しておきます。

Prometheus Up & Runningに出てくるUSEメソッド/REDメソッド

とりあえずPrometheus Up & Runningのchapter3まで読みました。
chapter3ではREDメソッドUSEメソッドというものが登場します。

「これモニタリングの文脈でよく見かける気がする…」

と思い、どこで読んだのか思い出してみた(調べた)ら、最近読んだものではこちらの記事にありました。

blog.freshtracks.io

とくにこの連載記事の第2回でUSEメソッドとREDメソッドについて詳しく扱われてます。

blog.freshtracks.io

こちらの記事では、モニタリングの取り掛かりとして複雑で多種多様なメトリクスを抽象化する方法について扱っています。

そのため方法として以下の3つが挙げられています。

  • The Four Golden Signals(4大シグナル)
  • The USE Method(USEメソッド)
  • The RED Method(REDメソッド)

The Four Golden Signals

こちらはみんな大好きSRE本ことSite Reliability Engineeringに載ってるやつです。

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

SRE サイトリライアビリティエンジニアリング ―Googleの信頼性を支えるエンジニアリングチーム

日本語版だと6章 分散システムのモニタリング - 4大シグナル(P.62)です。

4つのシグナルとは、

  • Latency (レイテンシ)
  • Traffic(トラフィック)
  • Errors (エラー)
  • Saturation(飽和状態)

で、とりあえずこれを見とけって指標ですね。

これらを実際に見ようとした時、どのメトリクスをどのように見ればいいのか悩むかもしれません。(元記事も悩んだと書いてますね)
特にSaturationって難しいですよね。

これを考える際の指針となるのがUSEメソッドだそうです。

The USE Method

The USE MethodとはBrendan Gregg(@brendangregg)氏により提唱されたシステムのパフォーマンス分析の方法論だそうです。

元記事: www.brendangregg.com

一言でまとめると

すべてのリソースについて、使用率(Utilization)、飽和状態(Saturation)、エラー(Errors)を確認する

でしょうか。それぞれの頭文字をとってUSEメソッドと呼んでるのですね。

さらに次の定義が続きます。

  • リソース(Resources):すべての物理サーバーの機能コンポーネント(CPU、ディスク、バスなど)
  • 使用率(Utilization):リソースが処理中でbusyだった時間の平均
  • 飽和状態(Saturation):リソースにサービスできない余分な作業がある度合い。(処理できてないものは大抵キューに入れられいる)
  • エラー(Errors):エラーイベントの数

具体的な指標も例示されてます(ディスクの使用率であればデバイスがビジーな割合を見る、飽和状態であればwatiキューの長さを見る、など)ので元記事は目を通しておいた方が良さそうです。

The RED Method

次にUSEメソッドが対象とする(物理的な)リソースの上で動くアプリケーションをどうモニタリングするかですが、 このためにThe RED Methodが紹介されています。

The RED MethodとはTom Wilkie(@tom_wilkie)氏によるマイクロサービスのモニタリングのための方法論だそうです。

grafana.com

www.weave.works

こちらは全てのマイクロサービスが測定すべき指標を以下のように定義しています。

  • レート(Rate) - 秒あたりのリクエスト数
  • エラー(Errors) - リクエストの失敗数
  • 時間(Duration) - リクエストの処理にかかる時間

USE vs RED ??

“The USE method is for resources and the RED method is for my services”  — Tom Wilkie

だそうで、両方一緒に使うべき、だそうです。

先ほどのGrafanaのブログでもTomの発言が載ってますね。

Tom recommended using the USE and RED Methods together. “It’s like the RED Method is about caring about your users and how happy they are,” Tom said, “and the USE Method is about caring about your machines and how happy they are. It’s really just two different views on the same system. They’re complimentary.”

終わりに

もうちょっと英文読む速度上げないと色々追いきれない。。。

以上です。

入門 監視 ―モダンなモニタリングのためのデザインパターン

入門 監視 ―モダンなモニタリングのためのデザインパターン