entité chez New Relic fait référence à tout ce que nous monitorons et qui génère ou contient de la télémétrie. Entité vous aide à trouver les données que vous souhaitez suivre dans New Relic, et si vous comprenez leurs relations avec d'autres entités, vous pouvez obtenir encore plus d'informations détaillées sur vos données. Voici quelques exemples d'entité :
- moniteur d'application par APM.
- intégration cloud, services et hôtes moniteur par notre monitoring d'infrastructure.
Vous pouvez travailler avec l'entité directement dans notre UI (voir En savoir plus sur l'entité New Relic ), ou vous pouvez suivre les étapes ici pour travailler avec l'entité via notre API NerdGraph. Si vous avez besoin d’aide pour démarrer avec NerdGraph, consultez notre Introduction à New Relic NerdGraph.
Important
Pour travailler avec les métriques dorées et la balise d'une entité, consultez le didacticiel API métriques dorées.
Avant de commencer
Avant de travailler avec entité, nous vous recommandons de lire En savoir plus sur entité.
Lorsque vous travaillez avec Entité, voici quelques points importants à garder à l'esprit :
- Un GUID unique identifie une entité (
entity.guid
ouentityGuid
). - Une entité existe dans New Relic pendant une période spécifique.
- Une entité fournit un point d'entrée utile pour explorer des données sur des métriques et des événements spécifiques ou pour contextualiser des données liées à d'autres entités.
Recherche d'entité
New Relic recherche une entité par son attribut, principalement son nom, mais aussi par type d'entité et d'autres valeurs. La recherche renvoie des données de base sur l'entité correspondant aux critères de recherche. Ensuite, à partir des résultats de la requête de base, vous pouvez interroger une entité spécifique par son GUID.
Outre domainType
, les autres attributs d'entité courants sont :
id
accountId
name
domainId
alertSeverity
reporting
Vous pouvez filtrer par l’un des attributs ci-dessus. De plus, vous pouvez utiliser des balises pour le filtrage.
Prudence
Vous ne pouvez pas filtrer par propriétés d’entité personnalisées au niveau racine. Les propriétés personnalisées ne sont récupérées que dans le cadre des métadonnées de l'entité dans la réponse de recherche réelle. Pour filtrer par un champ personnalisé, transformez-le en tag d'entité.
Vous pouvez créer une requête de deux manières :
- Utilisez l’argument
queryBuilder
pour vous aider à créer une requête. - Utilisez l'argument libre
query
pour créer votre propre recherche.
Pour utiliser NerdGraph pour interroger une ou plusieurs entités, vous pouvez rechercher par attribut ou GUID.
Conseil
NerdGraph définit le nombre total d'entités pouvant être renvoyées dans une requête à 200. Si vous devez récupérer toutes les entités d'une requête, utilisez la pagination du curseur comme expliqué dans les exemples.
En plus des exemples ci-dessous, nous vous recommandons d'expérimenter l'API à l'aide de l'explorateur NerdGraph. Il dispose d'une documentation en ligne qui vous aidera à construire votre requête et vos mutations.
Rechercher avec queryBuilder
L'argument queryBuilder
est utile pour construire une requête simple. Il vous permet d'ajouter des filtres à votre requête à partir d'une liste prédéfinie d'attributs et de leurs valeurs typiques. Pour une requête plus avancée, utilisez plutôt l'argument query
.
Accédez à l'explorateur NerdGraph GraphiQL.
Exécutez une requête de base pour trouver les entités qui correspondent à vos critères de recherche. Par exemple:
{actor {entitySearch(queryBuilder: { domain: APM, type: APPLICATION }) {queryresults {entities {nameentityTypeguid}}}}}
Recherche avec forme libre query
Ceci est utile pour créer des requêtes plus complexes.
Accédez à l'explorateur NerdGraph GraphiQL.
Exécutez une requête de base pour trouver les entités qui correspondent à vos critères de recherche. Par exemple:
query($query: String!) {actor {entitySearch(query: $query) {countresults {entities {nameentityTypeguid}}}}}Ajoutez les variables suivantes à la section Query variables dans NerdGraph :
{ "query": "name LIKE 'nerd-graph' AND domainType IN ('APM-APPLICATION')" }
Récupérer l'entité par GUID
Lorsque vous connaissez le GUID de l'entité que vous souhaitez récupérer, vous pouvez simplement utiliser l'attribut entity
:
{ actor { entity(guid: "ENTITY_GUID") { name entityType } }}
Cela peut également être écrit sous forme de requête de recherche :
{ actor { entitySearch(query: "id = 'ENTITY_GUID'") { query results { entities { name entityType } } } }}
Ou, pour récupérer plusieurs entités en même temps, vous pouvez utiliser l'attribut entities
:
{ actor { entities(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) { name entityType } }}
Sinon, utilisez une requête de recherche :
{ actor { entitySearch(query: "id IN ('ENTITY_GUID_1', 'ENTITY_GUID_2')") { query results { entities { name entityType } } } }}
Exemple de requête
Les requêtes sont requests qui visent uniquement à récupérer des données (et n'ont aucun autre effet). Les requêtes NerdGraph ne sont pas statiques, ce qui signifie que vous pouvez demander plus ou moins de données en fonction de vos besoins. Pour chaque requête, vous pouvez spécifier exactement les données que vous souhaitez récupérer, à condition qu'elles soient prises en charge par le schéma.
Les entités dans NerdGraph s'appuient sur les interfacesGraphQL , un concept qui permet aux objets de partager des champs communs. Les interfaces sont utilisées pour fournir des données pour des types d'entités spécifiques, comme vous le verrez dans plusieurs de ces exemples de requêtes NerdGraph.
Créer ou supprimer des relations d'entité
Une entité peut avoir une relation avec une autre entité. Certaines relations sont créées automatiquement par New Relic, mais vous pouvez également utiliser des mutations pour créer ou supprimer des relations personnalisées. Nous avons quelques explications ci-dessous sur la façon de procéder, mais si vous avez besoin d'aide pour comprendre les différents types de relations dans New Relic, jetez un œil aux relations d'entité.
Avant de créer manuellement des relations supplémentaires ou de les supprimer, gardez à l'esprit les points suivants :
- Deux entités peuvent avoir plusieurs relations, une pour chaque type de relation.
- Deux entités peuvent entretenir une relation SI elles appartiennent au même compte de confiance.
- Pour chaque entité, vous pouvez définir manuellement jusqu'à 2000 relations. Lorsque la limite est atteinte, l'API renvoie une erreur
LIMIT_EXCEEDED
. - Chaque mutation peut échouer si vous n'avez pas accès à l'une des deux entités (source/cible).
Lister les relations d'une entité
Vous pouvez utiliser le champ relatedEntities
pour voir comment les paires d'entités interagissent et comment elles sont liées. Cela peut vous aider à résoudre les problèmes des services en amont et en aval et à comprendre comment des problèmes mineurs peuvent avoir des répercussions plus importantes, de la même manière que les cartes de service peuvent être utilisées.
L'exemple suivant montre comment interroger une entité par son GUID spécifique :
query { actor { entity(guid: "ENTITY_GUID") { name relatedEntities { results { source { entity { guid name } } target { entity { guid name } } type } } } }}
Créer ou remplacer des relations
Créez ou remplacez des relations d’entité à l’aide de la mutation entityRelationshipUserDefinedCreateOrReplace
. Comme son nom l'indique, il permet de créer une relation entre deux entités ayant un type donné. Si la relation existe déjà entre les deux entités, elle sera à nouveau ajoutée avec les valeurs données mises à jour (l'heure de création et l'identifiant de l'utilisateur créateur) :
mutation { entityRelationshipUserDefinedCreateOrReplace( sourceEntityGuid: "SOURCE_ENTITY_GUID" targetEntityGuid: "TARGET_ENTITY_GUID" type: BUILT_FROM ) { errors { message type } }}
Supprimer les relations
Supprimer les relations d’entité en utilisant la mutation entityRelationshipUserDefinedDelete
. La source et la cible sont obligatoires, mais le type ne l'est pas. Si vous exécutez la mutation sans type, toutes les relations entre les deux entités sont supprimées.
mutation { entityRelationshipUserDefinedDelete( sourceEntityGuid: "SOURCE_ENTITY_GUID" targetEntityGuid: "TARGET_ENTITY_GUID" type: BUILT_FROM ) { errors { message type } }}
Supprimer l'entité
Vous pouvez supprimer manuellement n'importe quelle entité de votre compte en utilisant l'API NerdGraph dans l'explorateur NerdGraph GraphiQL.
Pour supprimer l'entité EXT-SERVICE
et REF-REPOSITORY
, exécutez cette mutation avec le GUID de l'entité :
mutation { entityDelete(guids: ["ENTITY_GUID_1", "ENTITY_GUID_2"]) { deletedEntities failures { guid message } }}
Important
Après avoir exécuté la entityDelete
mutation, vous pouvez voir une entité supprimée dans votre UI si un New Relic agent la réindexe à nouveau.
Pour supprimer l'entité APM
, BROWSER
et MOBILE
, exécutez cette mutation avec le GUID de l'entité :
mutation { agentApplicationDelete(guid: "ENTITY_GUID") { success }}
Important
- La mutation
agentApplicationDelete
nécessite que l'agent New Relic ne dispose pas de données de rapport pendant 12 heures avant la suppression. - Actuellement, vous ne pouvez supprimer que les types d’entités suivants à l’aide de l’ API Nerdgraph :
APM-APPLICATION
,EXT-SERVICE
etREF-REPOSITORY
. - Vous pouvez voir une entité supprimée dans votre UI si un New Relic agent la réindexe à nouveau.