mackerel-agent configtestによるチェックが強化されました ほか

こんにちは。Mackerelチーム CRE の西山( id:tukaelu )です。今回のアップデート内容をお知らせします。

mackerel-agent configtestによるチェックが強化されました

チェック監視やメトリックプラグインの設定などでmackerel-agentの設定ファイルを変更する際、ターミナルから以下のコマンドを実行することで事前に設定ミスの有無を確認することができます。*1

mackerel-agent configtest

これまでは簡易的な構文チェックに対応していましたが、タイプミスなど記述に誤りがある場合についても事前にチェックできるようになりました。

なおこちらの開発にあたり、不具合の修正でMackerelユーザーの方からコントリビュートでご協力いただきました!ありがとうございます! 設定変更の際の記述ミスによるmackerel-agentの起動の失敗を防ぐことが出来ますので、ぜひご活用ください!

mackerel-plugin-elasticsearchに新たなメトリック、オプションが追加されました

  • -insecureオプションを指定することで、自己署名証明書の検証がスキップされるようになりました。
  • -user, -passwordオプションの指定によるBasic認証に対応しました。
  • -suppress-missing-errorオプションを指定することで、未提供のメトリックがある場合のエラー出力が抑止されるようになりました。
  • スクリプトに関する以下のメトリックが追加されました。
    • compilations
    • cache_evictions
    • compilation_limit_triggered

こちらのアップデートもユーザーの方からコントリビュートいただきました!ありがとうございます!

mackerel-plugin-mongodbにオプションが追加されました

  • -metric-key-prefixオプションを追加しました。これにより一つのホストで複数のMongoDBインスタンスを監視できます。

terraform providerに未対応だったAWSインテグレーションを追加しました

terraform providerからAWSインテグレーションの設定をする際、以下のAWS製品の監視設定に対応しました。

  • Route53
  • Amazon Connect
  • DocumentDB
  • CodeBuild

Windows版のmackerel-agentにおけるセキュリティを強化しました

mackerel-agentをビルドするGoのバージョンを1.19.3にアップデートしたことにより、Windows環境でサブプロセスに対して意図しない環境変数を設定できてしまう脆弱性に対応しました。

詳しくは以下のIssueをご確認ください。

github.com

mackerel-agentのバージョンアップにはこの様なセキュリティフィックスも含まれておりますので、定期的なアップデートをお勧めいたします。

アクセシビリティの改善を行いました

新規ホストの登録画面にて、OS選択などのアコーディオンの操作をキーボードのTabキーで行えるようになりました。

【予告】Kubernetes 環境でのメモリに関するメトリックの内容が変わります

Kubernetes 1.24 以降で仕様が変わり、環境によっては mackerel-container-agent でメモリ使用量が取得できなくなっています。 そのためコンテナのメモリ使用量 (container.memory.コンテナ名.usage) として取得していた値の取得先を /summary/stats API の UsageBytes から WorkingSetBytes へ変更します。

UsageBytes と WorkingSetBytes の違いは次の通りです。

  • UsageBytes = RSS + page Cache
  • WorkingSetBytes = UsageBytes - total_inactive_file
  • WorkingSetBytesUsageBytes 以下の値となります

次回リリースの mackerel-container-agent v0.8.0 から変更されます。値の傾向が変わる可能性があるため、必要に応じて監視設定の見直し等をお願いいたします。 この変更で影響が発生するのは、Kubernetes 環境(EKSを含む)ものであり、他のコンテナオーケーストレーション環境では影響ありません。

あらかじめご承知おきのほど、よろしくお願いいたします。

Mackerelアドベントカレンダー2022受付中です!

恒例になりましたが、今年もアドベントカレンダーへのエントリを受け付けております!ぜひご参加ください!

qiita.com

*1:環境変数にコマンドへのパスが通っている必要があります。

【リリース予告】Mackerel API のエラーレスポンスの形式を変更します ほか

