뉴렐릭을 사용하면 NerdGraph Scorecards GraphQL 변형을 사용하여 Scorecards와 규칙을 관리할 수 있습니다. 이러한 변형을 통해 기존의 스텔라우 및 통합에서 스코어카드와 관련 규칙을 만들고, 업데이트하고, 삭제하고, 검색할 수 있습니다.
이 튜토리얼에서는 NerdGraph를 사용하여 스코어카드와 규칙을 관리하는 방법에 대한 예제를 제공합니다. 이러한 예제를 사용하여 스코어카드 생성, 규칙 추가 및 스코어카드 세부 정보 업데이트와 같은 스코어카드 관리 작업을 자동화할 수 있습니다. 스코어카드 관리를 위한 사용자 지정 권한을 설정해야 하는 경우 스코어카드용 사용자 지정 역할 생성을 참조하십시오.
돌연변이
뉴렐릭은 스코어카드와 관련 규칙을 만들고 관리하기 위한 다양한 NerdGraph 변형을 제공합니다.
또한 스코어카드 규칙을 성숙도 수준 으로 구성하고 각 규칙에 가중치를 부여할 수 있습니다. API에서 성숙도 수준은 progress levels(이)라고 합니다:
- 스코어카드는
progressLevels필드로 성숙도 수준을 정의합니다. 사용자 지정(기본값이 아닌) 수준 생성은 API를 통해서만 가능하며, 성숙도 수준 생성 또는 업데이트를 참조하십시오. - 규칙은
progressLevel필드를 사용하여 수준에 할당되며, 이 필드는 스코어카드 진행 수준 중 하나의id을(를) 취합니다. - Scorecard의 가중 평균 점수에서 규칙의 가중치는
impactWeight필드로 설정됩니다. 가중치 부여 방식에 대한 자세한 내용은 가중치 점수를 참조하십시오.
스코어카드와 규칙을 관리하려면 조직 ID를 제공해야 합니다. actor 쿼리를 사용하여 조직 ID를 검색할 수 있습니다.
샘플 요청
query FetchYourOrgId { actor { organization { id } }}entityManagementCreateScorecard 변형을 사용하여 나만의 스코어카드를 만들 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| 문자열 | 네 | 스코어카드의 이름. |
| 문자열 | 아니요 | 스코어카드에 대한 간략한 설명입니다. |
| 문자열 | 네 | 귀하의 조직 ID입니다. |
|
| 아니요 | 이 스코어카드의 성숙도(진행) 수준입니다. 필드 세부 정보는 를 참조하십시오. |
샘플 요청
mutation CreateScorecard( $name: String! $desc: String $organizationId: ID! $progressLevels: [EntityManagementProgressLevelDefinitionCreateInput!]) { entityManagementCreateScorecard( scorecardEntity: { description: $desc name: $name scope: { type: ORGANIZATION, id: $organizationId } progressLevels: $progressLevels } ) { entity { id progressLevels { id name } rules { id } } }}// PARAMETERS{ "description": "Test test Best Practices", "name": "Test Engineering Best Practices", "organizationId": "xxxxxxxx-yyyy-0000-aaaa-0123456789qwe", "progressLevels": [ { "id": "BASIC", "name": "Basic", "description": "Minimum operational standard", "hexColorCode": "#9C5D00" }, { "id": "INTERMEDIATE", "name": "Intermediate", "description": "Expected standard for mature services", "hexColorCode": "#0E7C7B" }, { "id": "ADVANCED", "name": "Advanced", "description": "Excellence and optimization", "hexColorCode": "#11845C" } ]}progressLevels 필드는 선택 사항입니다. 기본 BASIC, INTERMEDIATE 및 ADVANCED 수준은 UI에서 스코어카드를 생성할 때만 추가됩니다. API를 통해 생성할 때는 progressLevels 를 사용하여 성숙도 수준을 정의하십시오.
사용자 지정 수준을 추가하거나 기존 스코어카드의 수준을 변경하려면 성숙도 수준 생성 또는 업데이트를 참조하십시오.
성숙도 수준은 스코어카드의 progressLevels에 의해 정의됩니다. 스코어카드를 생성할 때 설정하거나 나중에 entityManagementUpdateScorecard 뮤테이션을 사용하여 업데이트하십시오.
UI는 기본 3개만 지원하므로 사용자 지정 수준을 생성(예: 4번째 수준 추가 또는 기본값 이름 변경)하는 유일한 방법은 API를 사용하는 것입니다.
기존 스코어카드에 새 성숙도 수준을 추가하려면:
현재 수준을 확인하려면 스코어카드 읽기 쿼리 를 실행하십시오.
전체
progressLevels어레이를 사용하여entityManagementUpdateScorecard뮤테이션을 호출하십시오. 유지하려는 기존 수준과 새 수준을 포함해야 합니다.중요
업데이트 뮤테이션은 Scorecard의 전체 레벨 세트를 대체합니다. 어레이에서 제외한 레벨은 영구적으로 삭제됩니다.
다음 사항에 유의하십시오:
한도: 스코어카드는 1-5개의 레벨을 가질 수 있습니다.
계층 구조: 어레이의 순서는 가장 낮은 성숙도부터 가장 높은 성숙도까지 계층 구조를 설정합니다.
progressLevels어레이의 각 항목은 다음 필드를 허용합니다.입력스피커, 변수
매개변수
데이터 형식
필수 사항인가요?
설명
id문자열
네
규칙의
progressLevel에서 참조하는 레벨에 대한 안정적인 식별자입니다. 기본 레벨은
BASIC,
INTERMEDIATE및
ADVANCED을(를) 사용합니다. 사용자 지정 레벨의 경우, 예를 들어
EXPERT와(과) 같이 직접 정의할 수 있습니다.
name문자열
네
Basic과(와) 같은 수준의 표시 이름입니다.
description문자열
아니요
수준에 대한 사용자 대상 설명입니다.
hexColorCode문자열
아니요
#11845C과(와) 같이 UI에서 수준을 나타내는 데 사용되는 16진수 색상 코드입니다.
샘플 요청
mutation UpdateScorecardProgressLevels($id: ID!$name: String!$description: String!$progressLevels: [EntityManagementProgressLevelDefinitionUpdateInput!]) {entityManagementUpdateScorecard(id: $idscorecardEntity: {name: $namedescription: $descriptionprogressLevels: $progressLevels}) {entity {idprogressLevels {idnamedescriptionhexColorCode}}}}// PARAMETERS{"id": "SCORECARD_ID","name": "Test Engineering Best Practices","description": "Test test Best Practices","progressLevels": [{"id": "BASIC","name": "Basic","description": "Minimum operational standard","hexColorCode": "#9C5D00"},{"id": "INTERMEDIATE","name": "Intermediate","description": "Expected standard for mature services","hexColorCode": "#0E7C7B"},{"id": "ADVANCED","name": "Advanced","description": "Excellence and optimization","hexColorCode": "#11845C"},{"id": "EXPERT","name": "Expert","description": "A custom level beyond the defaults","hexColorCode": "#005054"}]}
entityManagementCreateScorecardRule 변형을 사용하여 스코어카드에 대한 새 규칙을 만들 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| 문자열 | 네 | 규칙의 이름. |
| 문자열 | 아니요 | 규칙에 대한 간략한 설명입니다. |
| 문자열 | 네 | 규정 준수를 평가하기 위한 NRQL 쿼리입니다. |
| Int | 네 | 규칙이 쿼리를 실행해야 하는 계정 ID 목록입니다. |
| Int | 아니요 | 쿼리가 실행되는 각 계정에 결합되어야 하는 계정 ID 목록입니다. |
| 문자열(ID) | 네 | 귀하의 조직 ID, 위의 참조하여 가져오는 방법을 알아보세요. |
| ID | 아니요 |
과(와) 같이 이 규칙이 속한 성숙도(진행) 수준의
입니다. 스코어카드의
중 하나와 일치해야 합니다 ― 이를 정의하려면 를 참조하십시오. |
| Int | 아니요 | 스코어카드의 가중 평균 점수에서 규칙의 가중치로,
에서
사이의 정수입니다(기본값
). 을 참조하십시오. |
| Int | 아니요 | 규칙이 실행되는 빈도(분 단위)입니다. 허용되는 값:
(1시간),
(6시간),
(12시간) 및
(1일). |
샘플 요청
mutation CreateRule( $name: String! $description: String $query: String! $accounts: [Int!]! $joinAccounts: [Int!] $organizationId: ID! $progressLevel: ID $impactWeight: Int $runInterval: Int) { entityManagementCreateScorecardRule( scorecardRuleEntity: { name: $name description: $description enabled: true progressLevel: $progressLevel impactWeight: $impactWeight runInterval: $runInterval nrqlEngine: { accounts: $accounts joinAccounts: $joinAccounts query: $query } scope: { id: $organizationId, type: ORGANIZATION } } ) { entity { id # RULE Id } }}// PARAMETERS{ "name": "APM Services Have Alerts Defined", "description": "Check that APM services have alerts associated with them", "accounts": [1, 2, 3], "query": "SELECT if(latest(alertSeverity) != 'NOT_CONFIGURED', 1, 0) AS 'score' FROM Entity WHERE type = 'APM-APPLICATION' AND tags.nr.team IS NOT NULL AND tags.environment IS NOT NULL FACET id AS 'entityGuid', tags.nr.team AS 'team', tags.environment AS 'environment' LIMIT MAX SINCE 1 day ago", "organizationId": "xxxxxxxx-yyyy-0000-aaaa-0123456789qwe", "progressLevel": "BASIC", "impactWeight": 2, "runInterval": 1440}entityManagementAddCollectionMembers 변형을 사용하여 규칙을 스코어카드와 연결할 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| 문자열 | 네 | 규칙을 추가하려면 스코어카드 ID를 사용하세요. |
| 문자열 | 네 | 스코어카드에 추가할 규칙 ID 목록입니다. |
샘플 요청
mutation AddRuleToCollection($collectionId: ID!, $rules: [ID!]!) { entityManagementAddCollectionMembers(collectionId: $collectionId, ids: $rules)}// PARAMETERS{ "collectionId": "", // Collection ID is from the rule.id from scorecard entity "rules": [] // Provide list of all rule ids which are generated during rule creation.}entityManagementUpdateScorecard 변형을 사용하여 기존 스코어카드의 세부 정보를 업데이트할 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| 문자열 | 네 | 스코어카드의 고유 식별자입니다. |
| 문자열 | 아니요 | 스코어카드에 대한 설명이 업데이트되었습니다. |
| 문자열 | 네 | 스코어카드 이름이 업데이트되었습니다. |
샘플 요청
mutation UpdateScorecard($id: ID!, $description: String, $name: String!) { entityManagementUpdateScorecard( id: $id scorecardEntity: { description: $description, name: $name } ) { entity { name id rules { id } } }}entityManagementUpdateScorecardRule 변형을 사용하여 Scorecard의 규칙을 업데이트할 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| ID | 네 | 규칙의 고유 식별자입니다. |
| 문자열 | 네 | 규칙의 이름. |
| 문자열 | 아니요 | 규칙에 대한 간략한 설명입니다. |
| 문자열 | 네 | 규정 준수를 평가하기 위한 NRQL 쿼리입니다. |
| Int | 네 | 규칙이 쿼리를 실행해야 하는 계정 ID 목록입니다. |
| Int | 아니요 | 쿼리가 실행되는 각 계정에 결합되어야 하는 계정 ID 목록입니다. |
| 부울 | 아니요 | 규칙을 활성화하거나 비활성화합니다. |
| ID | 아니요 |
과(와) 같이 이 규칙이 속한 성숙도(진행) 수준의
입니다. 스코어카드의
중 하나와 일치해야 합니다 ― 이를 정의하려면 를 참조하십시오. |
| Int | 아니요 | 스코어카드의 가중 평균 점수에서 규칙의 가중치로,
에서
사이의 정수입니다(기본값
). 을 참조하십시오. |
| Int | 아니요 | 규칙이 실행되는 빈도(분 단위)입니다. 허용되는 값:
(1시간),
(6시간),
(12시간) 및
(1일). |
샘플 요청
mutation UpdateRule( $ruleId: ID! $name: String! $description: String $query: String! $queryAccounts: [Int!]! $joinAccounts: [Int!] $enabled: Boolean $progressLevel: ID $impactWeight: Int $runInterval: Int) { entityManagementUpdateScorecardRule( id: $ruleId scorecardRuleEntity: { description: $description name: $name enabled: $enabled progressLevel: $progressLevel impactWeight: $impactWeight runInterval: $runInterval nrqlEngine: { accounts: $queryAccounts joinAccounts: $joinAccounts query: $query } } ) { entity { id name description progressLevel impactWeight nrqlEngine { accounts joinAccounts query } } }}entityManagementDelete 변형을 사용하여 기존 스코어카드나 규칙을 삭제할 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| ID | 네 | 삭제할 목표 스코어카드 또는 규칙 ID입니다. |
샘플 요청
mutation DeleteEntity($id: ID!) { entityManagementDelete(id: $id) { id }}스코어카드에 대한 NerdGraph 쿼리
FetchScorecardDetails 쿼리를 사용하여 특정 스코어카드와 관련된 모든 규칙을 검색할 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| 문자열 | 네 | 규칙을 가져오려면 스코어카드의 ID를 사용하세요. |
샘플 요청
query FetchScorecardDetails($scorecardId: ID!) { actor { entityManagement { entity(id: $scorecardId) { ... on EntityManagementScorecardEntity { name description progressLevels { id name description hexColorCode } rules { id } } } } }}FetchRulesCollection 질문
FetchScorecardDetails 응답에서 얻은 규칙 ID가 필요한 FetchRulesCollection 쿼리를 사용하여 컬렉션의 세부 정보를 검색할 수 있습니다.
입력스피커, 변수
매개변수 | 데이터 형식 | 꼭 필요한가요? | 설명 |
|---|---|---|---|
| 문자열 | 네 | 응답에서 얻은 ID입니다. |
샘플 요청
query FetchRulesCollection($rulesId: ID!) { actor { entityManagement { collectionElements(filter: { collectionId: { eq: $rulesId } }) { items { ... on EntityManagementScorecardRuleEntity { id name progressLevel impactWeight nrqlEngine { accounts joinAccounts query } } } nextCursor } } }}