ベータ版機能
この機能は現在 ベータ版 です。
New Relic を使用すると、アプリケーションに対して サービスレベル を実装し、 計画セッションやインシデント対応の際に UI から簡単に 結果を消費し、目的を望ましいユーザーエクスペリエンスに調整するために構成を段階的に反復することができます。
UI以外にも、 NerdGraph API Explorer を使用して、SLIとそのSLOの作成・編集を行うことができます。また、 Terraform Service Level resource を使用して、この設定を自動化することもできます。
重要
サービスレベルを作成するためには、APIキーに メトリックルール を修正・削除する権限を持つロール が必要です。
SLOでSLIを作る
SLIとSLOの作成と編集 SLIとSLOの設定における基本的な概念(SLIが関連するエンティティなど)については、 を参照してください。また、APMサービスやブラウザアプリケーションの最も一般的な指標の例については、そのドキュメントを参照してください。
以下は、 serviceLevelCreate
mutation query を使用して SLI を作成する NerdGraph コールの例です。
mutation { serviceLevelCreate( entityGuid: "entityGuid", indicator: { name: "Latency below 0.25 seconds", description: "The proportion of valid requests that were served faster than 0.25s, which is considered to correspond to a good experience.", events: { validEvents: { from: "Transaction", where: "entityGuid = 'entityGuid'" }, goodEvents: { from: "Transaction", where: "entityGuid = 'entityGuid' and duration < 0.25" }, accountId: accountId}, objectives: { target: 99.5, timeWindow: { rolling: { count: 7, unit: DAY }}}}) { id description }}
これらのフィールドを含んでいます。
entityGuid
: このSLIを関連付ける エンティティ (例えば、APMサービス、ブラウザアプリケーションなど)のGUID。UIでは、エンティティページの See metadata and manage tags で、このGUIDを見つけることができます。説明
: 良いイベントを決定する選択された閾値を含む詳細な説明を使用します。- 例えば、可用性のSLIの場合、"The proportion of valid requests that were served without errors "のような内容を含める。
- また、レイテンシーSLIの場合は、「良い体験に相当すると考えられる0.25秒よりも速く提供された有効なリクエストの割合」などの説明を記載します。
accountId
: SLI/SLO計算のためのNRDBデータを含む、APMサービスまたはブラウザアプリケーションが属するアカウントのIDです。badEvents.from
,badEvents.where
- バッドイベントを定義する NRQL クエリ
SELECT count(*) FROM badEvents.from WHERE badEvents.where
には、これらのFROM
とWHERE
の句が必要です。 - 有効なイベントと悪いイベントからSLIを定義した場合、
goodEvents
オブジェクトを空にします。
- バッドイベントを定義する NRQL クエリ
goodEvents.from
,goodEvents.where
- グッド・イベントを定義する NRQL クエリ
SELECT count(*) FROM goodEvents.from WHERE goodEvents.where
には、これらのFROM
とWHERE
の句が必要です。 - 有効なイベントと良いイベントからSLIを定義した場合は、
badEvents
オブジェクトを空にします。
- グッド・イベントを定義する NRQL クエリ
validEvents.from
,validEvents.where
- これらは、有効なイベントを定義するNRQLクエリの
FROM
とWHERE
節で、SELECT count(*) FROM validEvents.from WHERE validEvents.where
となります。
- これらは、有効なイベントを定義するNRQLクエリの
名前
: サービスレベルの内容を理解するための、SLIの短いカテゴリー名です。SLIの定義に関わる特定のパラメーターやフィルターを含めることをお勧めします。例- 入手方法
- 4秒以下のレイテンシー
- 0.1以下のデスクトップ用CLS
目的
: SLIの目的(SLO)の配列です。目標
: SLO の目標値で、最大 100.00 です。フィールドは5桁までの小数をサポートしています。- ユーザーが現在のエクスペリエンスに満足している場合は、SLOのパーセンテージを現在のベースラインに合わせて設定してください。例えば、SLIの良い出来事を判断するために使われるパーセンタイルです。
timeWindow.rolling.count
: SLOを計算する際に考慮する期間の長さ。サポートされている値は、1
,7
,14
,28
,30
です。timeWindow.rolling.unit
:DAY
はサポートされている値です。
APMサービスのSLIの構成を取得する
このクエリを使用して、SLI のコンフィギュレーションを取得します。このコンフィギュレーションには、 id
が含まれます。
{ actor { entity(guid: "entityGuid") { guid name serviceLevel { indicators { createdAt createdBy { email } description entityGuid id name objectives { target timeWindow { rolling { count unit } } } } } } } }
SLIのSLOの更新
serviceLevelUpdate
mutation を使用して、SLI のそれぞれに 1 つ以上の SLO を定義します。SLI の id
を取得するには、上記のクエリを使用します。
mutation { serviceLevelUpdate( id: "indicators.id", indicator: { objectives: { target: 99.00, timeWindow: { rolling: { count: 7, unit: DAY }}}}) { id }}