データの粒度と保持

データ値の集計

Monitor Serviceは、ユーザーセッション使用状況、ユーザーログオンの処理性能の詳細、セッションの負荷分散の詳細、および接続とマシンのエラー情報を含む、さまざまなデータを収集します。データはカテゴリにより異なる方法で集計されます。OData Method APIを使って示されたデータ値の集計を理解することは、データの解釈に不可欠です。次に例を示します。

  • 接続セッション(Connected Session)やマシンエラー(Machine Failure)は一定の期間の状態を示すため、その期間内の最大値として公開されます。
  • ログオン期間(LogOn Duration)は時間の長さを示す指標であるため、期間内の平均として公開されます。
  • ログオン数(LogOn Count)および接続障害(Connection Failure)は一定の期間に発生した数を示し、期間内の合計値として公開されます

同時データ評価

重複しているセッションは同時発生していると考える必要があります。ただし、間隔として1分を指定した場合、1分以内に発生するすべてのセッションは(重複しているかしていないかに関係なく)すべて同時であるとみなされます。つまり、間隔のサイズが非常に小さいため、精度の計算に関係するパフォーマンス上のオーバーヘッドを考慮する必要はありません。2つのセッションがその1時間内の別々の1分間に発生する場合、それらは重複しているとはみなされません。

サマリー表と生データの相関

データモデルでは、以下の2つの方法でメトリックスが示されます。

  • サマリーテーブルでは、分単位、時間単位、および日単位のメトリックスを集計したものが示されます。
  • 生データは、セッション、接続、アプリケーション、およびそのほかのオブジェクト内で記録された個々のイベントまたは現在の状態を示します。

データをAPIコール間またはそのデータモデル内で関連付けるときは、以下の概念および制限事項を考慮してください。

  • 未完の間隔にはサマリーデータがありません。メトリックスサマリーは長時間での履歴傾向を示すためのものであり、完結した間隔のサマリーテーブルに集計されます。データ収集の開始時や終了時のサマリーデータはありません。1日(間隔=1440)の集計値の場合、最初と最後の未完の1日にはデータがないことを意味します。これらの未完の間隔に生データが存在しても、そのデータが集計されることはありません。各データ粒度の最初と最後の集計間隔は、各サマリーテーブルから最小と最大のSummaryDateを取得することで決定できます。SummaryDate列は、間隔の開始時を示します。Granularity列はその集計データの間隔の長さを示します。
  • 時間による関連付け。前述のように、メトリックスは完結した間隔のサマリーテーブルに集計されます。これらの値は履歴傾向を知る目的で使用できますが、生イベントの方が集計された値よりも傾向分析に適切な状態を示している場合があります。集計値と生データとを時間ベースで比較する場合、未完の間隔や間隔の最初と最後にサマリーデータがないことを考慮する必要があります。
  • 欠落イベントまたは潜在イベント集計期間で欠落または潜在しているイベントがあると、サマリーテーブルに集計されたメトリックスが正確でない場合があります。Monitor Serviceでは現在の状態の正確な維持が試行されますが、過去にさかのぼって欠落イベントや潜在イベントをサマリーテーブルに再集計することはありません。
  • 接続の高可用性。接続の高可用性により、現在の接続のサマリーデータ数に差異が生じることがありますが、セッションインスタンスは生データ内で実行されています。
  • データの保持期間。サマリーテーブルのデータは、生イベントデータとは異なるグルーミングスケジュールで保持されます。このため、サマリーテーブルまたは生テーブルのクリーンアップにより、データが消去されている場合があります。データの保持期間は、サマリーデータの粒度によっても異なる場合があります。低い粒度(分単位)のデータは、高い粒度(日単位)のデータよりも早くクリーンアップされます。特定の粒度のデータが消去されていても、より高い粒度のデータが存在している場合があります。APIコールでは指定した粒度のデータのみが返されるため、データを取得できない場合でもその期間内のより高い粒度では取得できることがあります。
  • タイムゾーン。格納されるメトリックスのタイムスタンプではUTCが使用されます。サマリーテーブルは1時間区切りのタイムゾーンごとに集計されます。1時間区切りのタイムゾーンに属さない場合は、データの集計先に不整合が生じることがあります。

データの粒度と保持

Directorで取得される集計データの粒度は、要求された時間(T)の関数です。以下の規則があります。

  • 0 < T <= 1時間の場合は分単位の粒度
  • 0 < T <= 30日の場合は時間単位の粒度
  • T > 31日の場合は日単位の粒度

集計データから取得されないデータを要求すると、生のセッション(Session)および接続(Connection)情報から取得されます。このデータの量はすぐに大きくなるため、専用のスケジュールでクリーンアップされます。クリーンアップにより、意味のあるデータのみが長期間保持されます。これにより、レポートに必要な粒度を維持しながら良好なパフォーマンスが提供されます。Platinum Editionでは、クリーンアップが開始されるまでの日数をカスタマイズできます。

