Skip to main content

This is documentation for Caché & Ensemble. See the InterSystems IRIS version of this content.Opens in a new tab

For information on migrating to InterSystems IRISOpens in a new tab, see Why Migrate to InterSystems IRIS?

アクティビティ量の監視

[アクティビティ量の統計と監視] パッケージには、短期のシステム・パフォーマンス監視とメッセージ・トラフィックに関する長期のレポート作成の機能が用意されています。

この章では、以下について説明します。

アクティビティ・モニタリングの概要

アクティビティ・モニタリングは、以下のようなタスクに役立ちます。

  • システムの状態の監視 — ダッシュボードのクイック・ウィンドウを使用して、Ensemble システムのパフォーマンスの状態を確認できます。メッセージの所要時間またはキュー・サイズが増加している場合、パフォーマンスの問題を示唆していることがあります。

  • 問題のトラブルシューティング — ダッシュボードを現在または過去の問題の診断に利用できます。ダッシュボードを使用して、特定の構成コンポーネントがパフォーマンスのボトルネックの主因だったかどうかを判別できます。

  • キャパシティの計画に役立つパフォーマンスおよびアクティビティ増加の追跡 — メッセージ量の長期にわたる変化を確認することによって、将来の増加を見積もることができる場合があります。パフォーマンス上の重大な問題が発生する前に、キャパシティの拡大について計画できます。

[アクティビティ・モニタリング] パッケージに含まれているものは、次のとおりです。

  • メッセージ統計の一元化されたストア。

  • SQL または DeepSee を使用して、統計についての分析とレポートを簡単にするデータ・モデル。

  • 各インタフェースの現在のメッセージ送信率と応答時間をメッセージに表示する DeepSee ダッシュボード。

  • 長期および短期の統計での変数の詳細設定。

  • 履歴レポートに使用できる、メッセージ統計の長期保存。

  • アプリケーション固有のメトリックを使用したカスタム統計収集。

このパッケージには、構成コンポーネントを経由したメッセージ数や、メッセージの平均処理時間などの情報が含まれる統計概要が格納されます。この概要情報は、最適化された効率的な方法で格納され、大量のストレージを必要とすることなく、長期間保持できます。

この機能とともに提供されるモニタを使用して、現在のデータを複数の異なる期間にわたって表示できます。ただし、データベースに格納される統計の方がより充実したデータ・セットを提供します。選択した分析およびレポートのツールを使用して、長期の動向を分析したり、ピーク時のトラフィック量の動向を比較したりできます。この機能によって、過負荷のコンポーネントの問題の分析とトラブルシューティング、および問題が発展する前に追加リソースを提供できるように負荷の長期にわたる変化の追跡を実行できます。

Ens.BusinessServiceOpens in a new tabEns.BusinessProcessOpens in a new tab、または Ens.BusinessOperationOpens in a new tab から継承するすべてのクラスで、組み込みのアクティビティ・モニタリングを使用できます。また、カスタム・コードを使用して、アクティビティ・モニタリングにカスタム・データを追加することもできます。

[アクティビティ量の統計と監視] パッケージを使用すると、1 つの Ensemble インスタンスで実行されている複数のネームスペースを監視して、これらのネームスペースからの統計を 1 つのデータベースに収集することができます。

Note:

DeepSee ダッシュボードのユーザ・インタフェースでは、複数の Ensemble インスタンスからの統計を表示する機能がサポートされますが、複数のインスタンスからの統計を収集するメカニズムは実験用であるため、プロダクション環境では使用しないでください。

アクティビティ・モニタリングの有効化