こんにちは。Mackerelチーム CRE の五十嵐( id:masarasi )です。今回のアップデート内容をお知らせします。

【リリース予告】Mackerel API のエラーレスポンスの形式を変更します

これまで Mackerel API のエラーレスポンスの形式には endpoint に応じて複数の型がありましたが、利便性を考慮して 1 種類に統一します。

変更内容

2022 年 12 月 6 日 以降、Mackerel API がエラー時に返すレスポンスの形式を、各 endpoint 共通で以下の通り統一します。なお、成功時のレスポンス等についての変更はありません。

現在の形式

{
  "error": "foo"
}

または

{
  "error": {
    "message": "foo"
  }
}

変更後は以下に統一

{
  "error": {
    "message": "foo"
  }
}

影響範囲

公式のクライアントライブラリ (mackerel-client-go, mackerel-client-ruby) を利用せずに直接 Mackerel API を実行し、エラーレスポンスの body を参照するような自作のプログラムをご利用になっているお客様が対象です。mackerel-agent や公式のプラグインのみをご利用いただいているお客様に影響はありません。

該当するお客様におかれましては、変更後のエラーレスポンスの形式を許容するようにプログラムの改修をお願いします。

上記の変更につきまして、ご理解のほどよろしくお願いします。 ご不明な点などがございましたらサポートまでお問い合わせください。

アクセシビリティが改善しました

  • カスタムダッシュボードのウィジェット編集時のモーダルで、キーボードや支援技術による操作性が向上しました
  • 編集画面などの戻るボタン(<)にフォーカスした時にアウトラインが表示されるようになりました
  • 通知チャンネル編集画面の通知先一覧で、通知チャンネルや通知グループにフォーカスした時にアウトラインが表示されるようになりました
  • 監視ルールや通知チャンネルなどの一覧で、マウスオーバーした時にのみ表示されていた編集ボタンなどがフォーカスした時にも表示されるようになりました

いくつかの不具合を修正しました

  • TLS 1.0 のみを受け付けるサーバに対しての外形監視が失敗する不具合を修正しました(2022年10月19日 12時頃から15時頃に発生)
    • TLS 1.0 及び TLS 1.1 は RFC8996 で非推奨となっており、将来的に外形監視でのサポートを終了する予定です
  • AWS Nitro の EC2 インスタンスにおいて、mackerel-plugin-aws-ec2-ebs による EBS 関連のメトリックが正常な値を取得できない不具合を修正しました

UI・アクセシビリティを改善しました ほか

こんにちは。Mackerelチーム CRE の三浦( id:missasan )です。今回のアップデート内容をお知らせします。

UI・アクセシビリティを改善しました

オーガニゼーション名にアラート数を表示するようにしました

これまでアラート数は、アラートが発生している対象のオーガニゼーション画面を表示するか、オーガニゼーション一覧画面 を表示しなければ確認することができませんでした。

以下のように、オーガニゼーションを選択するリストでオーガニゼーション名の横にアラート数が表示されるようにしました。

オーガニゼーションを選択するリストにおいて、オーガニゼーション名の横にアラート数が表示されている様子

複数のオーガニゼーションに参加している場合でも簡単に他のオーガニゼーションのアラート発生状況を確認できるようになりました。

通知チャンネル追加ページのレイアウトを新しくしました

これまでは縦にリストされていましたが、項目が多く見にくくなっていたものをブロックにして可視性を高めました。

通知チャンネル追加ページにおいて、通知チャンネルがブロックで表示されている様子

パスワードマネージャのパスワード自動生成機能に対応しました

サインアップやパスワードリセットの際に、パスワードマネージャの自動生成機能が利用できるようにしました。

パスワード設定画面において、パスワードマネージャーの推奨を利用してパスワード設定をしている様子

いくつかのアクセシビリティを改善しました

  • ホスト一覧画面で一括操作チェックボックスをキーボードで操作できるようにしました
    • チェックボックスをクリックするなどしてフォーカスを移動させた後、キーボードの上下キーでフォーカスが移動でき、スペースキーで選択と解除ができます
  • a タグがフォーカスされた時にアウトラインを表示するようにしました
    • キーボード操作でどこがフォーカスされているかわかりにくい問題を解消しました

