• ログイン今すぐ開始

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

NerdGraph APIによるサービスレベルの設定

New Relic を使用すると、アプリケーションに対して サービスレベル を実装し、 計画セッションやインシデント対応の際に UI から簡単に 結果を消費し、目的を望ましいユーザーエクスペリエンスに調整するために構成を段階的に反復することができます。

UI以外にも、 NerdGraph API Explorer を使用して、SLIとそのSLOの作成・編集を行うことができます。また、 Terraform Service Level resource を使用して、この設定を自動化することもできます。

重要

サービスレベルを作成するには、ユーザーは イベントからメトリックへのルールを変更および削除する機能が必要です。

SLOでSLIを作る

SLIとSLOの作成と編集 SLIとSLOの設定における基本的な概念(SLIが関連するエンティティなど)については、 を参照してください。また、APMサービスやブラウザアプリケーションの最も一般的な指標の例については、そのドキュメントを参照してください。

以下は、 serviceLevelCreateミューテーションクエリを使用して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で、このGUIDはエンティティページの[メタデータの表示とタグの管理]の下にあります。

  • description :適切なイベントを決定する選択されたしきい値を含む詳細な説明を使用します。

    • 例えば、可用性のSLIの場合、"The proportion of valid requests that were served without errors "のような内容を含める。
    • また、レイテンシーSLIの場合は、「良い体験に相当すると考えられる0.25秒よりも速く提供された有効なリクエストの割合」などの説明を記載します。
  • accountId :APMサービスまたはブラウザアプリケーションが属するアカウントのID。SLI/SLO計算用のNRDBデータが含まれています。

  • badEvents.frombadEvents.where

    • 不正なイベントSELECT count(*) FROM badEvents.from WHERE badEvents.whereを定義するNRQLクエリには、これらのFROM }句とWHERE句が必要です。
    • 有効なイベントと不良なイベントからSLIを定義した場合は、 goodEventsオブジェクトを空のままにします。
  • goodEvents.fromgoodEvents.where

    • 適切なイベントSELECT count(*) FROM goodEvents.from WHERE goodEvents.whereを定義するNRQLクエリには、これらのFROM }句とWHERE句が必要です。
    • 有効で適切なイベントからSLIを定義した場合は、 badEventsオブジェクトを空のままにします。
  • validEvents.fromvalidEvents.where

    • これらは、有効なイベントを定義するNRQLクエリのFROMおよびWHERE句であり、結果はSELECT count(*) FROM validEvents.from WHERE validEvents.whereになります。
  • name :サービスレベルが何であるかを理解するのに役立つSLIの短いカテゴリ名。SLI定義に含まれる特定のパラメーターとフィルターを含めることをお勧めします。例:

    • 入手方法
    • 4秒以下のレイテンシー
    • 0.1以下のデスクトップ用CLS
  • objectives :SLIの目標(SLO)の配列。

    • target:SLOの目標、最大100.00。このフィールドは、最大5桁の小数点以下をサポートします。

      • ユーザーが現在のエクスペリエンスに満足している場合は、SLOのパーセンテージを現在のベースラインに合わせて設定してください。例えば、SLIの良い出来事を判断するために使われるパーセンタイルです。
    • timeWindow.rolling.count:SLOを計算するために考慮される期間の長さ。サポートされている値は、 171428 、および30です。

    • timeWindow.rolling.unitDAYはサポートされている値です。

APMサービスのSLIの構成を取得する

このクエリを使用して、 idを含むSLIの構成を取得します。

{
actor {
entity(guid: "entityGuid") {
guid
name
serviceLevel {
indicators {
createdAt
createdBy {
email
}
description
entityGuid
id
name
objectives {
target
timeWindow {
rolling {
count
unit
}
}
}
}
}
}
}
}

SLIのSLOの更新

serviceLevelUpdateミューテーションを使用して、SLIごとに1つ以上のSLOを定義します。SLIのidを取得するには、上記のクエリを使用します。

mutation {
serviceLevelUpdate(
id: "indicators.id"
indicator: {
objectives: {
target: 99.00
timeWindow: { rolling: { count: 7, unit: DAY } }
}
}
) {
id
}
}
Copyright © 2022 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.