1 つのネームスペース、または同じ Ensemble インスタンスで実行されている複数のネームスペースのアクティビティを監視できます。アクティビティ・モニタリングを有効にするには、以下の手順に従います。

  1. 監視対象のネームスペースごとに、以下の操作を行います。

    1. ネームスペース内のプロダクションに Ens.Activity.Operation.Local ビジネス・オペレーションを追加します。

    2. このオペレーションが統計収集の対象のネームスペースを指定するように、このオペレーションを構成します。

    3. オペレーションを有効化します。

    4. プロダクション内のすべての構成項目に対して統計収集を有効にするには、EnableStatsForProduction()Opens in a new tab メソッドを呼び出します。個々の構成項目に対して統計収集を有効にするには、EnableStatsForConfig()Opens in a new tab メソッドを呼び出します。例えば、ENSDEMO ネームスペース内のすべてのプロダクション構成項目に対して統計収集を有効にするには、ターミナルで以下を入力します。

      zn "ENSDEMO"
      do ##class(Ens.Util.Statistics).EnableStatsForProduction()
      
  2. データ収集に使用する Ensemble ネームスペースを作成するか、既存のものを選択します。1 つのネームスペースからのみアクティビティ・データを収集する場合は、データを収集するネームスペースを選択することも、新規ネームスペースを作成することもできます。複数のネームスペースからデータを収集する場合は、新規ネームスペースを作成して、それを統計の収集のみに使用することをお勧めします。

  3. ネームスペースのデフォルトの Web アプリケーションで DeepSee を有効にすることによって、DeepSee を使用してデータにアクセスできるようにします。これを行うには、以下を実行します。

    1. [システム管理][セキュリティ][アプリケーション][Web アプリケーション] の順に選択します。

    2. ネームスペースのデフォルトの Web アプリケーションを選択します。例えば、ネームスペースが WATCHACTIVITY の場合、デフォルトの Web アプリケーションは通常、/csp/watchactivity です。

    3. [DeepSee] チェックボックスにチェックを付けます。

    4. [保存] を選択します。

[アクティビティ監視] ダッシュボードの使用法

[アクティビティ監視] ダッシュボードは、アクティビティ統計を表示する 1 つの DeepSee ダッシュボードです。このダッシュボードに移動するには、統計収集に使用するネームスペース内にいることを確認して、[Ensemble][モニタ][アクティビティ量と所要時間] を選択します。このダッシュボードは、Ens.DeepSee.ActivityVolumeAndDurationDashboard Opens in a new tab クラスで定義されます。

ダッシュボードには、各プロダクション構成項目の現在のアクティビティ情報が表示されます。

generated description: volume statistics

期間別、インスタンス別、ネームスペース別、およびサイト範囲別に表示する統計を選択できます。

  • [期間] — 期間を選択したら、チェック・マークを選択して、期間を設定します。選択項目は、以下のとおりです。

    • [分] — 過去 1 分間のアクティビティを表示します。

    • [時間] — 過去 1 時間のアクティビティを表示します。

    • [日] — 過去 1 日間のアクティビティを表示します。

    • [週] — 過去 1 週間のアクティビティを表示します。

    • [月] — 過去 1 か月のアクティビティを表示します。

    • [年] — 過去 1 年間のアクティビティを表示します。

    • [すべて] — 保管されている統計がすべて表示されます。

  • [インスタンス] — アクティビティを表示する Ensemble インスタンスを選択できます。インスタンスを選択した場合、インスタンス名は [名前] 列に表示されません。これによって、テーブルの幅を小さくして、画面に収めることができます。インスタンスを選択したら、チェック・マークを選択して、インスタンスを設定します。

    Note:

    DeepSee ダッシュボードのユーザ・インタフェースでは、複数の Ensemble インスタンスからの統計を表示する機能がサポートされますが、複数のインスタンスからの統計を収集するメカニズムは実験用であるため、プロダクション環境では使用しないでください。

  • [ネームスペース] — アクティビティを表示するネームスペースを選択できます。特定のネームスペースにフィルタを適用している場合、そのネームスペースは [名前] 列に表示されないので、表示の幅が小さくなります。

  • [サイト範囲] — コードによって設定するカスタムのプロパティです。サイト範囲の設定の詳細は、RecordStats()Opens in a new tab メソッドまたは SetStatsUserDimension()Opens in a new tab メソッドを参照してください。

統計は、[名前]、[合計数]、[平均所要時間]、または [平均キュー時間] でソートできます。

ダッシュボードによって、60 秒おきに自動的に更新されます。[更新] を選択することによって更新することもできます。[リセット] ボタンを押すと、選択フィールドが最初のデフォルト値にリセットされます。

統計をレポートする各構成項目について、ダッシュボードには以下の情報が表示されます。

  • [名前] — プロダクション内の構成項目名。インスタンスとネームスペースは、かっこ入りで示されます。インスタンスまたはネームスペースに基づいてアクティビティをフィルタリングしている場合、その項目は省略されます。

  • [サイト範囲] — カスタム・コードで示される識別情報。サイト範囲でフィルタリングしている場合、この列にはサイト範囲の値が表示されます。そうでない場合は、“All” と表示されます。

  • [合計数] — 指定された期間内のメッセージ合計数。

  • [個数の動向] — 指定された期間内の個数を表すグラフィカル表現。例えば、期間が 1 週間の場合、グラフには 1 週間の毎日の個数が表示されます。

  • [平均所要時間] — 対象のコンポーネントでメッセージの処理にかかった平均時間。

  • [標準偏差] — 対象のコンポーネントでメッセージの処理に要した時間の標準偏差。

  • [所要時間の動向] — 指定された期間内の平均所要時間を表すグラフィカル表現。

  • [平均キュー時間] — 指定された期間内にメッセージがキューに残っている平均時間。

  • [キューの動向] — 指定された期間内の平均キュー待機時間を表すグラフィカル表現。

