New Relic의엔터티는 원격 측정을 생성하거나 포함하는 우리가 모니터링하는 모든 것을 말합니다. 엔터티는 New Relic에서 추적하려는 데이터를 찾는 데 도움이 되며 다른 엔터티와의 관계를 이해하면 데이터에 대한 더 많은 통찰력을 얻을 수 있습니다. 다음은 엔터티의 몇 가지 예입니다.
UI에서 직접 엔터티로 작업하거나( New Relic 엔터티에 대해 알아보기참조) NerdGraph API를 통해 엔터티 작업에 대한 단계를 수행할 수 있습니다. NerdGraph를 시작하는 데 도움이 필요한 경우 New Relic NerdGraph 소개를참조하세요.
중요
엔터티의 골든 메트릭 및 태그로 작업하려면 골든 메트릭 API 자습서 를참조하십시오.
시작하기 전에
엔터티로 작업하기 전에 엔터티에 대해 알아보기를 읽어 보는 것이 좋습니다.
엔터티로 작업할 때 염두에 두어야 할 몇 가지 중요한 사항은 다음과 같습니다.
- 고유한 GUID는 엔터티(
entity.guid
또는entityGuid
)를 식별합니다. - 엔터티는 특정 기간 동안 New Relic에 존재합니다.
- 엔터티는 특정 메트릭 및 이벤트에 대한 데이터를 탐색하거나 다른 엔터티와 관련된 데이터를 컨텍스트화하기 위한 유용한 진입점을 제공합니다.
엔터티 검색
New Relic은 속성, 주로 이름뿐 아니라 엔티티 유형 및 기타 값으로 엔티티를 검색합니다. 검색은 검색 기준과 일치하는 엔터티에 대한 기본 데이터를 반환합니다. 그런 다음 기본 쿼리 결과에서 GUID로 특정 엔터티를 쿼리할 수 있습니다.
domainType
외에 다른 일반적인 항목 속성은 다음과 같습니다.
id
accountId
name
domainId
alertSeverity
reporting
위의 속성 중 하나로 필터링할 수 있습니다. 또한 필터링을 위해 태그를 사용할 수 있습니다.
주의
사용자 지정 루트 수준 엔터티 속성으로 필터링할 수 없습니다. 사용자 지정 속성은 실제 검색 응답에서 엔터티 메타데이터의 일부로만 검색됩니다. 사용자 정의 필드로 필터링하려면 엔티티 태그로 변환하십시오.
다음 두 가지 방법 중 하나로 쿼리를 작성할 수 있습니다.
- 쿼리를 작성하는 데 도움이 되도록
queryBuilder
인수를 사용합니다. - 자유 형식
query
인수를 사용하여 고유한 검색을 작성하십시오.
NerdGraph를 사용하여 하나 이상의 엔터티를 쿼리하려면 속성 또는 GUID로 검색할 수 있습니다.
팁
NerdGraph는 한 쿼리에서 반환할 수 있는 총 엔터티 수를 200으로 설정합니다. 쿼리에 대해 모든 엔터티를 검색해야 하는 경우 예제에 설명된 대로 커서 페이지 매김을 사용합니다.
아래 예제외에도 NerdGraph 탐색기를사용하여 API를 실험해 볼 것을 권장합니다. 쿼리 및 변형을 구성하는 데 도움이 되는 인라인 문서가 있습니다.
다음으로 검색 queryBuilder
queryBuilder
인수는 간단한 쿼리를 구성하는 데 유용합니다. 이를 통해 미리 정의된 속성 목록과 해당 일반 값에서 쿼리에 필터를 추가할 수 있습니다. 고급 쿼리의 경우 대신 query
인수를 사용하십시오.
NerdGraph GraphiQL 탐색기 로 이동합니다.
기본 쿼리를 실행하여 검색 기준과 일치하는 엔터티를 찾습니다. 예를 들어:
{actor {entitySearch(queryBuilder: { domain: APM, type: APPLICATION }) {queryresults {entities {nameentityTypeguid}}}}}
자유형으로 검색 query
이것은 더 복잡한 쿼리를 만드는 데 유용합니다.
NerdGraph GraphiQL 탐색기 로 이동합니다.
기본 쿼리를 실행하여 검색 기준과 일치하는 엔터티를 찾습니다. 예를 들어:
query($query: String!) {actor {entitySearch(query: $query) {countresults {entities {nameentityTypeguid}}}}}NerdGraph의 Query variables 섹션에 다음 변수를 추가합니다.
{ "query": "name LIKE 'nerd-graph' AND domainType IN ('APM-APPLICATION')" }
GUID로 엔터티 가져오기
가져오려는 항목의 GUID를 알고 있으면 entity
속성만 사용할 수 있습니다.
{ actor { entity(guid: "ENTITY_GUID") { name entityType } }}
이것은 검색 쿼리로 작성할 수도 있습니다.
{ actor { entitySearch(query: "id = 'ENTITY_GUID'") { query results { entities { name entityType } } } }}
또는 동시에 여러 항목을 가져오려면 entities
속성을 사용할 수 있습니다.
{ actor { entities(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) { name entityType } }}
그렇지 않으면 검색어를 사용하세요.
{ actor { entitySearch(query: "id IN ('ENTITY_GUID_1', 'ENTITY_GUID_2')") { query results { entities { name entityType } } } }}
쿼리 예시
쿼리는 데이터만 가져오기 위한 요청이며 다른 효과는 없습니다. NerdGraph 쿼리는 정적이 아닙니다. 즉, 필요에 따라 더 많거나 적은 데이터를 요청할 수 있습니다. 각 쿼리에 대해 스키마에서 지원하는 한 검색하려는 데이터를 정확히 지정할 수 있습니다.
NerdGraph의 엔터티는 개체가 공통 필드를 공유할 수 있도록 하는 개념인 GraphQL 인터페이스 에 의존합니다. 이러한 NerdGraph 쿼리 예제에서 볼 수 있듯이 인터페이스는 특정 엔터티 유형에 대한 데이터를 제공하는 데 사용됩니다.
엔터티 관계 만들기 또는 삭제
엔터티는 다른 엔터티와 관계를 가질 수 있습니다. 일부 관계는 New Relic에 의해 자동으로 생성되지만 변형을 사용하여 사용자 지정 관계를 생성하거나 삭제할 수도 있습니다. 이를 수행하는 방법에 대한 몇 가지 설명이 아래에 있지만 New Relic의 다양한 관계 유형을 이해하는 데 도움이 필요한 경우 엔터티 관계를살펴보십시오.
추가 관계를 수동으로 생성하거나 삭제하기 전에 다음 사항에 유의하십시오.
- 두 엔터티는 각 관계 유형에 대해 하나씩 여러 관계를 가질 수 있습니다.
- 두 엔터티는 동일한 신뢰할 수 있는 계정에 속한 경우 관계를 유지할 수 있습니다.
- 각 엔터티에 대해 최대 2000개의 관계를 수동으로 정의할 수 있습니다. 한도에 도달하면 API가
LIMIT_EXCEEDED
오류를 반환합니다. - 두 엔터티(소스/대상) 중 하나에 액세스할 수 없는 경우 각 변형이 실패할 수 있습니다.
엔터티의 관계 나열
relatedEntities
필드를 사용하여 항목 쌍이 어떻게 상호 작용하고 관련되어 있는지 확인할 수 있습니다. 이를 통해 업스트림 및 다운스트림 서비스 문제를 해결하고 서비스 맵을 사용할 수 있는 방법과 유사하게 사소한 문제가 더 큰 영향을 미칠 수 있는 방법을 이해할 수 있습니다.
다음 예에서는 특정 GUID로 엔터티를 쿼리하는 방법을 보여줍니다.
query { actor { entity(guid: "ENTITY_GUID") { name relatedEntities { results { source { entity { guid name } } target { entity { guid name } } type } } } }}
관계 만들기 또는 바꾸기
entityRelationshipUserDefinedCreateOrReplace
변이를 사용하여 항목 관계를 만들거나 바꿉니다. 이름에서 알 수 있듯이 주어진 유형의 두 엔터티 간에 관계를 만들 수 있습니다. 두 엔터티 간에 관계가 이미 존재하는 경우 업데이트된 주어진 값(생성 시간 및 작성자 사용자 ID)으로 다시 추가됩니다.
mutation { entityRelationshipUserDefinedCreateOrReplace( sourceEntityGuid: "SOURCE_ENTITY_GUID" targetEntityGuid: "TARGET_ENTITY_GUID" type: BUILT_FROM ) { errors { message type } }}
관계 삭제
entityRelationshipUserDefinedDelete
변형을 사용하여 항목 관계를 삭제합니다. 소스와 대상은 필수 항목이지만 유형은 필수 항목이 아닙니다. 유형 없이 변형을 실행하면 두 엔터티 간의 모든 관계가 제거됩니다.
mutation { entityRelationshipUserDefinedDelete( sourceEntityGuid: "SOURCE_ENTITY_GUID" targetEntityGuid: "TARGET_ENTITY_GUID" type: BUILT_FROM ) { errors { message type } }}
항목 삭제
NerdGraph GraphiQL 탐색기 에서 NerdGraph API를 사용하여 계정의 모든 엔터티를 수동으로 삭제할 수 있습니다.
EXT-SERVICE
및 REF-REPOSITORY
항목을 삭제하려면 항목의 GUID를 사용하여 이 변형을 실행하세요.
mutation { entityDelete(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) { deletedEntities failures { guid message } }}
중요
entityDelete
변형을 실행한 후 New Relic 에이전트가 항목을 다시 색인화하면 UI에 삭제된 항목이 표시될 수 있습니다.
APM
, BROWSER
및 MOBILE
항목을 삭제하려면 항목의 GUID를 사용하여 이 변형을 실행하세요.
mutation { agentApplicationDelete(guid: "ENTITY_GUID") { success }}
중요
agentApplicationDelete
변형을 사용하려면 New Relic 에이전트에 삭제 전 12시간 동안 보고 데이터가 없어야 합니다.- 현재 Nerdgraph API를 사용하여 다음 항목 유형 만 제거할 수 있습니다.
APM-APPLICATION
,EXT-SERVICE
및REF-REPOSITORY
. - New Relic 에이전트가 다시 색인을 생성하면 UI에서 삭제된 엔터티를 볼 수 있습니다.