このページはCalíope 1.7を紹介しています。私がいま作っているバージョンです。1.6は、Mac、iPad、iPhone、Apple Watch、Apple TV、Apple Vision Pro向けにApp Storeで公開中です。それぞれの機能がどのバージョンで入ったかは変更履歴に書いてあります。

すべてのトピックに「Calíopeで開く」ボタンを追加します。アプリがインストールされている場合にのみ機能します。

ダッシュボード

ダッシュボードを開く

サーバの状態をリアルタイムで監視します。

場所: ワークスペース › ツール › ダッシュボード

ワークスペースのナビゲーションバーで「ダッシュボード」をクリックします。ダッシュボードには、自動的に更新されるサーバのメトリクスが表示されます。アクティブな接続、スレッド、稼働時間、転送速度です。

更新間隔:ヘッダのピッカーで、サーバの状態を問い合わせる頻度(1、2、5、10、30秒)を設定します。その隣には、最後のサンプルが届いた時刻が表示されます。データベースのサイズとプロセスリストは計算の負担が大きいため、この設定にかかわらず100秒ごとに更新されます。

毎秒の値はサンプル間の実際の時間から計算されるので、更新間隔を変えても値の尺度は変わりません。

Oracle

Oracleでは、ヘッダに「最も使用率の高いストレージ」が加わります。最も使われている表領域を、自動拡張を含めた最大サイズに対する割合で示します(DBA_TABLESPACE_USAGE_METRICS)。V$ビューの権限がないユーザはサンプルを読めません。その場合、ヘッダとすべてのカードには、決して来ない最初のサンプルを待つ代わりに、サーバが示した理由が表示されます。

キーワード: ダッシュボード、監視、リアルタイム、メトリクス、状態、サーバの統計

トラフィックとクエリーのグラフ

ネットワークのトラフィックと毎秒のクエリー数を可視化します。

場所: ワークスペース › ツール › ダッシュボード

MySQLMariaDBAurora

ダッシュボードには、「送信バイト数/秒」「受信バイト数/秒」「クエリー/秒」(QPS)の折れ線グラフがあります。

SQL Server

ダッシュボードには「クエリー/秒」の折れ線グラフがあり、サーバが受け取るバッチの数を数えます(Batch Requests/sec)。サーバは送受信したバイト数を報告しないため、それらのカードは表示されません。

PostgreSQL

ダッシュボードには「トランザクション/秒」の折れ線グラフがあります。pg_stat_databaseのコミットとロールバックの合計です。サーバはSQL文の数も送受信したバイト数も報告しないため、それらのカードは表示されません。

ClickHouse

ダッシュボードには、「送信バイト数/秒」「受信バイト数/秒」「クエリー/秒」(QPS)の折れ線グラフがあり、サーバのNetworkSendBytes、NetworkReceiveBytes、Queryカウンタから取得します。

Oracle

ダッシュボードには、「送信バイト数/秒」「受信バイト数/秒」「クエリー/秒」(QPS)の折れ線グラフがあり、V$SYSSTATのbytes sent via SQL*Net to client、bytes received via SQL*Net from client、execute countの統計から取得します。V$ビューを読む権限がないユーザにはカウンタが1つも届かず、ダッシュボードはゼロを描く代わりにその旨を表示します。

TiDB

ダッシュボードには「クエリー/秒」の折れ線グラフがあり、STATEMENTS_SUMMARYの実行回数から取得します。このサマリーは、サーバが30分ごとに閉じて開き直す期間です。切り替わったときは、その時点の点は描かれません。TiDBはSQLで送受信したバイト数を報告しないため、それらのカードは表示されません。

グラフはリアルタイムで更新され、直近に測定したデータポイントの履歴を表示します。

キーワード: QPS、トラフィック、バイト、ネットワーク、毎秒のクエリー数

分布のグラフ

接続、キャッシュメモリー、データベースごとのディスク使用量の円グラフ。

場所: ワークスペース › ツール › ダッシュボード

ダッシュボードの円グラフには、ユーザごとの接続、各データベースのサイズ(システムのものを除く上位8つ)、メモリー(内訳を公開しているサーバではデータキャッシュをクリーンなデータ、ダーティなデータ、空きに分け、合計メモリーを公開しているサーバでは使用中と空きに分けます)、スレッド(アクティブ、スリープ中、そしてサーバが公開していればキャッシュ済み)が表示されます。ユーザとサイズは100秒ごとに更新されます。