このダッシュボードでは直前の 1 分間、1 時間、1 日間、1 週間、1 か月、または 1 年間のアクティビティを表示することのみが可能ですが、より柔軟性を持った独自のダッシュボードを設計することができます。例えば、指定した日の午前 9 時から午後 6 時までのアクティビティを表示するダッシュボードを作成できます。

アクティビティを記録するためのカスタム・コードの記述

組み込みの統計メカニズムの使用に加えて、以下を目的としてカスタム・コードを記述することができます。

  • 記録される統計の [サイト範囲] フィールドへの入力。これによって、統計に追加情報を提供できます。

  • カスタム統計を明示的に記録してデータベースに格納。この場合、コンポーネントに対して統計を有効にしません。データを集計して、その統計データを一時ストレージから永久的に保管されるデータベースに転送するメカニズムを使用します。

統計で記録するサイト範囲を指定するには、SetStatsUserDimension()Opens in a new tab メソッドを使用します。例えば、以下のコードでは、まず統計が有効になっているかどうかを確認してから、サイト範囲を “CriticalAction” に設定します。

 If ##class(Ens.Util.Statistics).StatsStarted(..%ConfigName) {
  Do ##class(Ens.Util.Statistics).SetStatsUserDimension(..%ConfigName,"CriticalAction")
 }

RecordStats()Opens in a new tab メソッドによって、指定された統計データが一時ストレージに書き込まれます。その統計データは 3 つのテーブルに集計されます。以下の例を確認してください。

Do ##class(Ens.Util.Statistics).RecordStats(0,"IncomingMsgSrvc","ActiveMsgs",1,4087,35)

各パラメータの意味は、次のとおりです。

  • 0 — 不明なホスト・タイプであることを表します。

  • "IncomingMsgSrvc" — 構成項目名として使用されます。これは、コンポーネントの構成項目名と一致する必要はありません。

  • ”ActiveMsgs” — サイト範囲に使用されます。

  • 1 — 統計を書き込んだ後に一時メモリを解放することを指定します。

  • 4087 — 4087 個のメッセージが処理されたことを表します。

  • 35 — メッセージの処理の合計所要時間が 35 秒であったことを表します。

アクティビティ監視データベースへのアクセス

アクティビティ統計は、次の 3 つのテーブルに格納されます。これらの 3 つのテーブルには、同一のアクティビティに関するデータが含まれますが、使用されるデータ集計期間が異なります。3 つのテーブルは、以下のとおりです。

  • Ens_Activity_Data.Seconds — 10 秒間ごとのアクティビティを集計します。

  • Ens_Activity_Data.Hours — 1 時間ごとのアクティビティを集計します。

  • Ens_Activity_Data.Days — 1 日ごとのアクティビティを集計します。

ストレージにおけるこの冗長性によって、履歴データを調査する機能を失うことなく、統計に必要な長期ストレージを最小限に抑える柔軟性を実現できます。例えば、Ens_Activity_Data.Seconds テーブルを使用して、過去 2 日間のアクティビティを詳細に調査して、2 日経った後にデータをパージし、ストレージを最小限に抑えることができます。Ens_Activity_Data.Hours テーブルと Ens_Activity_Data.Days テーブルに保管されるデータ量が減るので、パージの頻度をもっと少なくすることができます。Ens_Activity_Data.Hours テーブルを使用して、一日の間にアクティビティがどのように変化したかを調査することができます。例えば、このテーブルを使用して、各曜日のアクティビティのピーク期間とそれが遅延とキュー・サイズに与える影響のレポートを生成できます。

アクティビティ監視データベースのパージ

アクティビティ統計データを格納するテーブルは、対応するメッセージの合計サイズよりかなり小さいですが、定期的にアクティビティ統計テーブルをパージする必要があります。PurgeActivityData タスクによって、指定したアクティビティ・テーブルがパージされます。数と時間単位を指定して、保持するデータ量を指定します。例えば、Seconds テーブルで 7 日分のデータ、Hours テーブルで 12 か月分のデータ、Days テーブルで 3 年分のデータを保持するよう指定できます。

タスクの作成方法の詳細は、"Caché の管理" の “タスク・マネージャの使用” を参照してください。

FeedbackOpens in a new tab