Monyogオブジェクトモデルは、すべてのパフォーマンスメトリックの計算に必要なすべてのOS/MySQL値を抽象化します。これによって、サーバーとの接続、SQLステートメントの実行、戻りコードの確認などの下位レベルの仕事からユーザーは解放されます。
MOMの値は、メトリックの計算と表示、閾値の確認、通知メールの送信などに使用します。
“SHOW GLOBAL STATUS”から返るすべての出力は、MONyog.MySQL.GlobalStatus.*として利用できます。たとえば、Uptimeステータス変数の値は、MySQL.GlobalStatus.Uptimeで取得することができます。
同じく、以下のオブジェクトモデルも定義されています。
変数 | MOMオブジェクト |
SHOW GLOBAL VARIABLES | MONyog.MySQL.GlobalVariables.* |
SHOW GLOBAL STATUS | MONyog.MySQL.GlobalStatus.* |
SHOW SLAVE STATUS | MONyog.MySQL.Slave.* |
OSレベルカウンター | MONyog.System.* |
注意
オペレーティングシステムレベルのカウンターは、CPUやメモリ使用などを測定します。
AlertCondition:
この属性は、3つの値(“重大”、“警告”または“なし”)に評価分類できる式で使用します。通常、JS式または関数を指定すると、それによって先にMOM値を定義しておいた“警告”または“重大”の閾値との比較が行われます。(任意) アラート条件に基づいてアラートを受け取るためのモニターの2つの例を考えてみましょう。
function() { if(ToInt(MONyog.MySQL.GlobalStatus.Select_scan) > 1000) return GetWarnStatusInt(this.Value, this.Critical, this.Warning, true); else return "None"; }
function() { if(this.Value != "(n/a)" && this.Value > 1) return "Critical"; else return "None"; }
WarmUpRequired:値に“Yes”を指定すると、サーバーが最低時間以上実行したときにだけ、現在のメトリックが有効になります。サーバーの実行時間が最低時間に達しない場合、AlertConditionは評価されず、アラートの表示や通知は行われません。SQL Diagnostic Managerの現行バージョンでは、3時間がハードコードされています。SQL Diagnostic Managerの今後のバージョンでは、“minimum period(最短時間)”をユーザーが変更できるようになるでしょう。(任意)
MailAlert:閾値に達したときにこのメトリックのアラートをメールで通知させるかどうかを指定します。(任意)
Graph:この値は、現在のメトリックにリアルタイムでグラフを表示するかどうかを定義します(任意)
Bargraph:この値は、パーセンテージタイプの値を棒グラフとしてプロットするかどうかを定義します。(任意)
Uptime:この値は、このメトリックに累積値を含めるかどうかを指定します。累積値とは、サーバーの立ち上げ(または前回のFLUSH STATUS)後、常に持続的に増加する値です。たとえば、Connection Attempts(接続試行回数)がそうです。Connection Attemptsの値は、MySQLサーバーが常に増分します。累積値の処理方法は、“Currently Running Threads(現在実行中のスレッド)”などの“ポイントインタイム”値とは異なります。
メトリックが累積の場合、この属性の値は必ず定数式、“MONyog.MySQL.GlobalStatus.Uptime”に設定します。
Format:各種カウンターの形式を表示します。現在、唯一受け付ける値は、NumCounterWithSecondsです。ここでは、メトリック値を“毎秒”値で表示するかどうかも指定します。
AdviceText:AlertConditionの評価結果が“重大”または“警告”のときに、表示されるアドバイステキストです。このテキストは、マウスをアラートアイコンに合わせると表示されるツールチップとしても表示されます。
RetryOverride:整数値を指定するMOM変数であり、サーバーレベルの“Send notification when alert-able”設定をカウンターレベルでオーバーライドします。注意:値“0”は指定できません。
NotifyStableOverride:値として、“Yes”または“No”を指定できるMOM変数。サーバーレベルの“Notify when stable(安定時に通知)”設定をカウンターレベルでオーバーライドします。
SQL Diagnostic Managerタグとサーバー名のMOM変数
SQL Diagnostic Managerで使用するタグとサーバー名は、Monyog Object Model(MOM)変数としてエクスポーズされます。MONyog.Connections.TagNameは、そのサーバーのタグ配列を返します。
MONyog.Connections.ConnectionNameは、そのサーバーの名を返します。これは、モニターに(タグまたはサーバー名に基づいて)さまざまな閾値レベルを設定するときに便利です。以下に例を示します。
以下の内容を、Add/Edit server(サーバーを追加/編集)-> View Advanced(拡張表示)の重大/警告フィールドに追加して、サーバーとタグ固有の閾値を設定することができます。
// サーバー名に基づいた閾値 if(MONyog.Connections.ConnectionName == "Testserver") return 80; // ‘Testserver’の閾値は80 if(MONyog.Connections.ConnectionName == "Productionserver") return 50; // タグ名に基づいた閾値 if(MONyog.Connections.TagName.indexOf("SomeTag") >=0 ) return 10; // ‘SomeTag’の閾値は10 if(MONyog.Connections.TagName.indexOf("SomeOtherTag") >=0 ) return 39;
サーバー名とタグに基づいてアラートを受信するようにカスタマイズされたMonitorの例(最大許容到達パーセンテージ)。
SQL Diagnostic Manager属性リファレンス - Chartsインターフェイス
Chart Name:新しいチャートの名前。
ChartType:チャートの種類。MySQLかシステムです。
SeriesCaption:グラフのすべてのシリーズのラベルを収めた配列。
SeriesValues:グラフの個々のシリーズの値を収めた配列。
ChartValue:seconds_behind_masterの実際の値をプロットする種類。2つの間隔の差です。2通りの方法で値をプロットできます。
- Delta
- Current
デフォルトは、‘Delta’です。
This chart shows boolean values:受け付ける値は“OnOff”のみです。これは、Y-Axisプロットの特別な時間であり、受け付ける2つの値は“On”または“Off”のみです。このタイプのグラフは、時間フレーム上で、MySQL/OSの可用性ステータスをプロットするときに便利です。(任意)
Unit: チャートのy軸の単位を指定します。例:['','KB','MB','GB','TB']
Unit Factor: その単位をインクリメントする時の制限。例:この値が1024の場合、1024 = 1KB、1024KB=1MBなど。
Uptime:“Monyog属性リファレンス - Monitorsインターフェイス”の項を参照してください。(任意)
MOMが追加するシステム情報
MOMが追加するシステム情報は、以下のカテゴリに分かれています。
全般
- MONyog.System.General.version: Linuxカーネルバージョン。
物理メモリ(単位KB)
- MONyog.System.Mem.sys_mem_total: 物理メモリ合計。
- MONyog.System.Mem.sys_mem_free: 使用可能物理メモリ。
- MONyog.System.Mem.proc_mem_vmrss: MySQLが使用中の物理メモリ。
スワップメモリ(単位KB)
- MONyog.System.Swp.sys_swp_total: スワップメモリ合計。
- MONyog.System.Swp.sys_swp_free: スワップメモリ空き領域。
- MONyog.System.Swp.proc_swp_vmsize: MySQLが使用中のスワップメモリ。
CPU
以下に示すのは、CPU関連のメトリックです。それぞれ、前回のキャプチャ以降、各種モードで使用したjiffy数を表します。
- MONyog.System.Cpu.sys_cpu_user: ユーザーモード
- MONyog.System.Cpu.sys_cpu_nice: ナイスモード
- MONyog.Systeem.Cpu.sys_cpu_system: システム/カーネルモード
- MONyog.System.Cpu.sys_cpu_idle: アイドリングの所要時間
- MONyog.System.Cpu.sys_cpu_iowait: IO待機の所要時間
- MONyog.System.Cpu.sys_cpu_hi: ハードウェアによる割り込み時間
- MONyog.System.Cpu.sys_cpu_si: ソフトウェアによる割り込み時間
I/O
以下に示すのは、メトリック関連のブロック装置です。それぞれが、システムにアタッチした装置に対して読み書きをしたブロック数を表します。
- MONyog.System.Io.blocks_in: 装置から読み取ったブロック数合計。
- MONyog.System.Io.blocks_out: 装置に書き込んだブロック数合計。
カスタム
- MONyog.System.Custom.Available: システムがSQL Diagnostic Managerに使用可能かどうか。
注意
現在のところ、“Timeframe”は、システム関連の値に反映されません。
ディスク
- MONyog.System.Disk.sys_disk_free_mysql: MySQLデータがあるボリュームに残された空き容量。
- MONyog.System.Disk.sys_disk_freepercent_mysql: 残った空き容量のパーセンテージ。
- MONyog.System.Disk.sys_disk_total_mysql: MySQLデータがあるボリュームのサイズ合計。
- MONyog.System.Disk.sys_disk_used_mysql: ボリューム上の各種ファイルが使用している容量。
- MONyog.System.Disk.sys_disk_free_innodb: InnoDBデータがあるボリュームに残された空き容量。
- MONyog.System.Disk.sys_disk_freepercent_innodb: 残った空き容量のパーセンテージ。
- MONyog.System.Disk.sys_disk_total_innodb: InnoDBデータがあるボリュームのサイズ合計。
- MONyog.System.Disk.sys_disk_used_innodb: ボリューム上の各種ファイルが使用している容量。
接続:
接続詳細情報として保存される接続名、MySQLユーザー、SSHユーザー、SSHトンネリングユーザーは、モニターにおけるカスタマイズのためにエクスポーズされます。(たとえば、‘connection name(接続名)’は、Monyog.Connections.ConnectionNameで、また‘MySQL user(MySQLユーザー)’は MONyog.connections.MySQLUserでアクセスできます。)
- MONyog.connections.ConnectionName: 目的のサーバーの名前
- MONyog.connections.TagName: 目的のサーバーのタグの配列を返します
- MONyog.connections.MySQLUser: このMySQLを使用中のユーザーにアクセスできます
- MONyog.connections.MySQLHost: MySQLホストにアクセスできます
- MONyog.connections.MySQLPort: MySQLポートにアクセスできます
注意
Linux からシステムカウンターと、すべてのプラットフォームのリモートシステムからアクセスログファイルを取り出すため、SSHサーバーは以下の変数を使用します。
- MONyog.connections.SSHHostSystem: SSHホストにアクセスするため
- MONyog.connections.SSHUserNameSystem: SSHユーザー名にアクセスするため
- MONyog.connections.SSHPortSystem: SSHポートにアクセスするため
注意
MySQLサーバーまでのSSHトンネリングを使用している場合、以下の変数を使用できます。
- MONyog.connections.SSHHostTunnel: SSHホストにアクセスするため
- MONyog.connections.SSHUserNameTunnel: SSHユーザー名にアクセスするため
- MONyog.connections.SSHPortTunnel: SSHポートにアクセスするため
MOMが追加するMySQL情報:
MySQLエラーログ
- MONyog.MySQL.ErrorLog.Is_accessible: MySQLエラーログにアクセスするため
- MONyog.MySQL.ErrorLog.Total_size: MySQLエラーログのサイズ
- MONyog.MySQL.ErrorLog.Size_changed: MySQLエラーログ内の新しいエントリの有無を確認するため
- MONyog.MySQL.ErrorLog.Last_error: MySQLエラーログの前回のエラー
Innodbデッドロック
- MONyog.MySQL.InnodbStatus.Deadlock_detected: 新しいInnodbデッドロックが見つかりました
- MONyog.MySQL.InnodbStatus.Last_detected_time: 前回のデッドロックを検出した期間
- MONyog.MySQL.InnodbStatus.Latest_deadlock: 最新デッドロックを検出しました