スクリプト: パフォーマンスアナリティクス

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:7分
  • パフォーマンスアナリティクスは、パフォーマンスアナリティクスデータのクエリのためのスクリプトと API で使用するための、いくつかのスクリプト オブジェクトを提供しています。このスクリプトはブレークダウンマッピングとして機能するか、インジケーターから値を計算します。

    スクリプトに関するヒント

    • 一般に、スクリプトは、 score_start 変数と score_end 変数を使用して、日付処理で経過時間などのインジケーターをサポートする場合にのみ使用します。
    • 不要なフィールドを制限する。ドット連結フィールドを追加するたびに、クエリに結合が追加されます。
    • パフォーマンスを向上させるには、手動ブレークダウンを データベースビュー に置き換えてみてください。
    • 一般的な関数にはスクリプトインクルードを使用してください。詳細については、「スクリプトインクルード」を参照してください。
    • レポートに必要な方法でデータが構造化されていない場合は、スクリプトを作成する代わりに、運用テーブルに「レポートフィールド」を追加してみてください。詳細については、この コミュニティの投稿を参照してください。
    • パフォーマンスアナリティクススコアまたはスナップショットテーブルをクエリーするバックグラウンドスクリプトを実行している場合、そのアプリケーションに対する適切なロールがなければ、スコープ対象のアプリケーションに関するデータにアクセスすることはできません。
    警告:
    パフォーマンスアナリティクス スクリプトまたは式インジケーターで GlideRecords または GlideAggregates を使用しないでください。必要なものを取得するためにこれらの操作を使用する必要がある場合もありますが、これらはコストがかかり、数十万回実行する可能性があります。使用する前に、代替が存在しないことを確認してください。

    ブレークダウンマッピングとインジケータースクリプト

    ブレークダウンマッピングスクリプトは通常、ブレークダウン要素のsys_idまたはスコアをバケットに入れる整数を返します。インジケーター スクリプトは、1 つ以上のフィールドから計算されたスコアを返します。同じスクリプトを、ブレークダウンマッピング スクリプトとインジケーター スクリプトの両方として機能させることができます。

    ブレークダウンスクリプト

    たとえば、インシデントテーブルの opened_at フィールドを使用する、提供された Incident.Age.Days スクリプトを考えてみましょう。このスクリプトは、経過時間ブレークダウンのブレークダウンマッピングとして機能し、インシデント経過時間範囲 (日数) バケットグループ をブレークダウンソースとして使用します。

    var diff=function(x,y){return y.dateNumericValue() - x.dateNumericValue();};
    var days=function(x,y){return diff(x,y)/(24*60*60*1000);};
    days(current.opened_at, score_end);

    この例では、 current.opened_at は現在評価されているレコードが開かれたときのタイムスタンプを取得します。score_end スクリプト変数データコレクターから取得され、収集される期間にバインドされます。たとえば、月次インジケーターが収集される場合、 score_end は月末になります。ここでは、インシデントがオープンされたときのタイムスタンプが、収集期間の終わりのタイムスタンプから減算され、結果が日に変換されます。

    この例には、このスクリプトの [フィールド] フィールドで指定されている Incident.opened_at フィールドが含まれています。score_startscore_endを [フィールド] フィールドで定義しなくても使用できます。

    パフォーマンス分析でのスクリプトの作成

    スクリプトを作成するには、まず、スクリプトを適用するファクト テーブルを選択し、明示的にフィールドを選択します。

    始める前に

    必要なロール:admin、pa_admin。パフォーマンスアナリティクステーブルのスコープ対象のアプリケーションのデータにアクセスするには、そのアプリケーションの適切な admin ロールも必要です。

    手順

    1. 次のように移動する。 All (すべて) > パフォーマンスアナリティクス > スクリプト をクリックし、[ 新規] をクリックします。
    2. スクリプトにわかりやすい [名前] を付けます。
    3. スクリプトを適用する [ファクトテーブル] を選択します。
      これと同じファクト テーブルを使用するインジケーターのみが、このスクリプトを使用できます。
    4. スクリプトで使用されるファクト テーブルの [フィールド] がある場合は、選択します。
      フィールドはラベルで選択します。
    5. スクリプトを記述します。
      スクリプトは、次の関係と制限に従う必要があります。
      • このフォームで選択したフィールドとスクリプト変数のみを含めることができます。詳細については、パフォーマンスアナリティクス変数に関するセクションを参照してください。
      • スクリプトでフィールドを使用する場合は、列名を使用します。必要に応じて、ファクト テーブルの列名をルックアップします。
      • データベース ビューのフィールドを使用する場合は、プリフィックスを含める必要があります。たとえば、incident_sla データベース ビューには、taskslatable というプリフィックスを持つ task_sla テーブルが含まれています。task_sla には、business_duration 列が含まれています。incident_slaデータベースビューのbusiness_durationフィールドを使用するには、 taskslatable_business_durationとして記述します。データベース ビューにアクセスできない場合は、システム管理者にプリフィックスの検索を依頼してください。

    次のタスク

    スクリプトを作成したら、そのスクリプトを使用するブレークダウンマッピングまたはインジケーターを作成します。ブレークダウンマッピングまたはインジケーター フォームを開くには、[ブレークダウンマッピング] タブまたは [インジケーター] タブのいずれかで [ 新規 ] をクリックします。このスクリプトを使用するブレークダウンマッピングとインジケーターがこれらのタブに一覧表示されます。

    パフォーマンスアナリティクス の変数

    いくつかの変数は、 パフォーマンスアナリティクス スクリプトと式インジケーターで使用できます。

    パフォーマンスアナリティクススクリプトと式で次の変数を使用できます。

    • score_start:最初のインジケーター スコア収集の 1 日の最初の 1 秒。スクリプトの場合、時間は、収集ジョブの実行ユーザーのタイムゾーンとデータベースのタイムゾーン (GMT) の差に基づいて計算されます。式の場合、時間は式を実行するユーザーのタイムゾーンと GMT の差に基づいて計算されます。ユーザーは、ダッシュボードウィジェットまたは アナリティクスハブで式インジケーターを表示して、式を実行します。
    • score_end:最後のインジケータースコア収集の日の最後の 1 秒。時間は score_startと同じ方法で計算されます。
    • pa:スクリプトでは使用できない式変数で、 アナリティクスハブ 属性とメソッドのセットを提供します。

    スクリプトでは、スコア収集の開始変数と終了変数は GlideElementGlideObject オブジェクトです。次の例のように、getGlideObject() を呼び出すことで、これらの変数から GlideDateTime オブジェクトを取得できます。 gs.log("Score main = " + score_end.getGlideObject().getDayOfWeek());

    計算式では、スコア収集の開始変数と終了変数は既に GlideDateTime オブジェクトになっています。したがって、次の例のように、 getGlideObject() を呼び出さずに変数を直接使用できます: gs.log("Score main = " + score_end.getDayOfWeek());

    開始変数と終了変数の値は、収集される期間にバインドされます。たとえば、月次インジケーターが収集される場合、 score_end は月末になります。

    score_startscore_endの値は、関連するユーザーのタイムゾーンに基づいて計算されます。パフォーマンスアナリティクススクリプトの場合、これは収集ジョブの実行時のタイムゾーンです。式の場合、これはダッシュボードウィジェットまたは アナリティクスハブで式インジケーターを表示するユーザーのタイムゾーンです。したがって、異なるタイムゾーンのユーザーは、式の score_startscore_end の日付が異なる場合があります。