メトリックの種類

この記事は、Mackerel アドベントカレンダー(全部CRE)の6日目の記事です。 今回は、Mackerelで取ってこられるメトリックの種類と簡単な概要についてまとめます。

Mackerelでは、まずはメトリックを取ってくることから始まります。 メトリックを取得する方法はいくつかあります。

システムメトリック

Mackerelのエージェントをメトリックを取得したいサーバー上にインストールすると、エージェントが標準でいくつかのメトリックを取得してきます。項目はOSによってことなりますが、たとえば、ロードアベレージ、CPU使用量、メモリー使用量、ディスクIO、ネットワークインターフェースの使用率、ファイルシステムの容量などが取得できます。 これらのエージェントが標準で取得するメトリックをシステムメトリックと読んでいます。

f:id:missasan:20181130144154p:plain

カスタムメトリック

Mackerelには、OSやミドルウェアに特化したより詳細なメトリックを取得するための公式のプラグインがたくさんあります。

mackerel.io

インストールはとても簡単で、Linuxサーバーなら yum コマンドでインストールできます。 Windowsサーバなら、よく使うものはエージェントに同梱されています。 このプラグインを利用して取得されたものは、Mackerelではカスタムメトリックとして扱われます。

f:id:missasan:20181130144114p:plain

ちなみに、ホスト上のエージェントを介して取得できるこれらシステムメトリック、カスタムメトリックを合わせてホストメトリックと呼ぶこともあります。

サービスメトリック

システムメトリックやカスタムメトリックは、エージェントを介して投稿され、エージェントが動くホストに紐づくメトリックです。 サービスメトリックは、エージェントを介さずにMackerelのAPIを利用して投稿するメトリックになります。 メトリックを投稿する際は、投稿する先のサービスを選びます。

サービスメトリックは、以下のようにサービス詳細にて確認できます。

f:id:missasan:20181130144638p:plain

この例は、HTTPのレスポンスタイムですが、他にも、PVやビジネスのKPIなどアイディア次第でいろいろなメトリックをMackerelに投稿、グラフ描画できます。 APIを実行する場所も、サーバー上でアプリケーションを動かしたり、AWS Lambda や GAS などサーバーレスで実行できるサービスを利用したりと方法は問いません。

まとめ

f:id:missasan:20181204010357p:plain

  • システムメトリック:mackerel-agentが標準で取ってくるメトリック
  • カスタムメトリック:mackerel-agentのpluginで取ってくるメトリック
  • サービスメトリック:ホストに依らないAPIを叩いて投稿するメトリック

次回は、Mackerelでサービスの異常に気づくための監視ルールと、チェックプラグインについてまとめます。