Mackerel ブログ #mackerelio

Mackerelの公式ブログです

.ioドメイン不調対策として mackerel-agent をアップデートしました ほか

昨日は Mackerel 正式リリース3周年イベントであるMackerel Dayの開催日でした。

mackerelio.connpass.com

豪華登壇陣による大変濃密な発表もあり、また Mackerel 談義に花を咲かせる懇親会もあり、おかげさまで大変な盛況のうちに会は閉幕しました。ご登壇いただいたみなさま、そして参加者のみなさま、本当にありがとうございました。 また別途、開催レポートをこちらのブログにてお伝えできればと思います。

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

.ioドメイン不調対策として mackerel-agent をアップデートしました

以下の記事でもお知らせしておりました .io ドメインの不調とそれにともなう Mackerel の対策ですが、今週、その恒久対策を含んだ形で mackerel-agent をアップデートしています。

mackerel.io

具体的には、エージェントからの Mackerel への API リクエスト先を mackerel.io から api.mackerelio.com に切り替えるような変更をおこなっています。 これを受けて、死活監視の判定間隔の変更などの暫定対応についても、順次本来の状態に戻していく予定です。

mackerel-agent をご利用の皆様は、エージェントのアップデートを実施していただくか、もしくは、設定ファイルの一番上の行に apibase = "https://api.mackerelio.com/" の記述を追加の上、エージェントの再起動を実施してください(KCPS版 Mackerel を除きます)。

Mackerel 関連 OSS をアップデートしました

上記以外の mackerel-agent のアップデート内容も含め、以下に紹介します。

mackerel-agent v0.46.0

  • include_pattern exclude_pattern の指定ができるようになりました。
    • これにより、メトリックプラグインから送信するメトリック種別をフィルタすることができます。
    • 詳細はこちらの PullRequest をご確認ください。

mackerel-agent-plugins v0.35.0

  • [twemproxy] サーバーごとのメトリックをデフォルトで取得しないように変更しました。
    • 以前の挙動が好ましい場合は -enable-each-server-metrics オプションをご利用ください。

mkr v0.21.0

  • Mackerel への API リクエスト先を mackerel.io から api.mackerelio.com に切り替えました

mackerel-client-ruby v0.3.0

  • Mackerel への API リクエスト先を mackerel.io から api.mackerelio.com に切り替えました
  • ホストの検索に customIdentifier が利用できるようにしました
  • メタデータAPIをサポートしました

OpsGenie、PagerDuty において、Mackerel 側のアラートクローズと連動させない設定が可能になりました

f:id:mackerelio:20171006103951p:plain

f:id:mackerelio:20171006105424p:plain

通知チャンネル・OpsGenie、PagerDuty の設定オプションとして、Mackerel のアラートクローズに応じて OpsGenie/PagerDuty 側のアラートクローズをさせるかどうかを指定できるようになりました。 チーム内でのインシデント管理のスタイルに合わせて、活用してください。

不正な通知先が設定されている通知チャンネルがサスペンドされるようになりました

無効なURLが設定されている・通知先となるURLが削除されてしまった、などの理由で一定回数以上通知に失敗した通知チャンネルが自動的にサスペンドされるようになりました。 サスペンドされている間は、通知チャンネル一覧において、以下のように表示されます。

f:id:mackerelio:20171006103911p:plain

「サスペンド解除」をクリックすることで、その状態を解除することができます。

f:id:mackerelio:20171006103840p:plain

その他のアップデート内容

  • Lambda インテグレーションにメトリックを追加しました。
    • Iterator Age [ms]
    • Iterator Age [ms] per alias
    • Iterator Age [ms] per version
  • PagerDuty への通知で、通知メッセージが長い時に通知に失敗していた点を修正しました。
  • カメラボタンでのグラフを共有する際、積み上げグラフに表示を切り替えていても、その状態が維持されるようになりました。

URL外形監視のレスポンスタイム計測の仕様調整に関する事前のお知らせ

Mackerelサブプロデューサーの id:Songmu です。

10/12(木) にURL外形監視のレスポンスタイム計測に関する仕様調整を行う予定です。リリースは、14:00-16:00(日本時間) の間を計画しています。調整内容は以下の2点です。

  • 外形監視のレスポンスタイム測定にDNSの名前解決時間を含めない
  • HTTPレスポンスが返ってこなかった際にレスポンスタイムを記録しない

外形監視のレスポンスタイム測定にDNSの名前解決時間を含めない

