スクリプト: パフォーマンスアナリティクス
パフォーマンスアナリティクスは、パフォーマンスアナリティクスデータのクエリのためのスクリプトと API で使用するための、いくつかのスクリプト オブジェクトを提供しています。このスクリプトはブレークダウンマッピングとして機能するか、インジケーターから値を計算します。
スクリプトに関するヒント
- 一般に、スクリプトは、
score_start変数とscore_end変数を使用して、日付処理で経過時間などのインジケーターをサポートする場合にのみ使用します。 - 不要なフィールドを制限する。ドット連結フィールドを追加するたびに、クエリに結合が追加されます。
- パフォーマンスを向上させるには、手動ブレークダウンを データベースビュー に置き換えてみてください。
- 一般的な関数にはスクリプトインクルードを使用してください。詳細については、「スクリプトインクルード」を参照してください。
- レポートに必要な方法でデータが構造化されていない場合は、スクリプトを作成する代わりに、運用テーブルに「レポートフィールド」を追加してみてください。詳細については、この コミュニティの投稿を参照してください。
- パフォーマンスアナリティクススコアまたはスナップショットテーブルをクエリーするバックグラウンドスクリプトを実行している場合、そのアプリケーションに対する適切なロールがなければ、スコープ対象のアプリケーションに関するデータにアクセスすることはできません。
ブレークダウンマッピングとインジケータースクリプト
ブレークダウンマッピングスクリプトは通常、ブレークダウン要素の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_startとscore_endを [フィールド] フィールドで定義しなくても使用できます。
パフォーマンス分析でのスクリプトの作成
スクリプトを作成するには、まず、スクリプトを適用するファクト テーブルを選択し、明示的にフィールドを選択します。
始める前に
手順
次のタスク
パフォーマンスアナリティクス の変数
いくつかの変数は、 パフォーマンスアナリティクス スクリプトと式インジケーターで使用できます。
パフォーマンスアナリティクススクリプトと式で次の変数を使用できます。
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_startとscore_endの値は、関連するユーザーのタイムゾーンに基づいて計算されます。パフォーマンスアナリティクススクリプトの場合、これは収集ジョブの実行時のタイムゾーンです。式の場合、これはダッシュボードウィジェットまたは アナリティクスハブで式インジケーターを表示するユーザーのタイムゾーンです。したがって、異なるタイムゾーンのユーザーは、式の score_start と score_end の日付が異なる場合があります。