キーワード: 円グラフ、キャッシュ、InnoDB、メモリー、分布、スレッド

ダッシュボードのレイアウトを変更

2列表示と3列表示を切り替えます。

場所: ダッシュボード › レイアウトボタン

ダッシュボードのヘッダにあるレイアウトボタンで、2列のレイアウト(幅が広い)と3列のレイアウト(よりコンパクト)を切り替えます。ウインドウのサイズに合わせて表示を調整するのに便利です。

キーワード: レイアウト、列、グリッド、表示、配置

サーバのパフォーマンスのグラフ

追加のカード:スロークエリー、中断された接続、データキャッシュ、ロック。

場所: ワークスペース › ツール › ダッシュボード

MySQLMariaDBAurora

トラフィックとQPSのグラフに加えて、ダッシュボードには次の折れ線グラフのカードがあります:

- 「スロークエリー/秒」:しきい値long_query_timeを超えたクエリーの割合
- 「中断された接続/秒」:拒否された接続や、異常に中断された接続
- 「データキャッシュ(%)」:ディスクに触れずにサーバのキャッシュから返された読み取りの割合。キャッシュがどれだけ埋まっているかではありません
- 「テーブルロック」:クエリーがテーブルロックを待たなければならなかった回数

SQL Server

ダッシュボードは「クエリー/秒」の隣に「テーブルロック」を表示します。毎秒のロック待機です(Lock Waits/sec)。サーバはスロークエリーも中断された接続も報告しないため、それらのカードは表示されません。

PostgreSQL

サーバはスロークエリーも、中断された接続も、テーブルロックの待機も報告しないため、それらのカードは表示されません。折れ線グラフのカードは「トランザクション/秒」と「データキャッシュ(%)」です。後者は、pg_stat_databaseでキャッシュから読んだブロックとディスクから読んだブロックを比べたものです。

ClickHouse

サーバはスロークエリーも、中断された接続も、ロックの待機も数えず、ヒット率を測れるページキャッシュもないため、それらのカードは表示されません。メモリーのグラフは、サーバが使っている量を上限max_server_memory_usageと比べて表示します。

Oracle

Oracleはスロークエリー、中断された接続、ロックの待機をカウンタとして公開しないため、それらのカードは表示されません。「データキャッシュ(%)」はsession logical readsとphysical readsの比から求め、メモリーのグラフはインスタンスが使っている量(使用中のSGAと、使用中のPGA)を、SGAにまだ残っている空きと比べて表示します。

TiDB

TiDBは、毎秒のスロークエリー、中断された接続、ロックの待機、ヒット率を測れるページキャッシュをSQLで公開しません。SHOW GLOBAL STATUSは11行しかありません。それらのカードは表示されません。Calíopeは、それらがあるTiDBのステータスポート(10080)を読みません。

ヘッダの「データキャッシュ」は、報告するすべてのエンジンで、ディスクに触れずにサーバのキャッシュから返された読み取りの割合です。スロークエリーと中断された接続はダッシュボードの更新間隔に従います。データキャッシュとロックは秒単位では変わらないため、更新間隔がそれより短くても10秒ごとに再計算されます。

キーワード: スロークエリー、中断された接続、キャッシュ、InnoDBバッファ、テーブルロック、パフォーマンス

ダッシュボードの自動アラート

データキャッシュ、中断された接続、ロックがしきい値を超えるとダッシュボードが警告し、システムの通知も送れます。

場所: ワークスペース › ツール › ダッシュボード

Calíopeは2つの方法でサーバを監視します。

ヘッダで、ダッシュボードが更新されるたびに:「データキャッシュ」が90 %を下回ったとき、「中断された接続」があるとき、「テーブルロック」が毎秒0.5回の待機を超えたときに、バナーが表示されます。バナーにはメトリクスとその値が示され、値が正常に戻ると自動的に消えます。サーバが報告しないメトリクスでバナーが出ることはありません。

システムの通知として:ヘッダのベルのボタンで「サーバのアラート」が開きます。そこで通知をオンにし、サーバの最大値に対する接続数と、キャッシュのヒット率のしきい値を設定します。同じアラートは5分以内には繰り返されません。

MySQLMariaDBAuroraClickHouse