URL外形監視で計測しているレスポンスタイムは現在DNSの名前解決時間を含んでおりますが、DNSキャッシュのTTL切れの際に、名前解決が行われる分レスポンスタイムが上振れてしまうという現象があり、監視上のノイズになりがちです。

その対策として、今回の仕様調整で、レスポンスタイムに名前解決時間を含めないようにいたします。

HTTPレスポンスが返ってこなかった際にレスポンスタイムを記録しない

現在は、リクエスト対象のサーバーからHTTPレスポンスが返ってきたか否かにかかわらず、レスポンスタイム計測をおこない、Mackerelへの投稿をおこなっています。

現状、HTTPレスポンスが返ってきていないにも関わらず、レスポンスタイムを計測しているケースに以下のようなものがあります。

  • 名前解決失敗時やTCPコネクションが拒否された場合には、0ミリ秒に近い値が計測される
  • 接続がタイムアウトした際には15000ミリ秒が計測される(15000ミリ秒はURL外形監視クライアントの仕様上のタイムアウト設定値)

これらは直感的な挙動ではないと考えており、これらの場合は、レスポンスタイムの計測は行わず、サーバーがHTTPレスポンスを返したときのみ、レスポンスタイムを記録するように変更します。

HTTPレスポンスが返ってこなかった場合に、アラートが発生する挙動は変わりありません。

今回の調整に関するユーザーへの影響について

レスポンスタイム監視をおこなっている場合、必要に応じて閾値の調整をお願いいたします。基本的には大きな影響はないと考えています。

今後のURL外形監視の調整について

URL外形監視は、Mackerel本体のシステムが利用しているサーバーから直接ユーザーのURLにリクエストをする仕組み上、システムの負荷や、中間ネットワークの経路等、様々な影響を受けやすく、観測のゆらぎが発生しやすい構造になっています。

それらの品質を安定させていくために、今回に限らず、随時細かい調整を入れていきます。

今後ともMackerelを宜しくお願い致します。

Mackerel利用規約の改定について

本日、Mackerel利用規約の改定を行いました。改定内容は以下の通りです

利用規約 日本語版

  • 第4条(情報の保護)に弊社プライバシーポリシーへの導線を追加しました
  • 第7条(利用料金) に販売パートナーによる取扱いについての記載を追加しました
  • 第15条(準拠法および管轄裁判所)を 第15条(準拠法および管轄裁判所・言語) とし、正本が日本語である旨を追加しました
  • 誤記や言い回しなどの細かな修正を行いました

mackerel.io

利用規約(KCPSユーザー様向け)

  • 第4条(情報の保護)に弊社プライバシーポリシーへの導線を追加しました
  • 上述の「利用規約 日本語版」にて販売パートナーについての取扱を記載したことに伴い、第7条(利用料金)の文言を「利用規約 日本語版」と統一しました
  • 誤記や言い回しなどの細かな修正を行いました

mackerel.io

Mackerel利用規約 英語版

  • 翻訳全般を見直し、日本語版との相違点を修正しました

mackerel.io

mackerel-agent などをアップデートしました & 3周年記念イベント、開催間近! ほか

こんにちは。Mackerelチーム CRE の井上(id:a-know)です。

先週もお伝えしたとおり、今週は Mackerel イベントが目白押しな「Mackerel ウィーク」な一週間でした。

月曜日に開催された Mackerel / NewRelic / Elasticsearch Seminar を皮切りに、

