データの粒度と保持

データ値の集計

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時間区切りのタイムゾーンに属さない場合は、データの集計先に不整合が生じることがあります。

データの粒度と保持

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

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

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

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

注意:

Monitor Serviceデータベースの値を変更することはできません。

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

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

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

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

データの粒度と保持