こんにちは。Mackerelチームで CRE(Customer Reliability Engineer)をやっている id:a-know です。この記事は、Mackerel アドベントカレンダー(全部CRE)の1日目の記事です。
このアドベントカレンダーは、その名前のとおり、もうひとりのCREである id:missasan とともに、CREだけで Mackerel の話題をお届けし続けるものになる予定です。今日からクリスマスまでの25日間、駆け抜けていきたいと思います!どうかお付き合いいただけたら幸いです!
今日は、「2018年の Mackerel のアップデート内容をふりかえる」と題して、今年・2018年におこなわれた Mackerel のアップデートのうち、特に主要なもの・便利なものをダイジェストでお届けしたいと思います!
2018年の Mackerel のアップデート内容のダイジェスト!
プラグインの実行タイムアウト秒数を設定できるようになりました
2018年一発目のリリースとして mackerel-agent がアップデートされ、mackerel-agent に設定するプラグインに対してタイムアウト秒数を設定できるようになりました。
mackerel-agent に設定できるプラグインとはつまり、特定のフォーマットで標準出力したり、終了コードを返したりできる、単一で動作可能な小さなプログラムです。プラグインの中では、監視対象のメトリックを取得したり、チェック処理をおこなうわけですが、設定されたプラグインはデフォルトで毎分、実行されるので、30秒というタイムアウトもデフォルトで設定されています。このタイムアウト秒数をカスタマイズできるようになった、というのが、このリリースです。
[plugin.metrics.get-metrics] command = "ruby /path/to/get-metrics.rb" timeout_seconds = 45
タイムアウト秒数として 60
よりも大きな値を指定することもできてしまうのですが、各プラグイン実行の多重起動の制御はしない仕様になっているので、日常的に1分を超える時間がかかるような処理の場合にはどんどんプラグイン実行プロセスが滞留していってしまいますので、その点は注意が必要です。
メトリック保持期間と1分粒度メトリックを確認できる期間を拡張しました
自分でこの記事を書いていて、「うおお、これ、今年のアップデートだったのか......!」となってしまいました。それくらい、今となっては身近な機能(仕様)なのではないでしょうか。
1分粒度のデータが460日間保持されるようになりました。460日というのはつまり、1年間 + 1四半期。「去年の今頃に打った施策(キャンペーンとかCM放映とか)を今年もやりたい。それに向けてインフラの体制も備えたい」、そういったときにとても心強いデータの拠り所としてもらえるかと思います。
アカウントを持っていない人ともグラフが共有できるようになりました
つまり、URLを知っていれば誰でもそのリソース状況などをグラフで把握することができる機能です。
「CPU使用率とかを外部に公開してもなぁ......」と思われたそこのあなた!Mackerelでは、サーバーに依存する情報に依らない、任意の数値も扱える「サービスメトリック」機能があることをお忘れではないでしょうか!
そのサービスの登録ユーザー数、PV数、売上高など、あらゆる数値を Mackerel で管理することが可能です。ユーザー・外部に共有しても問題のない数値をサービスメトリックとして登録し、そのグラフをサービスサイトなどに登録することで、サービスの盛り上がりなどを簡単に外部と共有することができると思います!(外部共有はグラフ単位でおこなえるので、その点でも安心です!)
チャンネルにグラフを投稿する際にメッセージを書けるようになりました
今年も多くの方に Mackerel を紹介してきましたが、そのときお伝えしているのが、「Mackerelはサーバー監視サービスですが、それだけではありません」「Mackerelをきっかけに、チーム内のコミュニケーションの活性化につながると嬉しいなと思ってます」ということ。このアップデートは、まさにそれを体現するものだと思っています。
slackなどの登録済み通知チャンネルに対してグラフの状況を投稿して共有する際に、「アラートにはなってないんですけど、このグラフの波形、大丈夫ですかね?」といったメッセージも一緒に投稿することができる機能です。ちょっとしたアップデート内容ではありますが、私はこうしたアップデートこそ大事だと考えていますし、こうした機能要望については、ひとつでも多く開発チームにフィードバックしユーザーのみなさんのもとに届けていきたい、と考えています。
フィードバック(「サポートチームへ連絡」)フォームを改善しました
改善しました。僕はサポートチームのリーダーも務めていますが、正直なところ、「それ、ヘルプにも書いてあるよ!」というお問い合わせも多いです。笑
ぜひそうしたお問い合わせはヘルプで完結していただきたい、そういう願いのこもったアップデートです。お問い合わせの前に、ぜひまず一度ヘルプ検索を!
アラートグループ機能をリリースしました
個別のアラートをロール / サービス / 監視ルール、それぞれの単位ごとにまとめられるアラートグループ機能がリリースされたのは、今年の7月2日のことでした。
そして、Mackerelが毎週コツコツと積み上げてきた「毎週の新機能リリース・継続記録」が200週に到達した節目のアップデートでもあります。めでたい!!
そしてアラートグループというこの機能自体も、Mackerelにとって念願の機能でした。「ある特定のホストの特定メトリックのアラート」と「あるURLに対する外形監視アラート」といった、一見、そのサービスに対する前提知識を持たない人には関連性を見出すことが難しいような個別のアラートも一つのアラートグループとしてまとめられ、不要な通知の抑制のみならず「"サービス" の障害が継続しているか・根本原因と思われるものはなにか」といった状況の把握にも役に立つ機能だと思っています。
意外とまだあまり知られていないこの機能、「忘れてた!」という方、ぜひ一度活用してみてください!
mkr throw コマンドにリトライオプションを追加しました
mkr
、みなさん使ってますか? ...え?そもそも mkr
自体を知らない? そんな方はまずはこちら↓をご覧あれ!
...ね?とても便利な CLI ツールでしょ?
通常、メトリックの投稿には mackerel-agent を使ってもらうのが一番なんですけど、諸事情によりAPI経由で投稿したい、ということもあると思います。そうなると考慮しなければならないのが、APIコールが何らかの理由により失敗した場合のリトライのこと(Mackerelのみならず、Web API などのリクエストは失敗することを前提に作るのは大事ですよね!)。このアップデートにより、 mkr throw
コマンドに --retry
オプションがサポートされたので、より安心してメトリックの投稿をしてもらえるようになりました!便利!!
API からロールの登録・削除が可能になりました
こちらは9月3日のアップデートで、はてなサマーインターン2018に参加してくれたインターン生が開発した機能です!
Mackerelの監視ルールはサービス・ロールを対象として設定することができるわけなんですが、監視ルール登録の際に対象のサービス・ロールがないと登録することができなかったんですね。これが、自動化の妨げになってしまっていました。このアップデートにより、サービス・ロールの登録から監視ルールの設定まで、一気通貫での自動化ができるようになったわけです。最高ですね!
check-log プラグインでログローテーションの追尾精度が向上しました
向上しました!これについては、詳しい仕組みなどの解説記事をオンタイムで書いていますので、ぜひ読んでみてほしいです!
AWSインテグレーション、拡充祭り!
このハイペースは、まさに祭りと言っても過言ではないでしょう!
- DynamoDB
- CloudFront
- API Gateway
- Kinesis Data Streams
- next...?
こうした拡充の際には、日々ご利用いただいているユーザーのみなさんからのフィードバックを大いに参考にしています!「次はぜひこれを!」という方は、ぜひ、Mackerel Webコンソール右上の「サポートチームへ連絡する」からお知らせください!
2018年のアップデートはまだまだ続きます!
こうして振り返ってみると、今年も便利なアップデートが多い一年だったなー、と思いますね!ただ、2018年はまだ12月の一ヶ月がまるごと残っています!残りの一ヶ月で、どんなアップデートがされるのか......、、ぜひ、このアドベントカレンダーと一緒に、楽しみにお待ちいただけたらと思います!