NerdGraph API를 사용하여 경고 조건을 관리할 수 있습니다.
팁
NerdGraph 및 NerdGraph 탐색기를 시작하는 데 도움이 필요하면 NerdGraph 소개 를 참조하세요.
이 문서의 내용은 다음과 같습니다.
NRQL 조건을 만드는 단계
이 단계를 따르세요:
생성할 조건 유형을 결정합니다( NRQL 조건 임계값 유형 참조).
다음 중 하나를 수행하여 관련
policyID
을(를) 찾으십시오.- NerdGraph 정책 API를 사용합니다.
- one.newrelic.com 으로 이동하여 상단 탐색 메뉴에서 경고 및 AI 를 클릭한 다음 경고 조건(정책) 을 클릭합니다. 정책을 선택합니다. 정책 이름 아래에서 ID를 찾습니다.
NRQL 조건 유형 및 관련 값에 대한 적절한 변형을 제공하십시오.
팁
NerdGraph GraphiQL 탐색기는 NerdGraph NRQL Conditions API의 필드별 특성에 대한 최신 문서를 찾을 수 있는 가장 좋은 곳입니다. 예를 들어 " valueFunction
필드는 무엇을 허용합니까?"와 같은 질문입니다. 인라인 NerdGraph 문서로 가장 잘 답할 수 있습니다.
NRQL 정적 조건
다음은 정적 조건을 만드는 예입니다.
mutation {
alertsNrqlConditionStaticCreate(accountId: YOUR_ACCOUNT_ID, policyId: YOUR_POLICY_ID, condition: {
name: "Low Host Count - Catastrophic"
enabled: true
nrql: {
query: "SELECT uniqueCount(host) FROM Transaction WHERE appName='my-app-name'"
}
signal: {
aggregationWindow: 60
aggregationMethod: EVENT_FLOW
aggregationDelay: 120
}
terms: {
threshold: 2
thresholdOccurrences: AT_LEAST_ONCE
thresholdDuration: 600
operator: BELOW
priority: CRITICAL
}
valueFunction: SINGLE_VALUE
violationTimeLimitSeconds: 86400
}) {
id
name
}
}
NRQL 기준 조건
다음은 기준 조건을 만드는 예입니다.
mutation {
alertsNrqlConditionBaselineCreate(accountId: YOUR_ACCOUNT_ID, policyId: YOUR_POLICY_ID, condition: {
name: "Baseline Condition"
enabled: true
baselineDirection: UPPER_ONLY
nrql: {
query: "SELECT average(duration) FROM Transaction"
}
signal: {
aggregationWindow: 60
aggregationMethod: EVENT_FLOW
aggregationDelay: 120
}
terms: {
threshold: 13
thresholdDuration: 180
thresholdOccurrences: ALL
operator: ABOVE
priority: CRITICAL
}
violationTimeLimitSeconds: 86400
}) {
id
name
baselineDirection
}
}
조건 업데이트
다음을 완료:
다음과 같이
nrqlConditionsSearch
쿼리에서 유형 필드를 요청하여 기존 조건의 유형을 결정합니다.{ actor { account(id: YOUR_ACCOUNT_ID) { alerts { nrqlConditionsSearch { nrqlConditions { id type } } } } } }
팁
반환된
type
은 업데이트 변형에 사용하는 것입니다. 예를 들어, 반환된 유형이STATIC
이면alertsNrqlConditionStaticUpdate
를 사용합니다. 반환된 유형이BASELINE
이면alertsNrqlConditionBaselineUpdate
를 사용합니다.관련 조건 유형 변형에 조건의
id
를 제공합니다. 관련 유형의 조건만 업데이트할 수 있습니다.
업데이트하려는 필드에 대해서만 업데이트 변형을 제공하십시오. 업데이트에서 제공하지 않은 필드는 건드리지 않습니다.
돌연변이 업데이트
업데이트에서 제공한 필드만 변경됩니다. 다음 예에서 baselineDirection
은 변경되지 않은 상태로 반환되지만 name
은 업데이트됩니다.
mutation {
alertsNrqlConditionBaselineUpdate(id: YOUR_CONDITION_ID, accountId: YOUR_ACCOUNT_ID, condition: {
name: "Your updated name"
}) {
id
name
baselineDirection
}
}
NRQL 조건 나열 및 필터링
NRQL 조건을 나열하거나 필터링하려면 NerdGraph에서 nrqlConditionsSearch
쿼리를 사용하세요.
단일 NRQL 조건 쿼리
NRQL 조건 API를 사용하여 단일 조건을 쿼리할 수 있습니다. 경고 네임스페이스에서 nrqlCondition
쿼리를 실행합니다.
nrqlConditionSearch
쿼리의 유형별 필드와 유사하게 이러한 인라인 조각을 사용하여 NRQL 조건 유형으로 제한된 필드를 요청할 수도 있습니다.
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
nrqlCondition(id: YOUR_CONDITION_ID) {
id
name
...on AlertsNrqlStaticCondition {
valueFunction
}
}
}
}
}
}
설명 업데이트
이것은 NRQL 경고 조건에 대한 설명 을 만드는 절차를 안내합니다.
- 정책에 대한 모든 조건 가져오기:
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
nrqlConditions(policyId: YOUR_POLICY_ID) {
nextCursor
results {
id
name
description
enabled
nrql {
query
}
signal {
aggregationWindow
aggregationMethod
aggregationDelay
aggregationTimer
}
policyId
runbookUrl
terms {
duration
operator
priority
timeFunction
threshold
}
type
violationTimeLimitSeconds
}
}
}
}
}
}
- 단일 조건에 대한 세부정보 가져오기:
{
actor {
account(id: YOUR_ACCOUNT_ID) {
alerts {
nrqlCondition(id: "YOUR_CONDITION_ID") {
description
id
enabled
name
nrql {
query
}
signal {
aggregationWindow
aggregationMethod
aggregationDelay
aggregationTimer
}
policyId
runbookUrl
terms {
operator
priority
threshold
thresholdDuration
thresholdOccurrences
}
type
violationTimeLimitSeconds
}
}
}
}
}
- 설명으로 돌연변이를 만듭니다.
다음은 빈 돌연변이 템플릿입니다.
mutation {
alertsNrqlConditionStaticUpdate(accountId: YOUR_ACCOUNT_ID, id: "YOUR_CONDITION_ID", condition: {description: ""}) {
description
}
}
다음은 예제 설명이 포함된 예제 돌연변이입니다.
mutation { alertsNrqlConditionStaticUpdate(accountId: 123456, id: "123456", condition: { description: "timestamp : {{timestamp}} \n accountId : {{accountId}} \n type : {{type}} \n event : {{event}} \n description : {{description}} \n policyId : {{policyId}} \n policyName: {{policyName}} \n conditionName : {{conditionName}} \n conditionId : {{conditionId}} \n product : {{product}} \n conditionType : {{conditionType}} \n RunbookUrl : {{runbookUrl}} \n nrqlQuery : {{nrqlQuery}} \n nrqlEventType : {{nrqlEventType}} \n targetID : {{targetId}} \n targetName : {{targetName}} \n commandLine : {{tag.commandLine}} \n entityGuid : {{tag.entityGuid}} \n entityName : {{tag.entityName}} \n fullHostname : {{tag.fullHostname}} \n instanceType : {{tag.instanceType}} \n processDisplayName : {{tag.processDisplayName}}"} ) { description }}
조건 삭제
alertsConditionDelete
변형을 사용하여 모든 유형의 조건을 삭제할 수 있습니다. 삭제 변형에 대해서만 id
필드를 요청할 수 있습니다. 예를 들어:
mutation {
alertsConditionDelete(accountId: YOUR_ACCOUNT_ID, id: YOUR_CONDITION_ID) {
id
}
}