読者です 読者をやめる 読者になる 読者になる

Mackerel ブログ #mackerelio

Mackerelの公式ブログです

mackerel-agent経由でのメタデータ登録に対応しました ほか

weekly

こんにちは。セールスエンジニアの id:Soudai です。

先週は前々から告知してました デブサミ(Developers Summit)2017 が開催され、Mackerel ブースを出展してきました。 私も参加し、本当に多くの方にお会い出来て嬉しかったです!

それでは今週アップデート情報です。

mackerel-agent経由でのメタデータ登録に対応しました

メタデータはこれまでWebAPIからのみ登録できましたが、この度エージェント経由での登録にも対応しました。 これにより、登録したいJSONを標準出力するプラグインを作成して自動的に登録させることが出来ます。 例えば下記の方法で出来ますので是非試してみてください。

利用例

mackerel-agent.confへの記載

作成したプラグインをmackerel-agent.confに登録します

[plugin.metadata.packages]
command = "php metadata-yum-packages.php"

JSONの出力例

プラグインの出力例と実際にメタデータを取得する例です

// プラグインが登録するJSONの例
# php metadata-yum-packages.php | jq
[
  {
    "name": "acl.x86_64",
    "version": "2.2.49-6.11.amzn1"
  },
  {
    "name": "acpid.x86_64",
    "version": "1.0.10-2.1.6.amzn1"
  },
  {
    "name": "alsa-lib.x86_64",
    "version": "1.0.22-3.9.amzn1"
  },
  {
    "name": "apr.x86_64",
    "version": "1.5.1-1.12.amzn1"
  },
  ︙ 
]

// 登録したjsonの出力例
# curl -H 'X-Api-Key: ****' https://mackerel.io/api/v0/hosts/****/metadata/packages| jq

[
  {
    "name": "acl.x86_64",
    "version": "2.2.49-6.11.amzn1"
  },
  {
    "name": "acpid.x86_64",
    "version": "1.0.10-2.1.6.amzn1"
  },
  {
    "name": "alsa-lib.x86_64",
    "version": "1.0.22-3.9.amzn1"
  },
  {
    "name": "apr.x86_64",
    "version": "1.5.1-1.12.amzn1"
  },
  ︙ 
]

早速社内でも brew list –versions の内容を登録するプラグインワンライナーが書かれはじめています。 気軽に試せるので是非皆様も試してみてください!

mackerel.io

Webhook のリクエスト先に API Gateway のエンドポイントを指定できるようになりました

通知先として選択できる Webhook の対応証明書が拡張され、Webhookの対応先が増えました。 これにより多くの要望を頂いておりました Amazon API Gateway にも対応しました。 AWS Lambda を Amazon API Gateway 経由で呼び出すことも可能です。

mackerel.io

通知の件名の省略対象がメール通知の件名のみになりました

2017-01-27の告知ブログでお知らせしました通り、アラートの通知先が Slack やメールのときに、その件名が一定以上の長さになる場合は128文字で切り詰める対応を実施していました。 こちらの対象をメール通知の件名のみに変更し、 Slack などは元の仕様どおり、すべて表示されるように変更しています。

mackerel-agent などをアップデートしました

  • mackerel-agent 0.40.0

  • go-check-plugins 0.9.4

    • temporary fileへの書き込み処理などを修正しました

JAWS DAYS 2017に参加します

3/11(土)に開催されるJAWS DAYS 2017にスポンサーとして参加します。 当日はランチセッションで私がmackerelのことについてお話させていただきます。 JAWS DAYS 2017の今年のテーマである「Link Up!」の名の通り、皆様とお会いしてmackerelを通して新しい世界をお伝えしたいと思いますのでお楽しみに!

外形監視でGET以外のHTTPメソッドが使えるようになりました・mkrのグラフアノテーション対応 ほか

weekly

だんだん季節が春めいてきました。花粉などもそろそろ心配になってくる季節ですね。Mackerelを使って、花粉の飛散量など監視してみるのもおもしろそうです。

今週のアップデート情報です。

外形監視でGET以外のHTTPメソッドが使えるようになりました

外形監視で利用可能なHTTPメソッドの種類を拡張しました。

利用可能なメソッドは、GET POST PUT DELETE です。

また、これに伴ってリクエストボディを指定できるようになりました。

これにより、GET以外の各種APIの監視なども可能となり、より多彩な外形監視をご利用いただけます。

