entidade da New Relic referem-se a qualquer coisa que monitor que gere ou contenha telemetria. entidade ajuda você a encontrar os dados que deseja rastrear no New Relic e, se entender seus relacionamentos com outras entidades, poderá obter ainda mais insights sobre seus dados. Aqui estão alguns exemplos de entidade:
- Aplicativo monitor da APM.
- Integração na nuvem, serviços e hosts monitorados pelo nosso monitoramento de infraestrutura.
Você pode trabalhar com entidade diretamente em nossa interface (consulte Saiba mais sobre entidade New Relic) ou pode seguir as etapas aqui sobre como trabalhar com entidade por meio de nossa API NerdGraph. Se precisar de ajuda para começar a usar o NerdGraph, consulte nossa Introdução ao New Relic NerdGraph.
Importante
Para trabalhar com as métricas clássicas e tags de uma entidade, consulte o tutorial da API de métricas clássicas.
Antes de começar
Antes de trabalhar com entidade, recomendamos a leitura Saiba mais sobre entidade.
Ao trabalhar com entidade, algumas coisas importantes a ter em mente:
- Um GUID exclusivo identifica uma entidade (
entity.guid
ouentityGuid
). - Uma entidade existe na New Relic por um período de tempo específico.
- Uma entidade fornece um ponto de entrada útil para explorar dados sobre métricas e eventos específicos ou para contextualizar dados relacionados com outras entidades.
Pesquisar entidade
A New Relic procura entidades pelo seu atributo, principalmente pelo nome, mas também por tipo de entidade e outros valores. A pesquisa retorna dados básicos sobre a entidade que corresponde aos critérios de pesquisa. Então, a partir dos resultados básicos da consulta, você pode consultar uma entidade específica pelo seu GUID.
Além de domainType
, outros atributos de entidade comuns são:
id
accountId
name
domainId
alertSeverity
reporting
Você pode filtrar por qualquer um dos atributos acima. Além disso, você pode usar tags para filtragem.
Cuidado
Não é possível filtrar por propriedades de entidade personalizadas no nível raiz. As propriedades personalizadas são recuperadas apenas como parte dos metadados da entidade na resposta de pesquisa real. Para filtrar por um campo personalizado, transforme-o em uma tag de entidade.
Você pode criar uma consulta de duas maneiras:
- Use o argumento
queryBuilder
para ajudá-lo a criar uma consulta. - Use o argumento
query
de formato livre para criar sua própria pesquisa.
Para utilizar o NerdGraph para consultar uma ou mais entidades, você pode pesquisar por atributo ou GUID.
Dica
O NerdGraph define como 200 o número total de entidades que podem ser retornadas em uma consulta. Se precisar recuperar todas as entidades de uma consulta, utilize a paginação do cursor conforme explicado nos exemplos.
Além dos exemplos abaixo, recomendamos que você experimente a API usando o NerdGraph Explorer. Possui documentação inline que o ajudará a construir suas consultas e mutações.
Pesquisar com queryBuilder
O argumento queryBuilder
é útil para construir consultas simples. Permite adicionar filtros à sua consulta a partir de uma lista predefinida de atributos e seus valores típicos. Para consultas mais avançadas, use o argumento query
.
Vá para o explorador NerdGraph GraphiQL.
Execute uma consulta básica para encontrar a entidade que corresponde aos seus critérios de pesquisa. Por exemplo:
{actor {entitySearch(queryBuilder: { domain: APM, type: APPLICATION }) {queryresults {entities {nameentityTypeguid}}}}}
Pesquise com formato livre query
Isso é útil para elaborar consultas mais complexas.
Vá para o explorador NerdGraph GraphiQL.
Execute uma consulta básica para encontrar a entidade que corresponde aos seus critérios de pesquisa. Por exemplo:
query($query: String!) {actor {entitySearch(query: $query) {countresults {entities {nameentityTypeguid}}}}}Adicione as seguintes variáveis à seção Query variables no NerdGraph:
{ "query": "name LIKE 'nerd-graph' AND domainType IN ('APM-APPLICATION')" }
Buscar entidade por GUID
Quando você souber o GUID da entidade que deseja buscar, basta usar o atributo entity
:
{ actor { entity(guid: "ENTITY_GUID") { name entityType } }}
Isso também pode ser escrito como uma consulta de pesquisa:
{ actor { entitySearch(query: "id = 'ENTITY_GUID'") { query results { entities { name entityType } } } }}
Ou, para buscar diversas entidades ao mesmo tempo, você pode usar o atributo entities
:
{ actor { entities(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) { name entityType } }}
Caso contrário, use uma consulta de pesquisa:
{ actor { entitySearch(query: "id IN ('ENTITY_GUID_1', 'ENTITY_GUID_2')") { query results { entities { name entityType } } } }}
Exemplo de consulta
Consulta são solicitações que visam apenas buscar dados (e não têm nenhum outro efeito). As consultas do NerdGraph não são estáticas, o que significa que você pode solicitar mais ou menos dados dependendo da sua necessidade. Para cada consulta, você pode especificar exatamente quais dados deseja recuperar, desde que sejam suportados pelo esquema.
Entidade no NerdGraph contam com interfaces GraphQL, um conceito que permite que objetos compartilhem campos comuns. As interfaces são usadas para fornecer dados para tipos de entidade específicos, como você verá em muitos desses exemplos de consulta do NerdGraph.
Criar ou excluir relacionamentos de entidade
Uma entidade pode ter um relacionamento com outra entidade. Alguns relacionamentos são criados automaticamente pelo New Relic, mas você também pode usar mutações para criar ou excluir relacionamentos personalizados. Abaixo temos algumas explicações sobre como fazer isso, mas se precisar de ajuda para entender os vários tipos de relacionamento na New Relic, dê uma olhada em relacionamentos de entidade.
Antes de criar relacionamentos adicionais manualmente ou excluí-los, lembre-se do seguinte:
- Duas entidades podem ter vários relacionamentos, um para cada tipo de relacionamento.
- Duas entidades podem manter um relacionamento SE pertencerem à mesma conta confiável.
- Para cada entidade, você pode definir manualmente até 2.000 relacionamentos. Quando o limite for atingido, a API retornará um erro
LIMIT_EXCEEDED
. - Cada mutação pode falhar se você não tiver acesso a uma das duas entidades (origem/destino).
Listar relacionamentos de uma entidade
Você pode usar o campo relatedEntities
para ver como os pares de entidade interagem e como estão relacionados. Isso pode ajudá-lo a solucionar problemas de serviços upstream e downstream e a entender como problemas menores podem ter repercussões maiores, semelhante à forma como os mapas de serviço podem ser usados.
O exemplo a seguir mostra como consultar uma entidade pelo seu GUID específico:
query { actor { entity(guid: "ENTITY_GUID") { name relatedEntities { results { source { entity { guid name } } target { entity { guid name } } type } } } }}
Criar ou substituir relacionamentos
Crie ou substitua relacionamentos de entidade usando a mutação entityRelationshipUserDefinedCreateOrReplace
. Como o próprio nome sugere, permite criar uma relação entre duas entidades de um determinado tipo. Caso o relacionamento já exista entre as duas entidades, ele será adicionado novamente com os valores informados atualizados (o horário de criação e o id do usuário criador):
mutation { entityRelationshipUserDefinedCreateOrReplace( sourceEntityGuid: "SOURCE_ENTITY_GUID" targetEntityGuid: "TARGET_ENTITY_GUID" type: BUILT_FROM ) { errors { message type } }}
Excluir relacionamentos
Exclua relacionamentos de entidade usando a mutação entityRelationshipUserDefinedDelete
. A origem e o destino são obrigatórios, mas o tipo não. Se você executar a mutação sem tipo, todos os relacionamentos entre as duas entidades serão removidos.
mutation { entityRelationshipUserDefinedDelete( sourceEntityGuid: "SOURCE_ENTITY_GUID" targetEntityGuid: "TARGET_ENTITY_GUID" type: BUILT_FROM ) { errors { message type } }}
Excluir entidade
Você pode excluir manualmente qualquer entidade da sua conta usando a API NerdGraph no NerdGraph GraphiQL Explorer.
Para excluir entidades EXT-SERVICE
e REF-REPOSITORY
, execute esta mutação com o GUID da entidade:
mutation { entityDelete(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) { deletedEntities failures { guid message } }}
Importante
Depois de executar a mutação entityDelete
, você poderá ver uma entidade excluída em sua interface se um agente da New Relic a reindexar novamente.
Para excluir entidades APM
, BROWSER
e MOBILE
, execute esta mutação com o GUID da entidade:
mutation { agentApplicationDelete(guid: "ENTITY_GUID") { success }}
Importante
- A mutação
agentApplicationDelete
exige que o agente New Relic não tenha dados de relatório por 12 horas antes da exclusão. - Atualmente, você só pode remover os seguintes tipos de entidade usando a API Nerdgraph:
APM-APPLICATION
,EXT-SERVICE
eREF-REPOSITORY
. - Você poderá ver uma entidade excluída em sua interface se um agente da New Relic a reindexar novamente.