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

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

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

問題を作成する

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

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: エンティティ の GUID (たとえば、

    この SLI を関連付けるサービス、ブラウザー アプリケーションなど)。 UI では、この GUID はエンティティ ページの [メタデータを参照してタグを管理する]で見つけることができます。

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

    • 例えば、可用性のSLIの場合、"The proportion of valid requests that were served without errors "のような内容を含める。
    • また、レイテンシーSLIの場合は、「良い体験に相当すると考えられる0.25秒よりも速く提供された有効なリクエストの割合」などの説明を記載します。
  • accountId: アカウントの 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はサポートされている値です。

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.