• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

NerdGraph チュートリアル: サービスレベルの構成

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

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

重要

サービス レベルを作成するには、ユーザーは イベント対メトリクス ルールを変更および削除する権限が必要です。

SLOでSLIを作る

SLI が関連付けられているエンティティなど、SLI および SLO 設定の基本的な概念については、 「SLI および SLO の作成と編集」を参照してください。 また、そのドキュメントを参照して、 サービスとアプリケーションの最も一般的なインジケーターの例を見つけることもできます。

以下は、 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 を関連付けるテンプレート (たとえば、 サービス、browser アプリケーション など ) の GUID。UI では、この GUID はエンティティ ページのSee metadata and manage tagsの下にあります。

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

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

  • badEvents.from, badEvents.where

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

    • 適切なイベントSELECT count(*) FROM goodEvents.from WHERE goodEvents.whereを定義するNRQLクエリには、これらのFROM }句とWHERE句が必要です。
    • 有効で適切なイベントからSLIを定義した場合は、 badEventsオブジェクトを空のままにします。
  • validEvents.from, validEvents.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はサポートされている値です。

使用 SELECT

オプションの SELECT 属性があり、デフォルトで count(*) に設定されます。より複雑なシナリオの場合は、 select を使用して、クエリするメトリックまたはイベント プロパティを明示的に指定できます。 SELECT では、 SUM 関数とワイルドカード (%) もサポートされています。より複雑な SELECT 構成の例を見てみましょう。

mutation {
serviceLevelCreate(
entityGuid: "entityGuid"
indicator: {
name: "Success request"
description: "The proportion of success requests count is 99% that the total count"
events: {
validEvents: {
select: { function: SUM, attribute: "http.request.status.%.count" }
from: "Metric"
}
goodEvents: {
select: { function: SUM, attribute: "http.request.status.2%.count" }
from: "Metric"
}
accountId: accountId
}
objectives: {
target: 99.5
timeWindow: { rolling: { count: 7, unit: DAY } }
}
}
) {
id
description
}
}

events のプロパティ validEventsgoodEventsselect含まれていることに注目してください。選択では、機能を設定できます。

  • COUNT: デフォルトの関数。結果の数をカウントします。
  • SUM: 選択したイベント/メトリックのすべての値を合計します。

この例のもう 1 つの重要な違いは、同じ形式ですべてのメトリクスの値をクエリするためにワイルドカード (%) を使用していることです。アプリケーションがステータス別のリクエスト数 (たとえば、 http.request.status.200.counthttp.request.status.201.counthttp.request.status.400.countなど) をレポートしていると想像してください。クエリは、ワイルドカードを使用して一致するすべてのメトリクス名を合計します。

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 © 2024 New Relic株式会社。

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