これはMackerelアドベントカレンダー 3日目の記事です。
昨日は tanakahisateru さんの記事でした。
ぼくはMackerel開発チームのディレクターをしている、id:daiksy です。
Mackerel開発チームでは、ドッグフーディングも兼ねて様々な場面でMackerelを活用しています。今回は、ディレクターの立場での活用をご紹介したいと思います。
サービスの利用状況をMackerelでトラッキング
ディレクターとして、Mackerelというプロダクトをマネージメントしていくためには、プロダクトについての様々な数字を見ていく必要があります。プロダクトの成長戦略にも関わる部分なので、詳細をすべてお話することはできませんが、主な部分では、Mackerelがどのくらい実際に利用されているのか、というものがあります。
たとえば、Mackerelにメトリックを送っているアクティブなagentはどのくらいあるのか。それぞれどのようなOSで利用されているのか。新しくリリースした機能はどういう推移で利用が拡がっていくのか、などです。
チームでは、このような情報をMackerelのサービスメトリックを用いて可視化しています。
たとえば、上記のグラフはAWSインテグレーションの利用状況を可視化したものです。マネージドサービスごとに色分けして、利用数をグラフ化しているので、それぞれの機能のリリースタイミングによって段階的に利用者が増えていく様子が概観できます。
Mackerelの各機能がどのくらい使われているか、という情報は、Mackerelのデータベースから各機能のテーブルを参照することで件数などが取得できるので、定期的にSQLを実行して集計し、サービスメトリックへ結果をポストするスクリプトを社内で動かしています。
サービスメトリックはAPIから簡単に投稿することができます。
Mackerelでサービスを作成し、サービスメトリックがまだ1件もポストされていない状態で、サービス詳細画面のサービスメトリックタブを見ていただくと、curlコマンドを使ったサービスメトリックのポストの例が表示されるので、そちらも参考にしてみてください。
サービスメトリックとグラフボードでの情報整理
はてなでは、会社全体で1つのMackerelのオーガニゼーションを利用しています。そのうえで、はてなブログやはてなブックマーク、といったプロダクトごとにMackerelの「サービス」を作成しています。Mackerel自身もそのうちの「サービス」のひとつとして管理されています。
Mackerelの「サービス」や「ロール」については以下のヘルプが詳しいです。
この「サービス」には、ホストやロールのグラフとは別に、「サービスメトリック」という任意の時系列データを投稿できる機能があります。
さきほどお見せしたAWSインテグレーションのグラフは、このサービスメトリックを使ってグラフ化しています。
サービスメトリックは任意の時系列データをポストできるので、Mackerelの運用にあたって、システムの健全性を確認する目的でも利用しています。たとえば、アクセスログの結果を集計し、レスポンスコードの2xx, 4xx, 5xxのそれぞれの件数を投稿。4xxや5xxのレスポンスの数が閾値を越えたらアラートを通知する、などです。
このようにサービスメトリックを使って、Mackerelでは様々な情報をグラフ化し、監視をしているのですが、ディレクターとしてサービスの利用状況を把握できるグラフだけを見たい、という用途があります。そこでぼくは、グラフボード機能を使って、自分が普段見たいグラフだけを抜き出して一覧化しています。
ちなみに、これはサービスメトリックに投稿している、グラフボードの利用数の推移を可視化したグラフです。このように順調に利用が増えており、たいへん便利な機能ですので、ぜひご利用ください。
Mackerelアドベントカレンダー。明日は ore_publicさんです。よろしくお願いします。