Azureインテグレーションのいくつかの不具合を改善しました

  • SQL Database でタグによる絞り込みができないことがある不具合を修正しました

  • Application Gateway でホストが複数登録される不具合を修正しました

ホストの一覧から複数ホストを選択した一括退役に対応しました ほか

こんにちは。Mackerelチーム CRE の西山( id:tukaelu )です。今回のアップデート内容をお知らせします。

ホストの一覧から複数ホストを選択した一括退役に対応しました

大変お待たせいたしました!!

これまでWebコンソールからのホスト退役は、1ホストずつ対応する必要がありました。

今回のアップデートでは、一覧から任意のホストを選択した上でまとめて退役ができるようになりました!

任意のホストを選択し、右上のホスト一括操作より退役が可能です!

なお、このアップデートにより Mackerel API でも一括で退役ができます。

ホストの一括退役 - Mackerel API ドキュメント (v0)

こちらの機能は、はてなインターンに参加してくれた学生の皆さんに実装していただきました!

ユーザーの皆様からとてもご要望の多かった機能で、ホストの管理・操作の利便性が向上しております。ぜひ日々の運用でご活用いただければと思います!

mkr が jq によるフィルタに対応しました

v0.47.0 にて gojq を組み込み、mkr 単体での jq の記法によるフィルタに対応しました。

例えばサービス/ロールがBlog:Webに所属するホストのidを抽出するには、次のようにして mkr だけで対応できます。

mkr hosts --jq '.[] | if has("roleFullnames") then select(.roleFullnames[] | . == "Blog:Web").id else empty end

こちらも利便性が向上しているかと思いますので、ぜひアップデートの上ご活用ください!

なお、jq と gojq とでの差異について、あわせてこちらをご確認いただければと思います。

GitHub - itchyny/gojq: Pure Go implementation of jq

Reactioのサービス終了に伴い、サポートを終了します

通知先として指定いただけたReactioが2022年8月31日にサービス終了したことに伴い、Mackerelでのサポートを終了します。

具体的な日程は別途ご案内しますが、以下のような流れで連携機能を停止します。

  • チャンネル設定にてReactioの新規作成ができなくなります。
  • 登録済みのReactioチャンネルが一覧に表示されなくなります。
  • 登録済みのReactioチャンネルのデータ削除を実施します。

設定画面の廃止以後、設定内容の確認は機能停止までは APIを用いて確認ができます。

なお、お客様側で本件に起因する特別な操作は発生致しません。

いくつかの不具合を修正しました

  • Typetalkの通知設定で prefix を指定した場合に、新規作成・更新の操作が行えない不具合を修正しました。(7月12日15時頃から発生)
  • URL外形監視にてレスポンスタイムに閾値を設定せず、サービスのみ紐付けた状態での新規作成・更新が行えない不具合を修正しました。(6月16日15時頃から発生)

領収書の有効期限が表示されるようになりました ほか

こんにちは。Mackerelチーム CRE の五十嵐( id:masarasi )です。今回のアップデート内容をお知らせします。

領収書の有効期限が表示されるようになりました

先日、以下でお知らせした領収書の仕様変更に関連して、支払履歴一覧に領収書の有効期限が表示されるようになりました。ユーザのみなさまにおかれましては、有効期限内に領収書をダウンロードしていただきますよう、ご協力をお願いいたします。

mackerel.io

Ubuntu 16.04、Debian 9 のサポートを終了しました

Ubuntu 16.04、Debian 9 のサポートを終了しました。インストール済みの Mackerel エージェントは引き続きご利用いただけますが、不具合などが発生してお問い合せをいただいても、サポートできない場合があることをご留意ください。

アラートを閉じる際に書いたメモの内容が表示されない不具合が発生していました