アラート詳細で長い履歴をページングするようにしました

アラート詳細で、チェック監視などによって大量のログが記録されている場合に履歴をページングするようにしました。

アラート発生からの最初の20件と、直近の履歴がファーストビューに表示されるので、長い履歴を持つアラートの詳細が把握しやすくなります。

mkr がグラフアノテーションに対応しました

mackerel.io

先日リリースしたグラフアノテーションにmkrが対応しました。

mkr annotations のサブコマンドを利用することができます。

利用例

create

% mkr annotations create --service My-Machine --from 1480125301 --to 1486125301 --title "Deploy"

list

% mkr annotations list --service My-Machine --from 1480125301 --to 1486125301

[
    {
        "id": "2VpN33ceumh",
        "title": "Deploy",
        "from": 1480125301,
        "to": 1486125301,
        "service": "My-Machine"
    }
]

update

% mkr annotations update --id 2VpN33ceumh --service My-Machine --from 1485013461 --to 1485169804 --title "updated" --role Desktop --role Laptop

{
    "id": "2VpN33ceumh",
    "title": "updated",
    "from": 1485013461,
    "to": 1485169804,
    "service": "My-Machine",
    "roles": [
        "Desktop",
        "Laptop"
    ]
}

delete

% mkr annotations delete --id 2VpN33ceumh

{
    "id": "2VpN33ceumh",
    "title": "updated",
    "from": 1485013461,
    "to": 1485169804,
    "service": "My-Machine",
    "roles": [
        "Desktop",
        "Laptop"
    ]
}

今週リリースされたmkr, mackerel-agent-pluginsの詳細

  • mkr 0.14.3

    • グラフアノテーションに対応
    • mkr monitor でHTTPメソッドやリクエストボディが扱えるように
    • その他軽微な修正
  • mackerel-agent-plugins 0.25.3

    • [multicore] tempfileが作成されない不具合の修正
    • [aws-rds] Auroraのメトリックを取得できるように

グラフアノテーションをサービスメトリックグラフでも扱えるようになりました ほか

weekly

先週もお伝えしましたが、Mackerel もブース出展するデブサミ(Developers Summit)2017の開催が、はやくも来週に迫っています!

Developers Summit 2017 エンジニアとして生きる、技術の先にある現実に踏み出す

2月16日(木)・17日(金)の両日ともに出展しますので、デブサミに参加予定の方はぜひ Mackerel ブースにもお立ち寄りください!

グラフアノテーションをサービスメトリックグラフでも扱えるようになりました

先日開催しましたMackerel Meetup #9でもお披露目した新機能・グラフアノテーションが、ロールグラフだけではなくサービスメトリックグラフ上でも閲覧・登録・編集ができるようになりました。

PV数や売り上げ額などをサービスメトリックとして投稿している方もいると思います。「CM放映開始」や「キャンペーン実施期間」などといった要素も、グラフアノテーションとしてどしどし登録していただけたら、と思います!

mackerel-agent などをアップデートしました

mackerel-agent などをアップデートしました。詳細は以下の通りです。

mackerel-agent 0.39.4

  • エージェントのイベントログが適切に出力されるように改善しました(Windows向け)
  • その他、リファクタリングなどを実施しました

mackerel-agent-plugins 0.25.2

  • mackerel-plugin-aws-rds のメトリック名の誤りを訂正しました
  • mackerel-plugin-aws-ses でグラフ定義が正しく作成されない点を修正しました
  • mackerel-plugin-aws-cloudfront にてメトリックが正しく送られない点を修正しました

go-check-plugins 0.9.3

  • check-windows-eventlog で Audit SuccessAudit Failure のタイプのイベントログの指定を --type=AuditSuccess のようにスペースなしで指定できるようにしました

mkr 0.14.2

  • monitors diff コマンドに reverse オプションを追加しました

上記の各 OSS に対してプルリクエストを下さった皆様、本当にありがとうございます!

AWSインテグレーションにより取得可能なEC2カスタムメトリックの粒度と、Mackerelの時系列データの仕様について

いつも Mackerel をご利用いただき、ありがとうございます。

Mackerelに保存される時系列データの仕様の丸め処理の結果、特定のケースにおいて、メトリックデータがNULL値に丸められる場合があります。この丸め処理の仕様が影響する範囲などについて以下にまとめておりますので、ご確認下さい。

