이 튜토리얼에서는 NerdGraph API를 사용하여 토폴로지를 설정하는 방법을 설명합니다. 토폴로지 설정을 통해 공지 결정을 통해 인시던트의 상관관계를 더 높일 수 있습니다.
요구 사항
토폴로지 상관 관계는 현재 제한적으로 릴리스되었습니다. 토폴로지 요구 사항 을 참조하십시오.
NerdGraph를 사용하려면 사용자 키 가 필요합니다.
튜토리얼 개요
뉴렐릭의 알림을 사용하면 인시던트의 상관 관계를 관리하는 사용자 정의 결정을 내릴 수 있습니다. 한 종류의 사용자 정의 결정 논리는 서비스 맵, 즉 인프라의 서비스와 리소스가 서로 관련되는 방식을 나타내는 "토폴로지" 개념을 사용합니다.
이 튜토리얼에서는 NerdGraph 를 사용하여 다음을 수행하는 방법을 보여줍니다.
- 꼭짓점과 모서리를 만들어 토폴로지 설정
- 정점 및 가장자리 삭제
- 토폴로지 데이터 검색
NerdGraph를 사용하여 토폴로지를 구성하기 전에 다음 사항을 기본적으로 이해해야 합니다.
- 상관 결정이란 무엇이며 토폴로지 상관이 작동하는 방식입니다.
- 구현하려는 토폴로지 구조입니다. 이를 이해하는 한 가지 방법은 서비스 맵 기능 을 사용하여 인프라의 엔터티가 서로 어떻게 관련되어 있는지 확인하는 것입니다.
- NerdGraph가 무엇이며 NerdGraph API 탐색기를 사용하여 쿼리를 실행하는 방법 .
돌연변이 예
NerdGraph에서 돌연변이는 리소스 생성 또는 구성 변경과 같은 작업을 수행하는 요청입니다( NerdGraph 용어 자세히 알아보기 ).
이 섹션에서는 aiTopologyCollector
변형을 사용하여 토폴로지를 생성, 편집 또는 삭제하는 방법을 보여줍니다.
만들기 섹션에서 이 서비스 맵을 나타내는 꼭짓점과 가장자리를 만듭니다.
이 자습서에서는 NerdGraph를 사용하여 이러한 엔터티와 해당 관계를 나타내는 꼭짓점과 가장자리를 만듭니다.
정점 만들기
다음 돌연변이는 모니터링되는 엔터티를 나타내고 사건이 발생한 소스인 하나 이상의 꼭짓점을 만듭니다.
아래의 NerdGraph 호출은 다음 필드를 사용합니다.
accountId
: 귀하의 New Relic 계정 ID입니다.name
: 정점의 이름. 이 값은 대소문자를 구분하며 그래프 내에서 고유해야 합니다.vertexClass
: 정점 클래스는application
,host
,cloud service
,cluster
또는datastore
수 있습니다. 이 분류를 사용하면 결정 논리가 토폴로지 기반 상관 관계를 제한하여 이러한 분류와 일치하는 정점을 제한할 수 있습니다.definingAttributes
: 인시던트 이벤트의 속성과 일치하는 속성 집합(키/값 쌍)입니다. 이는 일반적으로 엔터티 GUID 또는 기타 ID와 같이 모든 인시던트에 나타나는 고유 식별자입니다. 인시던트에 꼭짓점definingAttributes
의 키/값 쌍이 포함되어 있으면 해당 꼭짓점과 일치합니다. 속성 및 추가 방법에 대한 자세한 내용은 속성 추가 를 참조 하십시오 .
호출 예:
mutation { aiTopologyCollectorCreateVertices( accountId: NEW_RELIC_ACCOUNT_ID vertices: [ { name: "ServiceA" vertexClass: APPLICATION definingAttributes: [{ key: "application/name", value: "ServiceA" }] } { name: "ServiceB" vertexClass: APPLICATION definingAttributes: [{ key: "application/name", value: "ServiceB" }] } { name: "ServiceC" vertexClass: APPLICATION definingAttributes: [{ key: "application/name", value: "ServiceC" }] } { name: "HOST1" vertexClass: HOST definingAttributes: [ { key: "host/name", value: "HOST1" } { key: "availability-zone", value: "us-west-2a" } { key: "region", value: "us-west-2" } ] } { name: "HOST2" vertexClass: HOST definingAttributes: [ { key: "host/name", value: "HOST2" } { key: "availability-zone", value: "us-west-2b" } { key: "region", value: "us-west-2" } ] } { name: "HOST3" vertexClass: HOST definingAttributes: [ { key: "host/name", value: "HOST3" } { key: "availability-zone", value: "us-west-2c" } { key: "region", value: "us-west-2" } ] } ] ) { result }}
가장자리 만들기
이 돌연변이는 정점 간의 관계를 나타내는 하나 이상의 가장자리를 만드는 데 사용됩니다.
아래 NerdGraph 호출은 다음 필드를 사용합니다.
accountId
: 귀하의 New Relic 계정 ID입니다.fromVertexName
: 가장자리가 시작되는 정점의 이름입니다.toVertexName
: 연결 정점의 이름.directed
: 정점이 연결되는 방식을 설명하는 부울입니다.true
은 단방향 관계(예: 한 서비스가 다른 서비스를 호출함)를 나타내고false
은 를 나타냅니다. 기본적으로 지시된 =true
.
호출 예:
mutation { aiTopologyCollectorCreateEdges( accountId: NEW_RELIC_ACCOUNT_ID edges: [ { directed: true, fromVertexName: "ServiceA", toVertexName: "ServiceB" } { directed: true, fromVertexName: "ServiceB", toVertexName: "ServiceC" } { directed: false, fromVertexName: "ServiceA", toVertexName: "HOST1" } { directed: false, fromVertexName: "ServiceA", toVertexName: "HOST2" } { directed: false, fromVertexName: "ServiceA", toVertexName: "HOST3" } { directed: false, fromVertexName: "ServiceB", toVertexName: "HOST1" } { directed: false, fromVertexName: "ServiceB", toVertexName: "HOST2" } { directed: false, fromVertexName: "ServiceB", toVertexName: "HOST3" } { directed: false, fromVertexName: "ServiceC", toVertexName: "HOST1" } { directed: false, fromVertexName: "ServiceC", toVertexName: "HOST2" } { directed: false, fromVertexName: "ServiceC", toVertexName: "HOST3" } ] ) { result }}
정점 삭제
이 변형은 토폴로지 그래프에서 정점을 삭제합니다. 정점을 삭제하면 정점에 연결된 모든 가장자리가 삭제됩니다.
아래 NerdGraph 호출은 다음 필드를 사용합니다.
accountId
: 귀하의 New Relic 계정 ID입니다.vertexNames
: 삭제하려는 정점 이름의 목록입니다.
호출 예:
mutation { aiTopologyCollectorDeleteVertices( accountId: NEW_RELIC_ACCOUNT_ID vertexNames: ["ServiceA", "ServiceB", "ServiceC", "HOST1", "HOST2", "HOST3"] ) { result }}
가장자리 삭제
이 돌연변이는 토폴로지 그래프에서 정점을 연결하는 가장자리를 삭제합니다.
아래 NerdGraph 호출은 다음 필드를 사용합니다.
accountId
: 귀하의 New Relic 계정 ID입니다.edgeIds
: 삭제할 에지 ID 목록입니다.
호출 예:
mutation { aiTopologyCollectorDeleteEdges( accountId: NEW_RELIC_ACCOUNT_ID edgeIds: [ "d8a7971b-575d-42e9-aa13-43a50c5a7d10" "0da5cb92-0428-4890-992b-2823d037cb5e" ] ) { result }}
쿼리 예시
NerdGraph에서 쿼리는 작업을 수행하는 변형과 달리 데이터를 가져오는 데 사용됩니다( 용어에 대해 자세히 알아보기 ). Nerdgraph 쿼리는 정적이 아닙니다. 즉, 필요에 따라 더 많거나 적은 데이터를 요청할 수 있습니다. 토폴로지 데이터를 검색하려면 aiTopology
쿼리를 사용합니다.
정점 검색
이 쿼리는 토폴로지 그래프의 꼭짓점 목록을 반환합니다.
{ actor { account(id: NEW_RELIC_ACCOUNT_ID) { aiTopology { vertices { vertices { id name definingAttributes { key value } updatedAt vertexClass } count cursor } } } }}
가장자리 검색
이 쿼리는 토폴로지 그래프의 간선 목록을 반환합니다.
{ actor { account(id: NEW_RELIC_ACCOUNT_ID) { aiTopology { edges { edges { id toVertexName fromVertexName directed updatedAt } cursor count } } } }}