Mackerel ブログ #mackerelio

Mackerelの公式ブログです

アカウントを持っていない人ともグラフが共有できるようになりました ほか

こんにちは。Mackerelチーム ディレクター id:daiksy です。

来週月曜日はMackerel Meetupです。ぼくも参加する予定で、皆さんとお会いできるのを楽しみにしています。 まだ参加枠はありますので、ぜひお申込みください。

mackerelio.connpass.com

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

アカウントを持っていない人ともグラフが共有できるようになりました

Mackerelにはグラフ共有機能があり、iframeや画像など様々な形式で、MackerelのWebUI以外の場所でグラフを参照することができます。 しかしそのためには、ブラウザにMackerelのログインセッションが必要であり、Mackerelのログインアカウントを持っていることが閲覧の前提となっていました。

今回、「URLを知っていれば誰でも閲覧できる」グラフ共有の機能をリリースしました。

公開範囲がこれまでより大きく拡がるため、共有の際はご注意ください。また、この機能によって共有されているグラフには新しいURLが割り当てられ、その様子は一覧に表示されます。

https://mackerel.io/my?tab=sharedGraphs

この一覧から、共有中のグラフを削除することで、共有グラフのURLを無効化し、閲覧を停止することができます。あわせてご利用ください。

外形監視で最大試行回数を設定している場合、アラート詳細で試行時のログも確認できるようになりました

外形監視のアラート詳細において、これまでは最大試行回数が設定されていても、アラートがOpenされた瞬間のログしか表示されておらず、レスポンスタイムの悪化とステータスコードのエラーが混在している場合などで、アラートがなぜOpenされたのかわかりにくい、という問題がありました。そこで、試行時のすべてのログを表示し、アラートの発生理由をわかりやすくしました。

上のスクリーンショットですと、17:44から17:46まで、過去3分間の平均値監視が3回連続でアラート条件にHITした結果、17:46にアラートがOpenしている様子が表現されています。

同様の改善はチェック監視にも適用を予定しています。

メトリック監視の平均値算出方法の仕様調整に関するお知らせ

来週、メトリック監視の平均値監視算出方法の仕様調整を行います。

詳しくは以下をご参照ください。

mackerel.io

メトリック監視の平均値算出方法の仕様調整に関するお知らせ

Mackerelサブプロデューサーの id:Songmu です。表題の件についてお知らせいたします。

概要

メトリックの平均値監視における平均値の算出方法を一律「ポイント数」に対する平均値に変更します。

これは、ホストメトリック監視、及び、URL外形監視のレスポンスタイム監視に影響があります。これらのメトリックは、現在「N分」に対して平均値を算出しています。サービスメトリックに関しては従来通りであるため影響はありません。

影響を受ける可能性のあるユーザー

細かい調整であるため、基本的には大きな影響はありません。

ホストメトリック監視もしくは外形監視のレスポンスタイム監視を設定しており、その上で、2分以上の平均値監視を設定しているユーザーが影響を受ける可能性があります。

特に、1分以外の間隔で投稿されているメトリックの場合、その可能性は高くなります。これは例えば、一部のAWSインテグレーションのメトリックで5分間隔で投稿されているようなものがあります。

変更の実施時期

2018年2月8日(木)

平均値算出方法に関する具体的な新旧対比

各メトリック監視における平均値算出対象を以下のように変更します。

現状 新仕様
ホストメトリック監視 N分 N点(ポイント)
レスポンスタイム監視 N分 N点(ポイント)
サービスメトリック監視 N点(ポイント) N点(ポイント)

「N分」と「N点(ポイント)」の違い

これまで「N分」を対象としていたメトリックに関しては、毎分データが投稿されることを前提として、平均値の算出をおこなっておりました。これは、以下のような場合に直感的ではない挙動となっていました。

  • 1分ではない間隔でデータが投稿されている場合
    • 例えば、5分間隔など
  • メトリックに一時的に抜けが発生する場合
    • 例えば、カウンター値に対する差分計算をおこなっているプラグインの場合、カウンター減少時にはメトリックが算出されません

これらのケースで、2分以上の平均値監視を設定している場合、このように値を観測できていない1分間(null)が含まれている時には、平均値の算出をおこなっていませんでした。

つまり、5分間隔のホストメトリックに関しては、2分以上の平均値監視は実質的に設定できず、データに一時的に抜けがある場合も、その前後の平均値の算出がおこなえない時間帯では監視が動かない仕様となっておりました。