Mackerel の AWSインテグレーションの仕組みと、時系列データベースの丸め処理について

Mackerel には、mackerel-agent をインストールすることなく Mackerel との連携を設定することができるAWSインテグレーションという機能があり、その対応サービスにはEC2も含まれています。

AWSインテグレーション機能の内部的な仕組みとしては、「AWS CloudWatch API を Mackerel がリクエストし、受け取ったレスポンスをそのまま自身に投稿する」というものですが、対象となるEC2インスタンスの「詳細モニタリング」(AWSにおける有償オプションです)を有効にしていない場合、AWSインテグレーションにより取得されるEC2カスタムメトリックのうちのいくつかのメトリック(詳細は後述しています)に関しては、その粒度が5分間隔となります。

例えば、15:00 から10分間に掛けてCPU使用率が50%のまま推移していたとする場合、Mackerelに投稿されるメトリックデータとしては以下の表の通りとなります(投稿時間についてはあくまで例示のものとなります)。

15:00 15:01 15:02 15:03 15:04 15:05 15:06 15:07 15:08 15:09
50% なし なし なし なし 50% なし なし なし なし

これとは別に、Mackerelに保存される時系列データは、現在の仕様上は時間が経つに連れて長い間隔に丸められます。

mackerel.io

間隔 保持期間
1分 25時間
5分 21日
1時間 90日
1日 90日以降

丸め処理では、有効データポイントの平均値が保存されますが、有効データポイントの数が一定割合に達しない場合、その期間のデータが欠損しているとみなされ、NULLが保存されます。また、ホストメトリックは、1分間隔の投稿を前提としているため、この一定割合が大きく設定されています。具体的には50%以上有効データポイントがない場合には、NULLで丸められます。

この仕様に基づき、AWSインテグレーションにより連携されたEC2ホストのカスタムメトリック」(詳細モニタリングを有効にしていない場合・5分粒度のメトリックの場合)に関しては、25時間経過時の5分間隔への丸め処理の際に、NULL値が保存されることになり、データが見られなくなります。

これは、ホストメトリックが毎分投稿を前提としており、上記の丸め処理における一定割合が50%に設定されている関係上、5分間のうち3ポイント以上の有効データポイントが存在しない場合に、そのデータが欠損しているとみなされるためです。

これは、AWSインテグレーションの他、5分(もしくはそれ以上)の間隔でカスタムメトリック投稿を行うようなプラグインを自作しているような場合にも同様です。

改めて、当仕様が影響する範囲などについて以下にまとめておりますので、ご確認下さい。

Mackerelの丸め仕様が影響する範囲(2017-02-06 現在)

  • AWSインテグレーションにより連携されたEC2ホストのカスタムメトリックのうち、下記のグラフに含まれるメトリック。
    • CPU
    • CPU Credit
    • Disk OPS
    • Disk IO
    • Network Traffic
    • Network Packets
    • Status Check Failed
  • ただし、対象となるEC2インスタンスの「詳細モニタリング」(※AWSにおける有償オプションです)を有効にしている場合には問題ありません。
  • EC2以外のサービス(ELB(CLB/ALB)/RDS/Redshift/ElastiCache)のメトリックデータには影響ありません。
    • これらのメトリックはデフォルトで1分粒度のメトリックの取得・投稿が可能なため。
    • ただし、RDS の T2 インスタンスをご利用の場合に取得できる CPU クレジットに関するメトリックは除きます。
  • サービスメトリックについても影響ありません。
    • 毎分での投稿を前提としていないため。
  • 上記のほか、「5分間のうち3点以上のメトリックデータが存在し得ないような間隔」でのカスタムメトリック投稿(3分に1度の投稿など)を行うような仕組みを自作しているような場合も同様の挙動となります。
    • Mackerel のホストメトリックは、毎分のメトリック投稿を前提としています。

Mackerelの時系列データの今後について

データ粒度と丸め処理、両方の観点で、今後改善を予定しており、現在新時系列データシステムの開発を進めているところです。今後共Mackerelをよろしくお願いいたします。

mackerel-client-go がグラフアノテーションに対応しました! ほか

weekly

先週のリリース内容としてお知らせしたグラフアノテーション機能ですが、おかげさまで多くの反響をいただいています。ありがとうございます!

「実際に試してみました」というありがたい声も、はやくもいただいています。中にはその実例をブログ記事として書いてくださっている方も!

