前のトピック: パラメータの作成

次のトピック: 状態のバックアップ

動的ターゲットの実装

動的ターゲットは、標準的なビジネス ロジックのスクリプト内のイベント ハンドラを使用して、ビジネス ロジックによって処理されます。動的ターゲットは、メトリックからサービス レベルの値を返すために使用される Result() 関数に似ています。 動的ターゲットは、以下に示すように[メトリック]の[詳細]タブ上で指定する必要があります。

動的ターゲットの実装

動的ターゲットを指定すると、目標は[メトリック]の[詳細]タブで指定された静的な値ではなく、ビジネス ロジック内の Target() 関数から取得されます。 Target 関数は以下のようになります。

Function Target
  'TODO: ここにコードを追加して動的ターゲット計算を処理する
  Target = Null
End Function

この関数は、ある特定の期間に必要な目標値を返すようにメトリックの要件に基づいて実装する必要があります。 この関数は、ビジネス ロジックで期間に割り当てることができるすべての値を返すことができます。

動的ターゲットの実際的な例

コール センターの場合、「Avg Call Pickup time(平均の受話器を取るまでの時間)」を測定するメトリックの目標は、受ける電話の量に依存する場合があります。 たとえば、0 から 800 回までの電話がかかる場合目標は 15 秒未満、801 から 1500 回までの場合目標は 20 秒未満、1500 回以上の場合目標は 25 秒未満である必要があるとします。 この場合、以下のように実装できます (TotalCalls が受けた呼び出しイベントごとに 1 ずつ増やされるカウンタです。また TotalCalls は 0 未満にはなりえないと想定します)

Function Target
  If TotalCalls >0 and TotalCalls <= 800 Then
     Target = 15
  ElseIf Total Calls > 800 and TotalCalls <= 1500 Then
     Target = 20
  Else
      Target = 25
  End If
End Function

動的ターゲットの使用方法の別の例

メトリックの目標が計算の粒度に応じて変わる場合がある状況を考えてみてください。 このような状況としては、一群のサーバに対する可用性の日単位の目標が 98% だが、月単位の目標は 99.5% であるというような場合があります。 この状況に対する解決策では、Context.TimeUnit の関数呼び出しと共に動的ターゲット関数を使用して、計算中の現在のエージェントを判定することが必要になります。 したがって、目標をそれに応じて調整できます。

Function Target
  If Context.TimeUnit = “DAY” Then
     Target = 98
  ElseIf
     Target = 99.5
  End If
End Function