レポート定義ファイル設定の主なポイントについて説明します。レポート定義ファイルのタグの詳細については、「7.3.3. レポート定義ファイル」を参照してください。
レポート定義ファイルで新しいテーブル/カラムの定義を追加した場合は、それらをレポートテンプレートファイル内に配置する必要があります。レポートテンプレートファイルの設定例については、「7.3.5. レポートテンプレートファイル」を参照してください。
以下の例について説明します。
「7.3.4. 組み込みテーブル」に記載の組込テーブルのカラム名は、データの挿入位置を特定するためにあらかじめ決められた名前となっています。
以下のように、columnタグのテキスト値を指定すると、レポートファイル生成時に別の表示用テキストに変換することができます。
columnタグのkey属性とテキスト値によってカラム名と表示用テキストの対応を定義します。(「7.3.3. レポート定義ファイル」の「(3)columnsタグ、columnタグ」)
<table key="VMServerList">
<columns>
<column key="MachineName">マシン名</column>
<column key="ProductName">モデル名</column>
<column key="OSName">OS名</column>
<column key="OSVersion">OSバージョン</column>
<column key="Uuid">UUID</column>
<column key="CpuProduct">CPU種類</column>
<column key="LogicalCpuCount">論理CPU数</column>
<column key="CpuSocketCount">ソケット数</column>
<column key="CpuCoreCount">コア数</column>
<column key="CpuClockMHz">CPU周波数(MHz)</column>
…
</columns>
</table>
すべてのテーブルに対して、指定したカラムの値でソートした結果を表示するように定義することができます。
sortタグのtargetColumn属性で対象のカラムを指定し、descending属性で降順か昇順かを指定します(省略時は昇順)。(「(4)sortタグ」)
tableタグのmaxDataCount属性で先頭から何個まで表示するかを指定することで、順位が上位のものだけ表示することができます。(「7.3.3. レポート定義ファイル」の「(2)tablesタグ、tableタグ」)
<table key="VMRankingDescMaxCpuUsagePercent" sourceTable="VMList" maxDataCount="10">
<sort targetColumn="MaxCpuUsagePercent" descending="true"/>
<columns>
<column key="Index">順位</column>
<column key="MachineName">マシン名</column>
<column key="MaxCpuUsagePercent">値</column>
<column key="CpuCount">CPU数</column>
</columns>
</table>
テーブル内に存在する複数のカラムのデータを別々の場所に配置したい場合や、同じカラムのデータを複数箇所に配置したい場合などに、そのテーブルの特定のカラムのみを抽出した新しいテーブルを定義することができます。
tableタグのsourceTable属性で入力データとなるテーブル名を指定し、columnタグで抽出するカラム名を指定します。(「7.3.3. レポート定義ファイル」の「(2)tablesタグ、tableタグ」、「(3)columnsタグ、columnタグ」)
<table key="ResourcePoolVMServers" sourceTable="VMServerList">
<columns>
<column key="MachineName">マシン名</column>
<column key="CpuClockMHz">CPU周波数(MHz)</column>
<column key="LogicalCpuCount">論理CPU数</column>
<column key="CpuUsageMHz">CPU使用量(MHz)</column>
<column key="MaxCpuUsageMHz">最大CPU使用量(MHz)</column>
<column key="MemorySizeMB">メモリ容量(MB)</column>
<column key="MemoryUsageMB">メモリ使用量(MB)</column>
<column key="MaxMemoryUsageMB">最大メモリ使用量(MB)</column>
</columns>
</table>
テーブルに挿入されるデータのうち特定のもののみを抽出したい場合に、その抽出条件を定義することができます。
conditionタグのtargetColumn属性で対象のカラムを指定し、equal/notEqual/greaterThan/lessThan/greaterEqual/lessEqual/match属性で条件を指定します。
conditionタグのtype属性にand/orを指定し、配下に複数のconditionタグを置くことで、複合条件を指定することもできます。(3段階以上の指定も可能です)
conditionタグのtype属性にnotを指定した場合は、条件が反転されます。
(「7.3.3. レポート定義ファイル」の「(5)conditionタグ」)
<condition targetColumn="xxx" greaterEqual="10" lessThan="20"> のように、1つのconditionタグ内に複数の条件を指定した場合、それらをand結合した複合条件として解釈されます。
conditionタグのtype属性にand/orを指定して配下にconditionタグを置いた場合、type属性を指定したconditionタグの他の属性の値は無視されます。複合条件を構成する各条件はすべて配下のconditionタグに記述してください。
type属性を省略して配下にconditionタグを置いた場合、type属性にandが指定されたものとして動作します。
<table key="ResourcePoolDatastores" sourceTable="StorageList">
<condition targetColumn="VMCreationCandidate" equal="True"/>
<columns>
<column key="DatastoreName">データストア名</column>
<column key="DatastoreSizeGB">容量(GB)</column>
<column key="DatastoreLimitPercent">使用率上限</column>
<column key="DatastoreLimitGB">使用量上限(GB)</column>
<column key="DatastoreUsageGB">使用量(GB)</column>
<column key="DatastoreLimitVMCount">稼動VM数上限</column>
<column key="DatastoreVMCount">稼動VM数</column>
</columns>
</table>
<table key="VMServerAbnormalSummary" sourceTable="VMServerList">
<condition type="or">
<condition targetColumn="ExecutionStatus" equal="Abort"/>
<condition targetColumn="HardwareStatus" equal="Faulted"/>
<condition targetColumn="HardwareStatus" equal="Degraded"/>
</condition>
<columns>
<column key="MachineName">マシン名</column>
<column key="HardwareStatus">ハードウェア状態</column>
<column key="ExecutionStatus">実行状態</column>
<column key="LastJobTime">ジョブ実行日時</column>
<column key="LastJobStatus">ジョブ実行状態</column>
<column key="LastJobMessage">ジョブ概要</column>
<column key="LastLogTime">ログ出力日時</column>
<column key="LastLogMessage">ログメッセージ</column>
</columns>
</table>
2つのテーブルを結合したデータを表示するように定義することができます。
結合するテーブルの1つをtableタグのsourceTable属性に、他方をjoinタグのtargetTable属性に指定します。結合に使用するカラムのうちsourceTable側をjoinタグのsourceColumn属性に、targetTable側をjoinタグのtargetColumn属性に指定します。
sourceTableのsourceColumnの値とtargetTableのtargetColumnの値が等しい各テーブルの行が結合されます。
(「7.3.3. レポート定義ファイル」の「(6)joinタグ」)
<table key="VMAbnormalLog" sourceTable="LogHistory">
<join sourceColumn="TargetName" targetTable="VMAbnormalSummary" targetColumn="MachineName"/>
<columns>
<column key="MachineName">マシン名</column>
<column key="DateTime">日時</column>
<column key="LogLevel">ログレベル</column>
<column key="JobId">ジョブID</column>
<column key="EventId">イベントID</column>
<column key="RequestAddress">要求元</column>
<column key="SourceName">実行元/イベント元</column>
<column key="Message">概要</column>
</columns>
</table>
指定したカラムの値に対して、どの範囲にどのくらいのデータ数が存在するかの集計結果を表示するように定義することができます。
tableタグのsourceTable属性で入力データとなるテーブルを指定し、distributionタグを定義します。columnタグで集計対象のカラムを指定し、rangesタグおよびrangeタグで集計範囲を指定します。(「(7)distributionタグ」、「(9)rangesタグ、rangeタグ」)
columnタグの指定では、"Range" 以外のカラムが集計対象となります。カラム "Range" には集計範囲の表示用テキストが出力されますので、テキスト値に表示用テキストの書式を指定します。書式の記述形式は.NET Frameworkの書式指定文字列の形式に準拠します。インデックス0には集計範囲の開始点、インデックス1には集計範囲の終了点が出力されます。
集計範囲は以下のいずれかの方法により指定します。
各集計範囲の開始点と終了点を明示的に指定
distributionタグ直下にrangesタグを配置し、その下にrangeタグを複数配置します。各rangeタグのfrom属性で範囲の開始点、to属性で範囲の終了点を指定します。集計範囲はfrom以上to未満となります。データの存在しない範囲も表示されます。
<table key="VMDistributionMemoryUsagePercent" sourceTable="VMList">
<distribution>
<ranges>
<range from="0" to="20">{0}-{1}%</range>
<range from="20" to="50">{0}-{1}%</range>
<range from="50" to="80">{0}-{1}%</range>
<range from="80" to="100">{0}-{1}%</range>
</ranges>
</distribution>
<columns>
<column key="Range">メモリ(%)</column>
<column key="AvgMemoryUsagePercent">平均メモリ使用率</column>
<column key="MaxMemoryUsagePercent">最大メモリ使用率</column>
</columns>
</table>
集計範囲の開始点と幅を指定
distributionタグ直下にrangeタグを配置し、from属性で範囲の開始点、width属性で範囲の幅を指定します。 集計範囲は(from + width * n)以上(from + width * (n + 1))未満の範囲となります。データの存在しない範囲は表示されません。
<table key="VMDistributionMemoryUsagePercent" sourceTable="VMList">
<distribution>
<range from="0" width="10">{0}-{1}%</range>
</distribution>
<columns>
<column key="Range">メモリ(%)</column>
<column key="AvgMemoryUsagePercent">平均メモリ使用率</column>
<column key="MaxMemoryUsagePercent">最大メモリ使用率</column>
</columns>
</table>
指定したカラムの値に対して、どの値がどのくらいの割合を占めるのかの比率を表示するように定義することができます。
tableタグのsourceTable属性で入力データとなるテーブルを指定し、ratioタグを定義します。targetColumn属性で対象のカラムを指定します。対象のカラムの値ごとのデータ数を集計し、そのデータ数がカラム "Count" に、全体に対する比率(%)がカラム "Ratio" に出力されます。
rangesタグおよびrangeタグで集計範囲を指定することもでき、この場合は範囲ごとのデータ数および比率が出力されます。(rangesタグおよびrangeタグの指定方法はdistributionタグの場合と同じです。)
集計のデータ数がtableタグのmaxDataCount属性の値を超える場合、maxDataCount番目以降のデータは「その他」にまとめられます。
(「7.3.3. レポート定義ファイル」の「(9)rangesタグ、rangeタグ」)
<table key="VMRatioMemorySizeMB" sourceTable="VMList" fixOutside="true" maxDataCount="6">
<ratio targetColumn="MemorySizeMB"/>
<columns>
<column key="MemorySizeMB">メモリ(MB)</column>
<column key="Count">VM数</column>
<column key="Ratio">比率</column>
</columns>
</table>
<table key="VMRatioCpuResourceMHz" sourceTable="VMList" fixOutside="true" maxDataCount="6">
<ratio targetColumn="CpuResourceMHz">
<range width="1000">{0}-{1}MHz</range>
</ratio>
<columns>
<column key="CpuResourceMHz">CPU(MHz)</column>
<column key="Count">VM数</column>
<column key="Ratio">比率</column>
</columns>
</table>
合計(sum)・平均(average)の計算結果およびカウント数(count)を表示するテーブルを定義することができます。
tableタグのsourceTable属性で入力データとなるテーブルを指定し、calculationタグを定義します。type属性で計算の種類を指定します。(「7.3.3. レポート定義ファイル」の「(10)calculationタグ」)
合計(sum) :
calculationタグのtype属性にsumを指定し、columnタグで対象のカラムを指定します。(数値型のカラムのみ指定可能)
対象のカラムを複数指定した場合は、それぞれのカラムに対して計算が実行されます。
<table key="VMServerTotalResource" sourceTable="VMServerList">
<calculation type="sum"/>
<columns>
<column key="CpuResourceMHz">CPUリソース合計(MHz)</column>
<column key="MemorySizeMB">メモリ合計(MB)</column>
</columns>
</table>
平均(average) :
calculationタグのtype属性にaverageを指定し、columnタグで対象のカラムを指定します。(数値型のカラムのみ指定可能)
対象のカラムを複数指定した場合は、それぞれのカラムに対して計算が実行されます。
<table key="VMServerAverageResourceUsagePercent" sourceTable="VMServerList">
<calculation type="average"/>
<columns>
<column key="CpuUsagePercent">平均CPU使用率</column>
<column key="MemoryUsagePercent">平均メモリ使用率</column>
</columns>
</table>
カウント(count) :
calculationタグのtype属性にcountを指定します。
カラム"Count"にカウント数が出力されます。
<table key="VMServerAbnormalCount" sourceTable="VMServerAbnormalSummary">
<calculation type="count"/>
<columns>
<column key="count">異常VMサーバ数</column>
</columns>
</table>
SystemMonitor性能監視から取得したビルトイン性能情報を出力するように定義することができます。
ビルトイン性能情報の時系列データおよびサマリデータを出力するための組込テーブル(「7.3.4. 組み込みテーブル」の「(5)マシン/論理ディスク性能情報(時系列)」、「(6)マシン/論理ディスク性能情報(サマリ)」、「(7)リソースプール履歴(時系列、単一)」、「(8)リソースプール履歴(時系列、複数)」)を定義します。
<table key="VMServerDiskIOPS">
<columns>
<column key="DateTime">時刻</column>
</columns>
</table>
<table key="VMServerDiskIOPSSummary">
<columns>
<column key="StartTime">開始時刻</column>
<column key="EndTime">終了時刻</column>
<column key="MaxTime">最大時刻</column>
<column key="MinTime">最小時刻</column>
<column key="MaxValue">最大値</column>
<column key="MinValue">最小値</column>
<column key="AvgValue">平均値</column>
</columns>
</table>
マシン/ストレージ一覧用の組込テーブル(「7.3.4. 組み込みテーブル」の「(2)管理対象マシン、ストレージの一覧」)で、ビルトイン性能情報を出力するためのカラムを定義します。
<table key="StorageList">
<sort targetColumn="DiskVolumeName"/>
<columns>
...
<column key="AvgLunTransferMBps">平均転送量(MBps)</column>
<column key="MaxLunTransferMBps">最大転送量(MBps)</column>
<column key="AvgLunIOPS">平均I/O(IOPS)</column>
<column key="MaxLunIOPS">最大I/O(IOPS)</column>
<column key="AvgLunAverageTransferLengthKB">平均転送データ長(KB)</column>
<column key="MaxLunAverageTransferLengthKB">最大転送データ長(KB)</column>
<column key="AvgLunAverageResponseMicrosec">平均応答時間(microsec)</column>
<column key="MaxLunAverageResponseMicrosec">最大応答時間(microsec)</column>
</columns>
</table>
SystemMonitor性能監視から取得したカスタム性能情報を出力するように定義することができます。(ビルトイン性能情報のデータの単位を変更する場合も、同様の方法で定義することができます。)
tableタグのperfIndicator属性で対象の性能情報を指定し、perfTargetType属性で監視対象の種別を指定することにより、性能情報の時系列テーブルを定義します。このとき、perfUnitConversion属性を指定することにより、性能情報の単位を変換することができます。また、tableタグのperfSummary属性で時系列テーブルを指定することにより、性能情報のサマリテーブルを定義することができます。
<-- 仮想マシンの "Virtual Bytes" の時系列テーブル (MB単位) -->
<table key="VMMemoryVirtualMB" perfIndicator="Process(_Total)\Virtual Bytes"
perfTargetType="VM" perfUnitConversion="BytePrefixUp2">
<columns>
<column key="DateTime">時刻</column>
</columns>
</table>
<-- 仮想マシンの "Virtual Bytes" のサマリテーブル (MB単位) -->
<table key="VMMemoryVirtualMBSummary" perfSummary="VMMemoryVirtualMB">
<columns>
<column key="StartTime">開始時刻</column>
<column key="EndTime">終了時刻</column>
<column key="MaxTime">最大時刻</column>
<column key="MinTime">最小時刻</column>
<column key="MaxValue">最大値</column>
<column key="MinValue">最小値</column>
<column key="AvgValue">平均値</column>
</columns>
</table>
マシン一覧用の組込テーブル(「7.3.4. 組み込みテーブル」の「(2)管理対象マシン、ストレージの一覧」)で、columnタグのperfIndicator属性で対象の性能情報を指定し、perfCalculation属性で計算方法を指定することにより、性能情報を出力するためのカラムを定義します。このとき、perfUnitConversion属性を指定することにより、性能情報の単位を変換することができます。
<table key="VMList">
<sort targetColumn="MachineName"/>
<columns>
...
<column key="AvgMemoryVirtualMB" perfIndicator="Process(_Total)\Virtual Bytes"
perfCalculation="average" perfUnitConversion="BytePrefixUp2">
平均仮想メモリ使用量(MB)
</column>
<column key="MaxMemoryVirtualMB" perfIndicator="Process(_Total)\Virtual Bytes"
perfCalculation="max" perfUnitConversion="BytePrefixUp2">
最大仮想メモリ使用量(MB)
</column>
...
</columns>
</table>
時系列性能情報から予測情報を出力するように定義することができます。
tableタグのsourceTable属性で入力となる時系列性能情報テーブルを指定し、predictionタグのtype属性で予測モデルを指定します。また、tableタグのsourceTable属性で時系列性能情報テーブルを指定し、predictionタグのsummary属性を指定することにより、性能予測情報のサマリテーブルを定義することができます。
(「7.3.3. レポート定義ファイル」の「(11)predictionタグ」)
<-- 仮想マシンサーバのメモリ使用率(%)の時系列性能予測テーブル -->
<table key="VMServerMemoryUsagePercentPrediction" sourceTable="VMServerMemoryUsagePercent">
<prediction type="ssa,ols" windowSizeHour="24" limitPercent="80" limitColumn="Limit" />
<columns>
<column key="DateTime">時刻</column>
<column key="Limit">警告値(80%)</column>
</columns>
</table>
<-- 仮想マシンサーバのメモリ使用率(%)の性能予測サマリテーブル -->
<table key="VMServerMemoryUsagePercentPredictionSummary" sourceTable="VMServerMemoryUsagePercentPrediction">
<prediction summary="true" />
<columns>
<column key="TargetName">マシン名</column>
<column key="DaysToLimit">超過までの日数</column>
<column key="LimitDate">超過日</column>
</columns>
</table>