具体的に、データに抜けがある場合に、N分平均とN点(ポイント)平均がどのように異なって算出されるかを以下に例示します。

時刻 生のメトリック 3分平均 3点(ポイント)平均
15:00 10 - -
15:01 11 - -
15:02 12 11 11
15:03 13 12 12
15:04 null null 12
15:05 14 null 13
15:06 15 null 14
15:07 16 15 15

これを、今回の仕様調整で、N点(ポイント)での平均値算出に統一します。

補足など

これで任意の間隔のメトリックで平均値監視が動作するようになりました。但し、現状のサービスメトリック同様、直近24時間以内のメトリックポイントが対象となります。つまり、日次でメトリックを投稿している様な場合には2ポイント以上の平均値監視はうまく動作しません。

投稿間隔が一定ではないケースにおいては、間隔に応じた重み付けなどはおこなわず、単純に平均値の算出をおこないます。

また、最短のメトリック間隔は1分であることは変わりません。つまり、1分間隔の間に複数のメトリックポイントを保存することは現状できません。1分以下の精度で複数のメトリックが投稿された場合であっても、1分間の精度に丸められ、一番最後に投稿された値で上書きされます。

今後もサービスの改善につとめてまいります。ご理解の程よろしくお願いいたします。

2/27(火) データベースメンテナンスに伴うシステム一時停止に関して

Mackerelプロダクトオーナーの、id:Songmuです。表題の通り、計画的なシステムメンテナンスを実施いたします。

本メンテナンスは比較的長時間のシステム停止を要するため、ご利用者のみなさまへは、ご迷惑をおかけいたします。しかしながら、今後も継続的によりよいサービスを提供するために必要不可欠なメンテナンスであるため、ご理解とご協力の程お願いいいたします。

実施予定日時

2018年2月27(火) 14:30-17:30 (JST)

実施内容

データベースメンテナンス

当日の影響に関して

  • メンテナンス終了時刻は、最長ケースであり、メンテナンス作業終了次第メンテナンスは終了となります
  • メンテナンス開始後、暫くの間、Mackerelシステム全体が停止いたします
    • MackerelへのWebアクセスやMackerelエージェントのデータ投稿、APIアクセス(CLIツール含む)、アラート通知などができない状況となります
  • メンテナンス作業が終了し動作確認が取れ次第、メンテナンスを終了しその旨を告知します
  • mackerel-agentのメトリック投稿に関しては、メンテナンス中はmackerel-agent側でバッファリングがおこなわれ、メンテナンス終了後に再送されます
    • 正しく再送された場合、メンテナンス時間中のグラフも表示されます

当日のお知らせに関して

