Diary of a Perpetual Student

Perpetual Student: A person who remains at university far beyond the normal period

Mackerel Azure Database フレキシブルサーバー対応のここがすごい!

arthur-1 Mackerel Advent Calendar 2023ラソン13日目の記事です。

Azure Database for MySQLPostgreSQL フレキシブルサーバー対応

MackerelのAzureインテグレーションはDatabase for MySQLPostgreSQLに対応していましたが、これまでサポートするデプロイオプションはシングルサーバーのみでした。しかし、2023年11月にフレキシブルサーバーへの対応を発表することができました。

mackerel.io

もとよりAzure Databaseシングルサーバーについては、MySQLでは2024年、PostgreSQLでは2025年に廃止されることが決定しておりました。すでにどちらもAzure Portalの画面上からの新規作成はできなくなっています。特にMySQLに関しては、特定の条件を満たした場合に自動でフレキシブルサーバーに移行されることになっており、その結果としてMackerel上で監視ができなくなったユーザーもおられたかと思います。

learn.microsoft.com

今回はAzure Database for MySQLPostgreSQL フレキシブルサーバー対応の見どころについてご紹介します。

移行してもホストや監視ルールは同じまま

Database for MySQLPostgreSQLでは、クラウドインテグレーション機能においてホストを識別するための識別子であるcustom_identifierにサーバー名(FQDN)を用いています。

この理由は、過去にリソースのIDに相当するものを用いていたところ、Azure側の仕様で値が変更されることがあり、結果としてMackerel上でホストが新たに生まれてしまったからです。Azure Database for MySQLPostgreSQLはフルマネージドなサービスなので、裏側で稼働環境が変わっていてもユーザーの監視の関心の対象ではなく、Mackerel上でホストが新しく生まれて切り替わっても嬉しいことがあまりありません。

この仕様をフレキシブルサーバーでも踏襲しており、フレキシブルサーバーに移行してもサーバー名が変わらなければ同じホストのままメトリックが記録されていきます。また、メトリック名も可能な限りシングルサーバーと同じ文字列を使うようにしているので、フレキシブルサーバーでそのメトリックが廃止されていなければ監視ルールはそのままご利用いただけます。

取得できるメトリックが増えた

フレキシブルサーバーではAzure Monitorで取得できるメトリックが大幅に増えており、これまではmackerel-plugin-mysqlなどのプラグインを併用しなければ取得できなかったようなメトリックがインテグレーションで取得できるようになっています。デプロイモードのリニューアルに際し、Azureがモニタリング機能についても大幅に拡張したのは嬉しい話です。Mackerelとしても監視に有益なものと捉え、取得するメトリックをシングルサーバーよりも増やしています。

たとえばDatabase for MySQLフレキシブルサーバーでは、以下のようにDMLコマンドの実行数をメトリックとして閲覧することが可能です。

インテグレーションで取得できるメトリック一覧については以下のヘルプ記事をご覧ください。

mackerel.io

mackerel.io