f:id:mackerelio:20170929091644j:plain
トップバッターとして登壇した、Mackerelチーム CRE の曽根(id:Soudai

火曜日は大阪にて Mackerel Drink Up #6 Osaka を開催。ここでははてな社員の id:papix が LT を披露しました。

speakerdeck.com

水曜日は名古屋にてAWS CloudRoadShow 2017 名古屋にてブース出展。多くの名古屋のエンジニアのみなさんに Mackerel のご紹介をすることができました。

f:id:mackerelio:20170929091956j:plain
名古屋でも元気な、Mackerelチーム CRE の曽根(id:Soudai

素敵な会場をお貸しいただいたリクルートテクノロジーズ様、エムオーテックス様、改めてありがとうございました。また、AWS CloudRoadShow 2017 名古屋 の会場に足を運んでいただいた皆様にも、この場で御礼申し上げます!

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

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

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

mackerel-agent v0.45.0

  • Go 1.9 でビルドするようにしました。

mackerel-agent-plugins v0.34.0

  • mackerel-plugin-flume, sidekiq をパッケージに含めました。
  • [aws-dynamodb] メトリックの調整をおこないました。
  • [mysql] enable_extended 有効時の拡張メトリックを調整しました。
  • [openldap] メトリックの修正をおこないました。

mackerel-check-plugins v0.13.0

  • [check-log] デフォルトの挙動を以下のように変更しました。
    • 【変更前】初回起動時には、監視対象のログを全て読み込み、チェックする
    • 【変更後】初回起動時には監視対象のログをチェックしない。起動以降に出力されたログを対象にチェックする
    • 以前の挙動が望ましい場合は --check-first オプションを指定することで、従来と同じ挙動になります
  • Go 1.9 でビルドするようにしました。

mkr v0.20.0

  • Go 1.9 でビルドするようにしました。

コントリビュートいただいたユーザーのみなさま、ありがとうございました!

Mackerel正式リリース3周年記念イベント『Mackerel Day』、開催間近!

先週の9月17日をもって、Mackerel は正式リリースから3年が経ちました。Mackerel というサービスがここまで継続し、またその間に数多くの先進的な機能を実装してこられたのも、ひとえに Mackerel をご利用いただいているみなさまのおかげです。

そんな Mackerel の3周年を祝して、またみなさまへの御礼の気持ちも込めて、特別版ミートアップイベント・Mackerel Day を開催いたします!

mackerelio.connpass.com

Mackerel をお使いいただいている DMM.com ラボ様、freee様、GMOペパボ様、メルカリ様(発表順)といった豪華な登壇陣をお招きし、Mackerel のさまざまな使い方・便利な活用事例などを凝縮してお届けします。会場はアマゾンジャパン様に素晴らしい会場をご提供いただきました。ソリューションアーキテクトの酒徳様にもご登壇いただきます。はてなからも、杉山・大野・井上(私です)が登壇させていただきます!

会場には、Mackerel開発チームも全員参加し、懇親会までご一緒します。ユーザー・開発者が一堂に会するこのイベントに、ぜひご参加ください!

8月の大型メンテナンスにともなう並行運用を予定通り終了しました・Amazon SQS インテグレーションをリリースしました ほか

昨日もこちらのブログを通してお知らせいたしましたが、現在断続的に発生している.ioドメインの不調にともなう Mackerel の死活監視のアラート誤報に関して、ユーザーの皆様には大変ご不便をお掛けしております。

以下のブログエントリにて、詳細について記載しております。ご確認がまだの方は、ぜひ一度ご確認ください。

mackerel.io

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

8月の大型メンテナンスにともなう並行運用を予定通り終了しました

8月のプラットフォーム移行作業の終了に関するこちらのアナウンスでも以下のようにお知らせしておりましたが、

ただし、今後1ヶ月(2017年9月21日(木)まで)、Mackerelの新旧システムの平行運用を念の為おこなう予定です。その間は、旧システムへ切り戻す可能性がわずかながらございます。IPアドレス制限等の設定をおこなわれている場合には、しばらく両方のIPアドレス帯の設定をお願いいたします。並行運用停止の際には改めて当Blogにてアナウンス致します。

プラットフォーム移行メンテナンス第2弾及び、一連の移行作業の終了お知らせ - Mackerel ブログ #mackerelio

上記の並行運用に関して、予定通り終了しましたことをお伝えします。ご協力いただき誠にありがとうございました。

「Mackerel」が国内初のAWS DevOpsコンピテンシー認定を取得しました

AWSのパートナー制度「AWS パートナーコンピテンシープログラム」における「AWS DevOpsコンピテンシー」認定を、このたび Mackerel が取得しました。

「AWS DevOpsコンピテンシー」への認定は、国内企業発のサービスでは Mackerel が初めてになります。

aws.amazon.com

「サーバー監視」だけでなく、「インフラ管理」、日々動的に変遷するインフラ環境における DevOps の効率化を促進することも Mackerel のビジョンであるため、今回の認定は私たちとしても大変うれしく思っています。

はてなとしてのプレスリリースも配信しています。こちらもぜひご確認ください。

はてなのサーバー監視サービス「Mackerel」が国内初のAWS DevOpsコンピテンシー認定を取得 - プレスリリース - 株式会社はてな

Amazon SQS インテグレーションをリリースしました

AWSインテグレーションによるホスト連携対象として、新たに Amazon SQS に対応しました。

aws.amazon.com

既にヘルプページも公開しています。

mackerel.io

IAM Role には AmazonSQSReadOnlyAccess ポリシーの追加が必要となります。以下のヘルプも参照してください。

mackerel.io

Mackerel のAWSインテグレーションでは、タグを用いて連携対象となるクラウド製品を絞り込むことができますが、Amazon SQS ではキューに対してタグを付与することができないため(AWSの仕様)、この絞り込みをおこなうことができません。ご注意ください。

アラート通知にオーガニゼーション名が含まれるようになりました

slack を始めとした通知先への通知内容に、対象のオーガニゼーション名が含まれるようになりました。

f:id:mackerelio:20170922090119p:plain

複数のオーガニゼーションをまたいで管理をしている方には特に、より便利に利用いただけるようになるかと思います。

「カスタマイズグラフ」「式による監視」で指定する式におけるクオートが不要になりました

関数式により表示するグラフを定義できる「カスタマイズグラフ」や、関数式により導出されたメトリックを対象に監視ルールを作成できる「式による監視」で指定できる"式"において、メトリック名などのクオートが不要になりました。以下に具体例を示します。

  • アップデート以前
    • timeShift(avg(role('example:db', 'loadavg5')), '1w')
  • アップデート以後
    • timeShift(avg(role(example:db, loadavg5)), 1w)

「カスタマイズグラフ」「式による監視」は、いずれもまだ実験的機能なのですが、今回のような改善を重ねていき、より安心・便利に使っていただけるようなものにしていきます。

mackerel-agent-plugins, mkr をアップデートしました

アップデート内容は以下の通りです。コントリビュートいただいた皆様、本当にありがとうございます!

mackerel-agent-plugins v0.33.0

  • mackerel-plugin-nvidia-smi をパッケージに追加しました
  • [accesslog] 対象のログ形式を指定できるようにしました(ltsv or apache
  • mackerel-plugin-flume を追加しました
  • [mysql] handlerstransaction handler グラフを追加しました

mkr v0.19.0

  • [mkr fetch] 多くのホストIDを指定した場合にも対応できるようになりました
  • mackerel-agent.conf の apibase の指定を参照するようになりました
    • 引数として -apibase が指定されていた場合にはそれを優先します
    • なにも指定がなければ、リクエスト先は mackerel.io となります

来週は Mackerel ウィーク! イベントが目白押しです

Mackerel / NewRelic / Elasticsearch Seminar

まずは月曜日・9月25日。リクルートテクノロジーズ様の会場をお借りして、Mackerel / NewRelic / Elasticsearch Seminar を開催します!

mackerelio.connpass.com

現時点で、「ブログ枠」と「一般枠(前日・当日キャンセルしない人用)」がまだお申込み可能となっています。毛色の異なる3プロダクトから見る「モニタリング」について学べる、大変貴重な機会となっております。ぜひお見逃しなく!

Mackerel Drink Up #6 Osaka

そして火曜日・9月26日はMackerel Drink Up #6 Osaka

mackerelio.connpass.com

今回のドリンクアップは関西、エムオーテックス様の会場をお借りしての開催です!Mackerel スタッフも多数参加しますので、直接のコミュニケーションをしたい!という関西圏にお住まいの方は、ぜひご参加ください!

AWS CloudRoadShow 2017 名古屋

そして水曜日・9月27日はAWS CloudRoadShow 2017 名古屋に、Mackerel もブース出展します。

roadshow.awseventsjapan.com

この場にはMackerel チームのCREが二人とも出席します。「Mackerel に興味があるけど何ができるのかいまいちよくわからない」、そういった名古屋近隣の皆様のご来場をお待ちしております!

.ioドメイン不調に伴うMackerelの死活監視アラートの誤報の発生とそれに対する対応について

Mackerelサブプロデューサーの id:Songmu です。表題の件、ユーザーの皆様には度々ご迷惑をおかけしており大変申し訳ありません。

本件の詳細に関する説明と、今後の対応に関してお知らせいたします。

死活監視のアラート誤報に関して

Mackerelでは、mackerel-agentから一定時間メトリック投稿が途絶えた事をもって、サーバーがダウンしたと判断し、死活監視アラートを発報する仕組みになっています。

現在、 mackerel.io ドメインの名前解決が不安定になっております。それに伴い、 mackerel.io ドメインの名前解決が一定期間失敗し、Mackerelへのアクセスが一時的にできない環境において、 mackerel-agent がMackerelへのメトリック投稿をおこなうことができず、Mackerelシステム側でサーバーがダウンしたと判断してしまい、死活監視のアラートを誤って発報してしまう状況が発生しています。

mackerel.io の名前解決が不安定な事象について

現在、ioドメインの権威DNSサーバーの一部が、存在するはずのドメインに対して、誤って NXDOMAIN (ドメインが存在しない) を一時的に返してしまう事象を確認しています。それにより、名前解決に失敗してしまう状況です。

また、その場合、ネガティブキャッシュのTTLが900秒に設定されているため、最長で15分間、名前解決に失敗してしまいます。

これらの事象の発生は一時的なものですが、複数回発生していることを確認しており、今後も発生する可能性があります。したがって、以下の暫定対応を実施しています。

暫定対応について

誤報の発報を抑えるために、現在以下の対応を実施しています。

  • mackerel.io ドメインのTTLを長くする
  • mackerel.io の名前解決が不安定な場合に死活監視コンポーネントを一時停止する
  • 死活監視の判定間隔をネガティブキャッシュのTTLより長い間隔に設定する

これらの対策により、誤報は逓減できていますが、死活監視の信頼性を落としている状況です。特に本当にサーバーがダウンした場合に、死活監視の発報まで15分以上の時間がかかってしまう状況になっています。よって、根本的な対策は別途必要だと認識しています。

根本的な対策について

今後1ヶ月くらいのタイミングで、信頼性の高いTLDのドメインを新たに取得し、mackerel-agentはそちらのドメインを利用するように変更する予定です。後方互換のため、現在の mackerel.io も並行稼動はいたします。新しいドメインを利用する場合、 mackerel-agent のバージョンアップを実施して頂く必要があります。

また、これはまだ検討段階で実施は未定ですが、mackerel-agentがMackerelへの投稿に失敗した場合、別経路(別ドメイン等)で投稿を試みるような機構を入れることも検討しています。

本件、ご迷惑、ご不便をおかけして申し訳ありません。今後共安定稼働につとめてまいりますので、Mackerelをよろしくお願いいたします。

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

9月も半ばを過ぎ、ようやく季節も秋めいてきましたね。 急に肌寒くなる日も増えてきそうです。みなさん、くれぐれも体調にはお気をつけください。

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

5分間隔で投稿されたホストメトリックを25時間以上遡って確認できるようになりました

今年の2月に、AWSインテグレーションにより取得可能なEC2カスタムメトリックの粒度と、Mackerelの時系列データの仕様について - Mackerel ブログ #mackerelio でもお知らせしておりましたが、これまでの Mackerel では、毎分間隔で投稿されることを前提としているホストメトリックを5分以上の間隔で投稿した場合、時間の経過に伴う丸め処理により、25時間以上のデータは消失する仕様でした。

これが、今週のアップデートにより、25時間以上のデータも遡って確認できるようになりました。これにより、AWSインテグレーションにより取得されるメトリックのうち5分粒度のデータについても、過去の推移を Mackerel 上で確認できるようになっています。

こちらのお知らせでもお知らせしていた、「新時系列データシステム」の開発成果の一部となります。引き続き改善を進めていきますので、今後のアップデートにご期待ください。

Ansible Galaxy に登録している公式ロールの名称を変更しました

Ansible Galaxy に登録している公式ロールを更新しました。バージョンは 0.7.0 になっています。 これに伴い、ロール名を mackerel から mackerelio に変更しています。今までの名前ではご利用いただけなくなっていますので、ご注意ください。

また今回のバージョンアップにより、check プラグインのオプションを指定できるようになっています。ぜひ活用してください。

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

mackerel-agent-plugins などをアップデートしました。以下に詳細をまとめてお伝えします。

mackerel-agent-plugins v0.32.0

  • [memcached] evicted.reclaimedevicted.nonzero_evictions メトリックを追加しました
  • [accesslog] 長いログをスキャンできるよう調整しました
  • [mysql] 微調整をおこないました
  • [Redis] 微調整をおこないました

mkr v0.18.0

  • create サブコマンドで --customIdentifier オプションにより custom_identifier を指定できるようになりました

cookbook-mackerel-agent

コントリビュートいただいた皆様、ありがとうございました!

AWS Cloud Roadshow 2017 大阪 に Mackerel もブース出展します!

先週もこちらでお知らせしましたが、Mackerel もブース出展をおこなうAWS Cloud Roadshow 2017 大阪 の開催が、来週・9月21日に迫っています!

AWS Cloud Roadshow 2017 大阪 powered by Intel® 広島、大阪、名古屋、福岡の 4 都市を巡る無料クラウドカンファレンス開催! | アマゾン ウェブ サービス

Mackerel について直接質問したい!という方、ぜひお立ち寄りください!