ステータスページ( http://status.mackerel.io )、及び本ブログ( https://mackerel.io/ja/blog/ )にて、状況報告をおこないます。

補助的に、公式Twitter( https://twitter.com/mackerelio_jp )も利用いたします。

本件に関するお問い合わせ先

support@mackerel.io へメールでお問い合わせ下さい

今後ともMackerelをご愛顧くださりますよう、よろしくお願いいたします。

メトリック保持期間と1分粒度メトリックを確認できる期間を拡張しました ほか

Mackerelユーザーの皆様、お待たせしました! Mackerel で保持するメトリックについて、以下の大型アップデートを実施しました。

  • Standardプラン(これまで、メトリックの保持期間が【400日】だったプラン)のメトリック保持期間を【460日】に拡張しました。
  • これまでは【25時間】だった1分粒度のメトリックを確認できる期間が、【460日間】になりました。
    • 機能実装タイミングの関係上、1分粒度のメトリックを確認できるのは 2017年12月1日 以降のデータとなります。

このリリースをみなさんにお伝えできることを、私もとても嬉しく思います。サーバー負荷のシーズナリティの確認、キャパシティプランニングへの活用などが、よりしやすくなります。ぜひご活用ください!

その他のアップデート内容は、以下の通りです。

オーガニゼーションに関連するメールを受け取るアドレスを設定できるようになりました

f:id:mackerelio:20180126085225p:plain

上の画像のとおり、「お支払いに関するメール」と「サポートチームとのやり取りのメール」を受け取るアドレスを追加指定できるようになりました。

従来までは、「お支払いに関するメール」はオーナー権限ユーザーの方に、「サポート窓口とのやり取りのメール」は「サポートチームへ連絡」から連絡したユーザーの方に、それぞれメールが送られていましたが、それぞれのユーザーの方に送ることに加えてメールを送る宛先を追加できます。

この設定はオーガニゼーション設定で実施できます。

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

以下のとおり、mackerel-agent をはじめとした各種 OSS をアップデートしました。

mackerel-agent v0.51.0

  • [Windows] memory の pagefile の値が誤って1024分の1倍していた問題を修正しました。

mackerel-agent-plugins v0.43.0

  • プラグインのパスワードを環境変数で渡せるようになりました。対象のプラグインと環境変数名は以下の通りです。
    • mackerel-plugin-postgres
      • PGPASSWORD
    • mackerel-plugin-openldap
      • OPENLDAP_REPL_MASTER_PASSWORD
      • OPENLDAP_REPL_LOCAL_PASSWORD
      • OPENLDAP_PASSWORD
    • mackerel-plugin-redis
      • REDIS_PASSWORD
    • mackerel-plugin-haproxy
      • HAPROXY_PASSWORD
    • mackerel-plugin-sidekiq
      • SIDEKIQ_PASSWORD
    • mackerel-plugin-mysql
      • MYSQL_PASSWORD
    • mackerel-plugin-rabbitmq
      • RABBITMQ_PASSWORD
    • mackerel-plugin-mongodb
      • MONGODB_PASSWORD

mackerel-check-plugins v0.16.0

  • プラグインのパスワードを環境変数で渡せるようになりました。対象のプラグインと環境変数名は以下の通りです。
    • check-ssh
      • LOGIN_PASSWORD
    • check-mysql
      • MYSQL_PASSWORD
    • check-postgresql
      • PGPASSWORD

mkr v0.26.0

  • [Windows] mkr plugin install 時に .zip ファイルも bin ディレクトリにコピーされてしまう問題を修正しました。

Pull Request をくださったみなさま、ありがとうございました!

Mackerel Meetup #11 を開催します

2018年最初の公式イベントである Mackerel Meetup #11 を、2月5日に開催します!

mackerelio.connpass.com

Mackerel をご利用いただいている シーサー株式会社、株式会社マクアケ(登壇順)の二社からゲスト登壇もいただき、盛りだくさんの内容を予定しています!一般枠・ブログ枠ともにまだ余裕があります。今後の Mackerel の進化する方向性などについてのお話もできれば、と考えていますので、ぜひご参加ください!

コマンドラインツール・mkr が Windows 向けパッケージに同梱されるようになりました ほか

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

今週は、大寒波で始まったかと思うと、3月並の気温になったりと、体温コントロールが難しい一週間でしたね。みなさんは体調を崩されてはいませんか?

私はまだこの冬は大きく体調を崩すことなく過ごせているので、できればこのまま冬を乗り切りたいなと思っています。そう考えると、自分自身についての色々な "メトリック" を "監視" したくなりますね。......職業病でしょうか?(笑)

それでは、今週のアップデート内容をお知らせします。

コマンドラインツール・mkr が Windows 向けパッケージに同梱されるようになりました

Mackerel に対する様々な操作をコマンドラインで実施することを強力にサポートするコマンドラインツール・mkr が、今週のアップデートにより、Windows 向けパッケージに同梱されるようになりました。これにより、より手軽に mkr を利用していただけると思います。

mkr の基本的な使い方や、mkr を用いた様々な便利な事例については以下のようなヘルプページを参考にしていただきたいのですが、

mackerel.io

mackerel.io

mackerel-agent が稼働しているようなサーバー内で mkr を用いる際には、サーバー内の設定ファイルを自動的に参照するようになっているため、 MACKEREL_APIKEY や自分自身のホストIDを指定する必要はありません。

mkr status
mkr retire

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

以下のとおり、mackerel-agent をアップデートしました。

  • コマンドラインツール・mkr が Windows 向けパッケージに同梱されるようにしました(上述)
  • v1 パッケージ利用時の安定性を向上しました
  • mackerel-agent once の挙動を変更しました
    • mackerel-agent once は mackerel-agent の処理を一度だけ手動で実行することで挙動を確認できるコマンドです。
    • これまで、メトリックの収集に失敗した場合でも、終了ステータスは 0 (正常扱い)としていました。
    • このバージョンより、メトリックの収集に失敗した場合は終了ステータス 1 (異常扱い)で終了するようになりました。

PagerDuty への通知内容を強化しました・エージェントなどをアップデートしました

こんにちは。Mackerelチーム CREの井上(id:a-know)です。 新年あけましておめでとうございます。

今日お知らせするリリースが、2018年の最初のリリースとなります。今年もたくさんの便利な・先進的な機能をたくさん、みなさんにお届けしたいと思っています。どうぞよろしくお願いします。

それでは早速、今週のアップデート内容をお知らせします。

PagerDuty への通知内容を強化しました

Mackerel の通知チャンネルのうちのひとつ・PagerDuty 通知に関して、通知リクエストに含まれる json 内容に対して、以下のような項目を追加しました。

  • ホストに対するアラート通知の場合に、新たに含まれるようになった項目
    • ホストID, ホスト名, そのホストが所属しているロールのリスト
  • サービスに対するアラート通知の場合に、新たに含まれるようになった項目
    • サービス名

PagerDutyのAPI V1, V2 いずれでもご利用いただけます。通知内容をもとに、よりプログラマブルな対応をしていただけるようになりましたので、ぜひ活用してください。

mackerel.io

プラグインの実行タイムアウト秒数を設定できるようになりました

mackerel-agent に対して各種設定可能なプラグイン。非常に便利なのですが、そのプラグインの処理におけるタイムアウト時間は、今までの仕様では一律30秒としていました。

これが、プラグイン毎に任意の秒数を設定できるようになりました。例えばタイムアウトを45秒に設定したい場合には、以下のように記述します。

[plugin.metrics.get-metrics]
command = "ruby /path/to/get-metrics.rb"
timeout_seconds = 45

チェックプラグインに対しても指定可能です。

[plugin.checks.check-state]
command = "ruby /path/to/check-state.rb"
timeout_seconds = 45

プラグインの実行間隔は、デフォルトでは1分です。各プラグイン実行の多重起動の制御はしない仕様になっていますので、 timeout_seconds には実行間隔を超えないような設定をすることを推奨します。(プラグインの処理が完了する前に次のプラグイン処理が開始されてしまいます。)

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

以下のとおり、mackerel-agent をはじめとした各種 OSS をアップデートしました。年末年始期間に、多くの Pull Request、コントリビュートをいただきました。皆様、本当にありがとうございました!

mackerel-agent v0.49.0

  • プラグインの実行タイムアウト秒数を設定できるようになりました(上述)
  • チェック監視通知のリトライ処理を改善しました
  • Dockerホストでメトリックや情報を取得しすぎてしまう問題に対処しました
    • veth で始まるネットワークインターフェースを除外するようにしました
    • dm- で始まデバイス(devicemapper)を除外するようにしました
    • dm- で始まるファイルシステム(devicemapper)を除外するようにしました
  • 中身が空の /var/lib/mackerel-agent/id が存在する場合に起動できなかった点を修正しました
  • [Windows版] check-uptime.exe を同梱するようにしました

mackerel-agent-plugins v0.42.0

  • [mongodb] replica-set を組んだ mongodb で正しくメトリックが取れないことがある点を修正
  • [haproxy] -socket オプションにより、Unix Domain Socketを指定できるようになりました
  • [postgres] 古いバージョン (9.3.14) のPostgresqlでも動作するようになりました

go-check-plugins v0.15.0

  • [mysql] 対象の mysql サーバが readonly かどうかを確認するサブコマンド readonly を追加しました

plugin-registry

  • mackerel-plugin-aws-ecs を追加しました。
    • プラグインインストーラーの機能を利用することで、 mkr plugin install mackerel-plugin-aws-ecs のように利用できます。
    • 既に試してくれているユーザーさんがいますので、以下の記事もぜひ参考にしてみてください!

kakakakakku.hatenablog.com

年末年始期間中におけるサポート窓口対応の休業のお知らせ

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

下記エントリにて事前にお知らせさせていただいていましたが、

mackerel.io

Mackerel にログインしている状態でヘッダー右上に表示されている「サポートチームへ連絡」からのお問い合わせや、support@mackerel.io 宛へのお問い合わせへの対応について、以下の年末年始期間中はお休みさせていただきます。

年末年始休業期間:2017年12月28日(木)〜2018年1月3日(水)

この期間中にいただいたお問い合わせについては、2018年1月4日(木)以降に順次対応させていただきます。