Analyticsの情報をMackerelに監視させようMackerelMackerelアドベントカレンダー6日目です。id:buty4649さんによるmackerelメタデータでパッケージ一覧を管理するCLIツールを作ったでした。id:syou6162です。10月にMackerelチームにjoinしました。今回は生活に関するあれこれをMackerelに監視させると便利!という軽い話を紹介します。私はライフログを集めるのが好きで、twitterの発言、歩いた歩数、預金残高などなど取れそうな情報をひたすら自宅のElasticSearchに保存しています。そのデータをkibanaで可視化したり検索すると、月や年単位での振り返りが簡単にできます。ElasticSearchはこのように可視化や検索は得意なのですが、一点問題があって、数値がある閾値を越えたときの通知ができないという問題がありました。自分に関する多様なデータを貯め込んでいると通知して欲しくなる状況は結構あり、例えば「nasneの残量が減って、録画できなくない状況になる前に通知して欲しい」などの状況があります。最初はslackへの通知を自分で書いていたのですが、真面目に書くと割と面倒になってきたので(例えば60分おきの通知の再送など)、通知部分をmackerelに任せることにしました。方法は色々ありますが、今回はホストのカスタムメトリックとして投稿するやり方でやってみます。mackerel.ioagentの設定ファイルに指定されたフォーマットを吐くようなコマンド(スクリプト)を用意するだけなので簡単ですね。nasneの容量の場合、スクリプトを用意するまでもなく、こんな感じでワンライナーで投稿することができます。+%s`\""これで1分置きにnasneの残り容量が分かり、監視設定をすれば容量が足りなくて「逃げるは恥だが役に立つ」が予約できなかった、という事態を防ぐことができます。slackへの通知も簡単にできるので、家庭内のslackに通知すればITにそれほど詳しくない妻も簡単に状況が分かります。実際の我が家のnasne残量の推移はこんな感じになっています(2-3日に1回は通知がくるような残量を推移しています...)。ライフログの取得にはjenkinsを活用しているのですが、ジョブの数が50個を越えてきたため、個別に通知されると見るのも大変です。そこで、成功/失敗の数もmackerelのカスタムメトリックで監視させています。nasneのときと同様にagentの設定ファイルに簡単なワンライナーを書けばOKです。+%s`\""成功/失敗の数のグラフは下の図で、安定していますが、瞬間停電でjenkinsを走らせている自宅macが落ちてしまったときにすぐ気づくことができ、長期間ライフログの失敗に取得していた、という事態を防ぐことができました(connectivityの通知でも気づくことができます)。Analyticsはリアルタイムに現在の訪問ユーザー数を知ることができるので見ているだけでも楽しいですが、「頻繁に見ていては仕事にならん、炎上しそうになってる(?)とき教えてくれ!」というのができると楽しそうと思ってやってみました(完全にネタです)。Analyticsの情報を取得するものがあったのでそれを使います。Script(javascriptと似たようなもの)を定期的に動かすことができる機能があるので、それを使って最近の訪問者数をmackerelに投稿させましょう。スクリプトはこんな感じです(ネタなので、かなり適当に書いています...)。Spreadsheetで15分に一度くらい実行させておけばまぁよいでしょう。こんな感じで、炎上してそうかどうかも簡単に通知させることができます(実際はRTされてバズったとかですが)。機械学習の分類器の性能をサービスメトリックとして投稿/監視ネタ要素を書いたので、最後は真面目なネタを書きます。最近は機械学習をサービスに導入する企業も大分増えてきたので、この分類器の性能はいい/悪いといった情報がどんどん流れてきます。Webサイトの訪問者数の増加によってサーバーのCPU率が上がっていないかどうかを(mackerelで!)監視したいのと同様に、機械学習の分類器(回帰も)の性能も刻々と追加/修正される教師データやチューニングの状況によって変化するため、これもmackerelで監視できるとうれしいでしょう。サービスメトリックに投稿するようにしましょう。PerlやRuby、Goなど様々な言語からサービスメトリックの情報を簡単に取得/追加/更新/削除することができます。version)例えばPerlで機械学習の分類器のF値などを投稿するスクリプトはこんな雰囲気です。]);社内ではまだ導入していませんが、勉強会で雑談するときのエントリを推薦するbotを作ったので、この精度を投稿させています。アノテーションの基準を特に決めていなかったために、教師データを増やしていっても精度がかえって落ちていっているという悲しい状況をmackerelは教えてくれます。まとめ今回は大まかに3つほどmackerelに様々なメトリックを投稿/監視させる方法を書きました。Spreadsheetからメトリック投稿ができる、ということが分かっていただけたかと思います。このようにお手軽なところからmackerelを使っていただき、mackerelの本業であるサーバーの状態監視も体験してもらえるとうれしいです。明日はhtnosmさんです。特定のエンドポイントに毎秒XリクエストをY秒流した結果...2017-11-222017年の振り返り技術編ふと思いたったので書く。(1)スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。