設定にアクセスするには、Delivery Controllerで以下のPowerShellコマンドを実行します:

asnp Citrix.*
 Get-MonitorConfiguration
 Set-MonitorConfiguration -<setting name> <value>

クリーンアップは以下の設定により制御されます。

  設定名 対象データ デフォルト値(Platinum、日数) デフォルト値(Platinum以外、日数)
1 GroomSessionsRetentionDays セッション終了後のセッションレコードと接続レコードの保有 90 7
2 GroomFailuresRetentionDays MachineFailureLogレコードおよびConnectionFailureLogレコード 90 7
3 GroomLoadIndexesRetentionDays LoadIndexレコード 90 7
4 GroomDeletedRetentionDays LifecycleStateが「Deleted」であるMachineエンティティ、Catalogエンティティ、DesktopGroupエンティティ、およびHypervisorエンティティ。関連するSessionレコード、SessionDetailレコード、Summaryレコード、Failureレコード、またはLoadIndexレコードも削除されます。 90 7
5 GroomSummariesRetentionDays DesktopGroupSummaryレコード、FailureLogSummaryレコード、およびLoadIndexSummaryレコード。集計データ(日単位) 90 7
6 GroomMachineHotfixLogRetentionDays VDAマシンおよびControllerマシンに適用されたHotfix 90 90
7 GroomMinuteRetentionDays 集計データ(分単位) 3 3
8 GroomHourlyRetentionDays 集計データ(時間単位) 32 7
1041 GroomApplicationInstanceRetentionDays アプリケーションインスタンスの履歴 90 0
10 GroomNotificationLogRetentionDays 通知ログレコード 90  
11 GroomResourceUsageRawDataRetentionDays リソース使用率データ(生データ) 1 1
12 GroomResourceUsageMinuteDataRetentionDays リソース使用率サマリーデータ(分単位) 7 7
13 GroomResourceUsageHourDataRetentionDays リソース使用率サマリーデータ(時間単位) 30 7
14 GroomResourceUsageDayDataRetentionDays リソース使用率サマリーデータ(日単位) 90 7
35 GroomProcessUsageRawDataRetentionDays プロセス使用率データ(生データ) 1 1
16 GroomProcessUsageMinuteDataRetentionDays プロセス使用率データ(分単位) 3 3
17 GroomProcessUsageHourDataRetentionDays プロセス使用率データ(時間単位) 7 7
18 GroomProcessUsageDayDataRetentionDays プロセス使用率データ(日単位) 30 7
19 GroomSessionMetricsDataRetentionDays セッションメトリクスデータ 7 7
20 GroomMachineMetricDataRetentionDays マシンメトリクスデータ 3 3
21 GroomMachineMetricDaySummaryDataRetentionDays マシンメトリクスサマリーデータ 90 7
22 GroomApplicationErrorsRetentionDays アプリケーションエラーデータ 1 1
23 GroomApplicationFaultsRetentionDays アプリケーション障害データ 1 1

注意:Monitor Serviceデータベースの値を変更した後でその値を適用するには、このサービスを再起動する必要があります。Monitor Serviceデータベースの値の変更は、Citrixサポート担当者からの指示があった場合のみ行ってください。

クリーンアップ保持に関する注意事項:

  • Platinumライセンスがあるサイト – 前述のクリーンアップ保持設定を任意の日数更新できます。
    • 例外: GroomApplicationErrorsRetentionDaysおよびGroomApplicationFaultsRetentionDaysでは、31日間に制限されています。GroomProcessUsageRawDataRetentionDaysでは、1日に制限されています。
  • Enterpriseライセンスがあるサイト – すべての設定のクリーンアップ保持は31日間に制限されています。
  • その他すべてのサイト – すべての設定のクリーンアップ保持は7日間に制限されています。

データを長期間保持すると、テーブルのサイズについて以下の影響が発生することがあります:

  • 時間単位のデータ。時間単位のデータを2年などの長期間保持すると、1000個のデリバリーグループがあるサイトではデータベースが以下の数式に基づいて増大します。

    「1000個のデリバリーグループ×24時間/日×365日/年×2年=17,520,000行のデータ」集計テーブルのデータ量が多いため、パフォーマンスに大きな影響を及ぼします。ダッシュボードのデータがこのテーブルから取得されることを考慮すると、データベースサーバーに対する要求は高くなります。データ量が過度に多いと、パフォーマンスが大きく低下します。

  • セッションとイベントのデータ。各セッションの開始時および接続/再接続時に収集されるデータです。大規模サイト(100,000ユーザーなど)では、このデータの量が急速に増加します。たとえば、これらのテーブルでは2年間で1TB以上のデータが保持され、高性能なエンタープライズレベルのデータベースが必要になります。

データの粒度と保持