• 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 탐색기 를 사용하여 SLI 및 해당 SLO를 만들고 편집할 수도 있습니다. 또는 Terraform 서비스 수준 리소스 를 사용하여 이 구성을 자동화할 수 있습니다.

중요

서비스 수준을 생성하려면 사용자에게 이벤트-메트릭 규칙을 수정하고 삭제할 수 있는 권한이 필요합니다.

SLO로 SLI 생성

SLI와 SLO 구성의 기본 개념(예: SLI가 연결된 엔터티)을 알아보려면 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의 경우 "오류 없이 제공된 유효한 요청의 비율"과 같은 항목을 포함합니다.
    • 또는 지연 SLI의 경우 "좋은 경험에 해당하는 것으로 간주되는 0.25초보다 빠르게 제공된 유효한 요청의 비율"과 같은 설명을 포함합니다.
  • accountId: 계정 ID

    SLI/SLO 계산을 위한 NRDB 데이터를 포함하는 서비스 또는 브라우저 애플리케이션이 속해 있습니다.

  • badEvents.from , badEvents.where

    • 잘못된 이벤트 SELECT count(*) FROM badEvents.from WHERE badEvents.where 를 정의하는 NRQL 쿼리에는 이러한 FROMWHERE 절이 필요합니다.
    • 유효한 이벤트와 잘못된 이벤트에서 SLI를 정의한 경우 goodEvents 객체를 비워 둡니다.
  • goodEvents.from , goodEvents.where

    • 좋은 이벤트 SELECT count(*) FROM goodEvents.from WHERE goodEvents.where 를 정의하는 NRQL 쿼리에는 이러한 FROMWHERE 절이 필요합니다.
    • 유효하고 양호한 이벤트에서 SLI를 정의한 경우 badEvents 객체를 비워 둡니다.
  • validEvents.from , validEvents.where

    • 이는 유효한 이벤트를 정의하는 NRQL 쿼리에 대한 FROMWHERE 절이며 결과는 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를 계산하기 위해 고려한 기간의 길이입니다. 지원되는 값은 1 , 7 , 14 , 2830 입니다.

    • timeWindow.rolling.unit: DAY 은 지원되는 값입니다.

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
}
}

이제 eventsvalidEventsgoodEvents 속성에 select가 포함되어 있습니다. 선택에서 기능을 구성할 수 있습니다.

  • COUNT: 기본 기능, 결과 수를 계산합니다.
  • SUM: 선택한 이벤트/지표의 모든 값을 합산합니다.

이 예의 또 다른 중요한 차이점은 와일드카드(%)를 사용하여 동일한 형식의 모든 메트릭 값을 쿼리한다는 것입니다. 애플리케이션이 상태(예: http.request.status.200.count, http.request.status.201.count, http.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에 대해 하나 이상의 SLO를 정의합니다. SLI의 id 을 얻으려면 위의 쿼리를 사용하십시오.

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

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