レプリケーションの遅延のしきい値もそこにあり、レプリケーションモニタで評価されます。

TiDB

TiDBには接続数の上限がない(max_connections = 0は無制限を意味します)ため、最大値に対する接続数のしきい値が発動することはありません。

キーワード: アラート、警告、しきい値、中断された接続、ロック、通知

ダッシュボードのカードを拡大

1つのカードを拡大して、詳しく表示します。

場所: ダッシュボード › カードをダブルクリック

ダッシュボードのカードをダブルクリック(iPadではダブルタップ)すると、拡大モードで表示されます。カードはダッシュボードの中で全画面に表示され、データの履歴も長くなります。「すべてのグラフ」を押すか、macOSではEscキーを押すと、すべてのカードを表示する通常の表示に戻ります。

キーワード: 拡大、カードを展開、詳細、全画面のカード、大きく表示

ダッシュボードをカスタマイズ

ダッシュボードのカードを並べ替えたり、非表示にしたりします。レイアウトはiCloudで同期されます。

場所: ダッシュボード › カスタマイズボタン(スライダ)

ダッシュボードでは、カードの順序と表示/非表示の両方をカスタマイズできます。ダッシュボードのヘッダにある☰(スライダ)ボタンで、カスタマイズモードをオンにします。

ドラッグで並べ替える:カードをドラッグして別のカードの上にドロップします。ドラッグしたカードがドロップ先の位置に移り、ほかのカードはずれていきます。ドラッグしている間は、移動先のカードが強調表示されます。macOSではマウスを使い、iPadではカードを長押ししてからドラッグします。

ドラッグせずに並べ替える:各カードの左下には、カードを1つ左または右に動かす2つの矢印があります。ドラッグが使えないキーボードやVoiceOverでは、この方法を使います。

非表示にする:カスタマイズモードでは、各カードの右上に斜線の入った目のボタンが表示されます。タップすると、カードはグリッドの下の「非表示のカード」パネルに移ります。非表示のカードをタップすると元に戻ります。

リセット:円形の矢印のボタンで、デフォルトの順序に戻し、すべてのカードを再び表示します。先に確認を求めます。

同期:レイアウトはiCloudアカウントごとに保存されます。「設定」でiCloud同期をオンにすると、順序と非表示のカードがデバイス間で自動的に同期されます。iCloudを使わない場合は、このデバイスにだけ保存されます。

カスタマイズモードがオンの間は、ダブルクリックでの拡大は無効になります。拡大を使うには、モードを終了してください(同じボタンで、いまはチェックマークになっています)。

キーワード: ダッシュボードをカスタマイズ、カードを並べ替え、カードをドラッグ、カードを非表示、斜線の入った目、レイアウトをリセット、iCloud同期

TVモード

バーもメニューもない全画面のグラフで、ダッシュボードを画面に表示したままにします。

場所: ダッシュボード › TVモードボタン(テレビ)

ダッシュボードのヘッダにあるテレビのボタンで、グラフが画面全体を使います。ツールのヘッダ、サイドバー、タブバー、ステータスバーはすべて隠れます。ダッシュボードをディスプレイに表示したままにして離れた場所から読むためのもので、列の数は使える幅から決まり、グラフはその幅いっぱいに広がります。

終了する:macOSではEscキーを押します。iPadでは、どこかをタップすると、閉じるボタンの付いた上部のバーが表示されます。タップですぐに終了しないのは、画面を拭いたり手が触れたりしてもモードが中断されないようにするためです。

上部のバーは数秒で自動的に隠れ、サーバ名と、最後のサンプルが届いた時刻を表示します。

画面がオンのまま:TVモードの間は、無操作で画面がスリープしません。これはツールバーの「スリープさせない」ボタンとは独立していて、TVモードに入ったり出たりしてもその設定は変わりません。

TVモードは、1つのカードの拡大やカスタマイズモードとは併用できません。TVモードに入ると、どちらも閉じます。

キーワード: TVモード、全画面、キオスク、集中、Esc、終了、画面をオン

ダッシュボードの一時停止と再開

ヘッダの一時停止ボタンで、グラフを消さずにサンプリングを止めます。同じボタンで再開します。

場所: ワークスペース › ツール › ダッシュボード

ダッシュボードのヘッダにある一時停止ボタン(「更新を一時停止」)で、サーバのサンプリングを止めます。グラフは描いたものを保ち、更新間隔のピッカーは無効になり、ライブの点は点滅を止めます。

