MySQL Router の監視を mysqlrouter_exporter でやってみる

技術本部 サービスリライアビリティグループ(SRG)の長谷川(@rarirureluis)です。
#SRG(Service Reliability Group)は、主に弊社メディアサービスのインフラ周りを横断的にサポートしており、既存サービスの改善や新規立ち上げ、OSS貢献などを行っているグループです。
本記事は、InnoDB Cluster で使われる MySQL Router の Prometheus Exporter を開発しているのでそれの紹介記事となります
 
 
💡
所属する組織・会社とは関係のない個人サービスでの検証・導入のためこれから紹介する画像にはサービス名、IPアドレスが記載されています。

mysqlrouter_exporter


MySQL Router REST API からメトリクスを収集し、Prometheus 形式で出力する Exporter です。
コンテナと、バイナリで公開しています。
MySQL Router は1アプリに1つを推奨しているため、mysqlrouter_exporter はサイドカーとしても扱いしやすいようにコンテナイメージのサイズは 22MB と小さくしています。

mysqlrouter-go

この exporter は MySQL Router REST API の SDK、mysqlrouter-go によって実現しています。

メトリクス


mysqlrouter_exporter は MySQL Router REST API で吐き出される全てのメトリクスを取得します。
 

MySQL Router の死活監視にも使える


mysqlrouter_exporter は を提供しています。
mysqlrouter_exporter(mysqlrouter-go) が MySQL Router REST API へ疎通ができなかった場合に、このメトリクスは になります。
 

Grafana ダッシュボード


 
Grafana ダッシュボードも公開しています。
 

サービスごとのダッシュボードを表示

mysqlrouter_exporter を起動する際に を付与します。
これにより、各サービスごと各コンテナ(ホスト)の MySQL Router の情報を見ることができます。

ヘルス状態

各 Route のヘルス状態が見れます。
1 なら Up、0 ならその route が Down しています。
クラスターのノード数の確認、接続が拒否されたホスト数の確認もできます。
間接的に Group Replication の状態確認も行えます。

Route Active Connections

接続先 Route のアクティブな接続数を表示します。

Route Total Connections

接続先 Route の合計接続数を表示します。

All Connections Information

各 route がどこの MySQL インスタンスに接続し、どの程度トラフィックを送信したかを表示します。

Route byte from/to server

各 Route, コネクションで発生したトラフィック量を表示します。
 

終わりに


InnoDB Cluster をこれから構築、またはすでに利用している方は MySQL Router の監視に mysqlrouter_exporter を利用してみてください。
SRG では一緒に働く仲間を募集しています。 ご興味ありましたらぜひこちらからご連絡ください。
 
SRG では最近出たホットなIT技術や書籍などについてワイワイ雑談するポッドキャストを運営しています。ぜひ、作業のお供に聞いていただければ幸いです。
このエントリーをはてなブックマークに追加