例えば@lorentzcaさんの、こちら↓の記事。

blog.lorentzca.me

インフラの構成管理ツールであるTerraformとグラフアノテーションを組み合わせて、特定のリソースに変更を行った際にそのことを Mackerel のロールグラフ上に表現する、ということを試して頂いています。

このような、各種ツールとの連携のしやすさ、といったものも、Mackerel を開発するにあたって大事にしているポイントです。Capistrano や Terraform にかぎらず、他にも様々なツールと連携することで思っても見なかったようなメリットを見出すことができると思っています。 色々な連携を試していただいて便利だったものは、ぜひ Mackerel チームにも教えていただければと思います!(管理画面右上の「フィードバック」や、Twitter でのハッシュタグ #mackerelio を活用ください!)

それでは、今週のアップデート情報です。

mackerel-client-go がグラフアノテーションに対応しました!

そんなグラフアノテーション人気にあやかろう、というわけではないのですが、Mackerel が公式に提供している golang client である mackerel-client-go も、グラフアノテーションに対応しました。 グラフアノテーションの登録( POST )だけではなく、取得・更新・削除( GETPUTDELETE )にも対応しています。

github.com

Go でちょっとしたツールを作成している、というユーザーさんも多いかと思いますので、この機会にグラフアノテーションを組み込んでみてはいかがでしょうか?

デブサミDevelopers Summit)2017 にブース出展します

2月16日(木)・17日(金)の日程で開催されるデブサミ(Developers Summit)2017 の Exhibition Sponsor をさせて頂いている はてな として、Mackerel もブース出展いたします。

Developers Summit 2017 エンジニアとして生きる、技術の先にある現実に踏み出す

DevOps を支え、効率化を促進するというのは Mackerel のビジョンのひとつでもあります。Mackerel に興味をお持ちの方は、ブースにお立ち寄りいただけると嬉しいです!

「Mackerel Meetup #9」を開催しました

2017年1月26日(木)にMackerel Meetup #9を開催しました。

今回はMackerelユーザーでもあるレコチョク様のセミナールームにて開催いたしました。 2017年の1回目のMeetupにおかげさまで多くの方々にご来場いただき、大盛況でした。 ご来場いただきました皆様、すばらしい会場をご提供いただいたレコチョク様、本当にありがとうございました。

f:id:mackerelio:20170130131123j:plain

当日の各セッションについて

『The 2017 Mackerel Product Roadmap.』 はてな 杉山広通(id:sugiyama88)

Mackerelプロデューサーの杉山から『The 2017 Mackerel Product Roadmap.』と題して発表いたしました。 Mackerelの概要、2016年のロードマップの振り返りの後に2017年のロードマップについてお話させていただきました。 すでにリリースされているグラフアノテーションの拡張やVuls対応のプラグインの話、AWSインテグレーションに続くAzureインテグレーションなどのこれから対応予定の機能については会場からも声が上がるほどの反響でした! 今年も昨年以上によりよいMackerelを目指して成長していきますので今後もよろしくお願い致します。

Mackerel Meetup #9 // Speaker Deck

『Mackerel x KDDIで実現するキャリアクオリティ監視サービス』 KDDI株式会社 浅川 善則 様

1月26日にプレスリリースをされましたKDDI クラウドプラットフォームサービス (以下 KCPS)のマネージドオプションについて早速お話いただきました。

Mackerelとの連携部分と合わせてKCPSのマネージドオプションのご紹介をいただきました。 またKDDI様だからこそ出来るKCPSの運用体制や高いサポートのクオリティは多くのユーザが求めている内容だと感じました。 今後もはてなKDDI様の二人三脚で多くのユーザに価値を提供していきたいと思います。

Mackerel x KDDI で実現するキャリアクオリティ監視サービス / Mackerel Meetup 9 KDDI // Speaker Deck

『Mackerel x Twilio ~レコチョクの場合~』 株式会社レコチョク 伊藤 様・鷹箸 様

最後のセッションは、会場提供いただいたレコチョクの伊藤 様・鷹箸 様による、ZabbixからMackerelへの移行とMackerelからTwilioを連携してアラート時に電話を利用した事例紹介でした。 このようなユーザ視点のお話にはそれまでの試行錯誤などの知見が盛り山となっており、聴衆の方々も食い入るように見ておられました。

