• /
  • EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

영문본과 번역본이 일치하지 않는 경우 영문본이 우선합니다. 보다 자세한 내용은 이 페이지를 방문하시기 바랍니다.

문제 신고

NerdGraph 튜토리얼: 서비스 수준 구성

New Relic을 사용하면 애플리케이션에 대한 서비스 수준 을 구현하고, 계획 세션 및 인시던트 대응 중에 UI에서 쉽게 결과를 사용 하고, 원하는 사용자 경험에 맞게 목표를 조정하기 위해 구성을 점진적으로 반복할 수 있습니다.

UI 외에도 NerdGraph API 탐색기 를 사용하여 SLI 및 해당 SLO를 만들고 편집할 수도 있습니다. 또는 Terraform 서비스 수준 리소스 를 사용하여 이 구성을 자동화할 수 있습니다.

중요

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

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를 연결하려는 엔터티 (예: 서비스, 브라우저 애플리케이션 등)의 GUID입니다. UI에서는 엔터티 페이지의 See metadata and manage tags 아래에서 이 GUID를 찾을 수 있습니다.

  • description: 좋은 이벤트를 결정짓는 선택된 노인값, 관련 항목을 포함하여 상세한 설명을 사용합니다.

    • 예를 들어 가용성 SLI의 경우 "오류 없이 제공된 유효한 요청의 비율"과 같은 항목을 포함합니다.
    • 또는 지연 SLI의 경우 "좋은 경험에 해당하는 것으로 간주되는 0.25초보다 빠르게 제공된 유효한 요청의 비율"과 같은 설명을 포함합니다.
  • accountId: SLI/SLO 계산을 위한 NRDB 데이터가 포함된 서비스 또는 브라우저 애플리케이션이 속한 계정의 ID입니다.

  • 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.