6 月 21 日 から 8 月 16 日までの間、アラートを閉じる際に書いたメモの内容がアラートの詳細画面に表示されない不具合が発生していました。ご迷惑をおかけして申し訳ありません。現在、この不具合は修正済みとなっております。

mackerel-container-agent が Amazon ECS Anywhere 環境に対応しました(ベータ版機能) ほか

こんにちは。Mackerelチーム CRE の三浦( id:missasan )です。今回のアップデート内容をお知らせします。

mackerel-container-agent が Amazon ECS Anywhere 環境に対応しました(ベータ版機能)

mackerel-container-agent v0.7.1 のリリースにて、Amazon ECS Anywhere 環境で、mackerel-container-agent を稼働させることができるようになりました。

github.com

ECS がタグによるロール割り当てに対応しました

AWSのタグを使ったロールの割り当て機能に、ECS を対応サービスとして追加しました。

mackerel.io

チェック監視のリクエストが滞留してしまう問題を改善しました

mackerel-agent がチェック監視の結果を Mackerel に送る際、一度に大量のリクエストが送られることを防ぐため、未送信のチェック監視結果を保持するキューにリクエストが蓄積している際に、次回の結果の送信が行われるまで30秒間待つなどの処理が行われていました。そのため、チェック監視の設定数が多い環境で、Mackerelのメンテナンス明けに溜まっていたキャッシュを送信する際などに、キューが捌ききれず増え続けてしまう事象が発生していました。

mackerel-agent v0.73.0 のリリースで、一度に送信できるチェック監視結果を増やす、待ち時間を短くするなどのチューニングを行い、リクエストが滞留しないよう改善を行いました。

github.com

これはユーザーの方からの PR によるものです。コントリビュートいただきありがとうございました!

check-disk が fuse.portal ファイルシステムにアクセスしてエラーになる問題を解消しました

go-check-plugins v0.42.2 にて、check-disk が fuse.portal ファイルシステムへのアクセスをスキップするよう改修しました。なお、これは GNU Coreutils と同等の動作です。

github.com

お盆期間中におけるサポート窓口対応休業について

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

休業期間:2022年8月11日(木)〜 2022年8月16日(火)

この期間中にいただいたお問い合わせについては、2022年8月17日(水)以降に順次対応させていただきます。ご理解のほど、どうぞよろしくお願いいたします。

AWSインテグレーションがCodeBuildに対応しました ほか

こんにちは。Mackerelチーム CRE の西山( id:tukaelu )です。今回のアップデート内容をお知らせします。

AWSインテグレーションがCodeBuildに対応しました

AWSインテグレーションの対応サービスにAWS CodeBuildを追加しました。 これによりアプリケーションのビルドにかかる所要時間などに対して閾値を設け、抵触する場合にアラート通知することが可能になります。

取得できるメトリックや注意事項など詳細は以下ヘルプを参照ください。

mackerel.io

レスポンスタイム監視が有効な外形監視のアラート詳細画面のグラフに閾値の線を表示するように改善しました

レスポンスタイムの閾値超過によって発生した外形監視のアラートのグラフ内に、閾値を示す破線を表示するように改善しました。

Mackerelでは監視結果をより視覚的に捉えていただけるよう、今後も改善を進めてまいります。

一部の画面のURLが変更になりました

UIのリニューアルなどに伴い、以下の画面のURLが変更になっています。

画面 変更前のURL 変更後のURL
監視ルール詳細(Monitors) /monitors#monitor={監視ルールID} /monitors/{監視ルールID}
通知チャンネル作成(Channels) /channels?new={通知先サービス名} /channels/-/create#{通知先サービス名}
通知チャンネル編集(Channels) /channels#channel={チャンネルID} /channels/{チャンネルID}

カスタムダッシュボードなどで監視ルールや通知チャンネルへのリンクを貼られている場合、変更前のURL形式ではアクセスができなくなっております。 お手数ですが、新しいURLに置き換えていただくようお願いいたします。