Mackerel x Twilio ~レコチョクの場合~

LT

最後にお二人からLTをしていただきました。

『私が最近mackerelでやったこと』 エウレカ 湖山様

Mackerelに対してプルリクエストして頂いた時のお話をしていただきました。 OSS活動を始める第一歩としてMackerelはとても始めやすいプロダクトだと思います。 皆様もお気軽にプルリクエストを投げてください!

私が最近Mackerelでやったこと // Speaker Deck

『mackerel-client-php』 ココラブル 有田様

mackerel-client-phpを使ったユニークな使い方のお話をしていただきました。 PHPなどのライトウェイトな言語で気軽にメトリックを投稿出来ると使い方に幅がでますね。 PHPerの皆様もぜひ使ってみてください!

mackerel-client-php // Speaker Deck

懇親会

今回もビールやピザを食べながらの懇親会を実施しました。 懇親会ではMackerelチームとユーザの皆様との交流は勿論のこと、ユーザ間の活発な交流が行われました。 ざっくばらんに交流出来るのもMeetupの良さですね。

大抽選会も実施

会場で大抽選会を実施し、Mackerelのノベルティに加えて、レコチョク様からも提供いただいたノベルティをお配りしました。

今回からブログ枠を設けました

今回から参加枠に新たにブログ枠を設立しました! 早速丁寧なブログを書いていただきありがとうございます。

Mackerel Meetup #9 Tokyoに参加しました - tjinjin's blog

この他にも多くのユーザ様から参加ブログを書いていただきました。 皆様ありがとうございました。


f:id:mackerelio:20170130131124j:plain

今回も非常に盛り上がったMackerel Meetupですが、引き続き交流の場を設けていきます。次回はついに大台の10回目、Mackerel Meetup #10 です。 次回もよろしくお願いします。

グラフアノテーションをリリースしました! ほか

weekly

こんにちは。セールスエンジニアの id:Soudai です。

今月から Mackerel チームにジョインしましたがついに皆様にアップデートをお伝えさせていただきます。 先週まではチームメイトの id:a-know が主に皆様にお届けしてきましたが今週からは私も頑張って行きます!

また先日は Mackerel Meetup #9 Tokyo を開催しました。 こちらの開催内容については別途皆様にご報告したいと思いますのでお楽しみに。

それでは、今週のアップデート情報をお伝えします。

グラフアノテーションをリリースしました!!

ご要望が多かったグラフアノテーションをリリースしました。 この機能により、サービスやロールに関係する様々な事象をグラフにアノテーション(注釈)として残すことができます。 アプリケーションのデプロイやバッチ処理実行、テレビCMなどのビジネスキャンペーンとの相関を考慮しながらリソース状況を把握できるので、より直感的な分析ができるようになります。 とても役に立つ機能ですので皆様もぜひ使ってみてください!

https://cdn-ak.f.st-hatena.com/images/fotolife/m/mackerelio/20170127/20170127152549.png?1485498367

mackerel.io mackerel.io

通知の件名が一定以上の長さになる場合、省略するようにしました

こちらはアラートなどの通知をSlackやメールなどでお送りする際に非常に長いタイトルを128文字に短くするようになりました。 これにより、タイトルが長すぎるために読みにくかったメールなども使いやすくなります。 省略された場合は末尾が「…」となります。

windows版のmackerel-agent をアップデートしました(v0.39.3)

windows版のmackerel-agentの挙動でverbose=trueのときのwindowsのEventlogに出力されるログレベルが不適切だった件を修正しました。 また不正なコンフィグを読み込んだ時のセグメンテーション違反が発生する問題なども修正しています。

go-check-plugins をアップデートしました(v0.9.2)

check-windows-eventlogではイベントIDによる検索、メッセージの除外指定のオプションが追加されました。 前述のwindows版のmackerel-agentと合わせてご確認いただければと思います。

mackerel-agent-pluginsをアップデートしました(v0.25.1)

ユーザからプルリクエストを頂き、mackerel-plugin-aws-rdsをアップデートしました! これにより、一部の対応できていなかったAmazon Aurora用メトリックも対応されました。 プルリクエストをいただきました方には感謝申し上げます。 引き続き、Mackerelはユーザの皆様と一緒に育てていきます。

またmackerel-plugin-jvmの不具合も修正しました。

詳細については GitHubリポジトリを参照してください。

github.com