同じボタン(「更新を再開」)で再開します。再開後は割合をゼロから測るので、一時停止のあとの最初の点に、止まっていた時間が混ざることはありません。

キーワード: 一時停止、再開、更新を停止、ダッシュボード

ダッシュボードからウィジェットのサーバを固定

ダッシュボードのヘッダにあるピンで、このサーバをウィジェットに表示するサーバにします。ウィジェットの設定にあるピン留めしたプロファイルと同じものです。

場所: ワークスペース › ツール › ダッシュボード

ダッシュボードのヘッダにあるピン(「この接続をウィジェットに固定」)で、このサーバをウィジェットに表示するサーバにします。「設定」の「ウィジェット」タブにある「ピン留めしたプロファイル」と同じ設定なので、一方で変えるともう一方も変わります。固定すると、Calíopeがバックグラウンドにある間もウィジェットを最新に保つバックグラウンド更新も再開します。

このサーバがすでに固定されている場合、ピンは塗りつぶされた琥珀色になります(「ウィジェットに固定された接続」)。iCloud同期がオンなら、選択はほかのデバイスにも同期されます。

ウィジェットにデータが表示されない場合は、「ウィジェットに『データなし』と表示される場合の対処法」を参照してください。

キーワード: ウィジェット、ピン、ピン留めしたプロファイル、バックグラウンド更新、ダッシュボード

ダッシュボードのフルスクリーン

ヘッダの最後にある2本の矢印のボタンで、ダッシュボードが画面全体を使います。TVモードではありません。

場所: ワークスペース › ツール › ダッシュボード

ダッシュボードのヘッダの最後にある2本の矢印のボタン(「フルスクリーン」)で、ダッシュボードが画面全体を使います。Macではウインドウがフルスクリーンになります。Mac以外では、ヘッダの数値、列のボタン、カードで画面を覆い、✕で閉じます。

TVモードではありません。フルスクリーンではヘッダの数値が残り、ディスプレイをスリープさせないこともありません。

キーワード: フルスクリーン、ダッシュボード、展開、画面を覆う

サーバのアラート

接続数、キャッシュヒット率、レプリケーションの遅延が設定可能なしきい値を超えたときに、システムの通知を受け取ります。

場所: ダッシュボード › アラート(ベル)

Calíopeは、接続しているサーバで重大な状態を検出したときに、システムの通知を送ることができます。

アラートを設定するには:
1. 「ツール」サイドバーから「ダッシュボード」を開きます。
2. ダッシュボードの上部のバーにあるベルのアイコンをタップします。
3. 「システムのアラートを有効にする」をオンにします。初めての場合は、システムが通知を送る許可を求めるので、許可します。
4. 環境に合わせてしきい値を調整します:
- 「最大接続数」(%) — サーバに設定された総数に対する接続の使用率。デフォルト:80%。サーバが飽和する前に接続の急増を見つけるのに役立ちます。
- 「キャッシュヒット率の最小値」(%) — キャッシュから返された読み取りの割合がこの値を下回るとアラートを出します。デフォルト:95%。値が低いのは、バッファプールが現在の負荷に対して足りないことを示します。
- 「レプリケーション遅延の最大値」(秒) — 許容するレプリケーションの最大遅延(秒)。デフォルト:30秒。サーバがレプリカとして設定されている場合にだけ適用されます。

通知の動作:
- 通知はシステムの通知として送られます。
- 状態が続くときに通知が重なりすぎないよう、同じ種類の通知の間には5分のクールダウンがあります。
- アラートは、ダッシュボードを開いている間、その更新サイクルのたびに評価されます。

権限:
通知の許可を拒否した場合は、次の場所で元に戻せます:
- macOS:「システム設定」›「通知と集中モード」›「Calíope」。
- iPad:「設定」›「通知」›「Calíope」。

ClickHouse

ClickHouseには「キャッシュヒット率の最小値」のしきい値がありません。サーバがキャッシュヒット率を報告しないので、ダッシュボードはそのカードを描かず、シートもそのしきい値を表示しません。

キーワード: アラート、通知、接続、キャッシュ、InnoDB、ヒット率、レプリカ、レプリケーション、遅延、しきい値、ベル、バッファプール、クールダウン、5分