NerdGraph 를 사용하면 모니터링되는 엔터티에 대한 세부 정보를 쿼리할 수 있습니다.
중요
엔터티의 골든 메트릭 및 태그로 작업하려면 골든 메트릭 API 자습서 를 참조하십시오.
엔티티 정의
엔티티 는 중요한 New Relic 개념입니다. 엔티티를 모니터링하는 모든 것으로 정의합니다. 여기에는 다음이 포함됩니다(단, 이에 국한되지 않음).
UI에서 엔터티 세부 정보를 보려면 Explorer 를 사용할 수 있습니다.
NerdGraph에서 엔터티로 작업할 때 다음 사항을 염두에 두는 것이 중요합니다.
- 고유 엔터티 GUID는 엔터티를 식별합니다.
- 엔터티는 짧은 기간일지라도 일정 기간 동안 존재합니다.
- 엔터티는 특정 메트릭 및 이벤트에 대한 데이터를 탐색하거나 다른 엔터티와 관련된 데이터를 컨텍스트화하는 데 유용한 진입점을 제공합니다.
엔터티 검색
New Relic은 속성, 주로 이름뿐 아니라 엔티티 유형 및 기타 값으로 엔티티를 검색합니다. 검색은 검색 기준과 일치하는 엔터티에 대한 기본 데이터를 반환합니다. 그런 다음 기본 쿼리 결과에서 GUID로 특정 엔터티를 쿼리할 수 있습니다.
domainType
외에 다른 일반적인 항목 속성은 다음과 같습니다.
id
accountId
name
domainId
alertSeverity
reporting
위의 속성으로 필터링할 수 있습니다. 또한 필터링을 위해 태그 를 사용할 수도 있습니다.
주의
사용자 지정 루트 수준 엔터티 속성으로 필터링할 수 없습니다. 사용자 지정 속성은 실제 검색 응답에서 엔터티 메타데이터의 일부로만 검색됩니다. 사용자 정의 필드로 필터링하려면 엔티티 태그로 변환하십시오.
다음 두 가지 방법 중 하나로 쿼리를 작성할 수 있습니다.
- 쿼리를 작성하는 데 도움이 되도록
queryBuilder
인수를 사용합니다. - 자유 형식
query
인수를 사용하여 고유한 검색을 작성하십시오.
NerdGraph를 사용하여 하나 이상의 엔터티를 쿼리하려면 속성 또는 GUID로 검색할 수 있습니다.
팁
NerdGraph는 한 쿼리에서 반환할 수 있는 총 엔터티 수를 200으로 설정합니다. 쿼리에 대해 모든 엔터티를 검색해야 하는 경우 예제에 설명된 대로 커서 페이지 매김을 사용합니다.
아래 예제 외에도 NerdGraph GraphiQL 탐색기 를 사용하여 API를 탐색하고 인라인 문서를 활용하는 것이 좋습니다.
다음으로 검색 queryBuilder
queryBuilder
인수는 간단한 쿼리를 구성하는 데 유용합니다. 이를 통해 미리 정의된 속성 목록과 해당 일반 값에서 쿼리에 필터를 추가할 수 있습니다. 고급 쿼리의 경우 대신 query
인수를 사용하십시오.
- NerdGraph GraphiQL 탐색기 로 이동합니다.
- 기본 쿼리를 실행하여 검색 기준과 일치하는 엔터티를 찾습니다. 예를 들어:
{ actor { entitySearch(queryBuilder: {domain: APM, type: APPLICATION}) { query results { entities { name entityType guid } } } } }
자유형으로 검색 query
이것은 더 복잡한 쿼리를 만드는 데 유용합니다.
- NerdGraph GraphiQL 탐색기 로 이동합니다.
- 기본 쿼리를 실행하여 검색 기준과 일치하는 엔터티를 찾습니다. 예를 들어:
query($query: String!) { actor { entitySearch(query: $query) { count results { entities { name entityType guid } } } } }
NerdGraph의 쿼리 변수 섹션에 다음 변수 를 추가합니다.
{"query": "name LIKE 'nerd-graph' AND domainType IN ('APM-APPLICATION')"}
GUID로 엔터티 가져오기
가져오려는 항목의 GUID를 알고 있으면 entity
속성만 사용할 수 있습니다.
{ actor { entity(guid: "MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3") { name entityType } } }
이것은 검색 쿼리로 작성할 수도 있습니다.
{ actor { entitySearch(query: "id = 'MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3'") { query results { entities { name entityType } } } } }
또는 동시에 여러 항목을 가져오려면 entities
속성을 사용할 수 있습니다.
{ actor { entities(guids: ["MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3", "MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0MTM3"]) { name entityType } } }
그렇지 않으면 검색어를 사용하세요.
{ actor { entitySearch(query: "id in ('MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0Mjk3', 'MTAwNDc5MzZ8QVBNfEFQUExJQ0FUSU9OfDExNzA0MTM3')") { query results { entities { name entityType } } } } }
쿼리 예시
쿼리는 데이터만 가져오기 위한 요청이며 다른 효과는 없습니다. NerdGraph 쿼리는 정적이 아닙니다. 즉, 필요에 따라 더 많거나 적은 데이터를 요청할 수 있습니다. 각 쿼리에 대해 스키마에서 지원하는 한 검색하려는 데이터를 정확히 지정할 수 있습니다.
NerdGraph의 엔터티는 개체가 공통 필드를 공유할 수 있도록 하는 개념인 GraphQL 인터페이스 에 의존합니다. 이러한 NerdGraph 쿼리 예제에서 볼 수 있듯이 인터페이스는 특정 엔터티 유형에 대한 데이터를 제공하는 데 사용됩니다.
항목 삭제
NerdGraph API를 사용하여 계정의 모든 항목을 수동으로 삭제할 수 있습니다. 이렇게 하려면 NerdGraph GraphiQL 탐색기 에서 엔터티의 GUID로 이 쿼리를 실행합니다.
mutation { entityDelete(guids: ["EntityGuid"]) { deletedEntities failures }}
중요
현재 Nerdgraph API를 사용하여 다음 항목 유형 만 제거할 수 있습니다. APM-APPLICATION
, EXT-SERVICE
및 REF-REPOSITORY
.
New Relic 에이전트가 다시 색인을 생성하면 UI에서 삭제된 엔터티를 볼 수 있습니다.