Golden metrics et golden tags sont des éléments d’information sur une entité que nous considérons comme les plus importants pour cette entité. Nous utilisons ces informations pour afficher un bref aperçu d'une entité dans tout New Relic. Vous pouvez voir et contribuer aux définitions standards des métriques dorées et des tags dans ce référentiel public.
Ce document explique comment requêter les métriques personnalisées d'une entité à l'aide de NerdGraph.
Conseil
Pour en savoir plus sur la façon d'interroger une entité à l'aide de l'API NerdGraph , consultez notre tutoriel .
Récupérer les métriques dorées
Lors de la récupération des métriques dorées pour un GUID spécifique ou une liste de GUID, les requêtes fournies sont déjà filtrées pour vous. Vous pouvez exécuter la requête résultante telle quelle dans le générateur de requêtes. La métrique résultante peut être soit une valeur TIMESERIES
, soit une valeur unique.
Voici un exemple de requête de métriques dorées pour une entité de table AWS DynamoDB avec le GUID ENTITY_GUID
.
SELECT average(provider.getSuccessfulRequestLatency.Average)FROM DatastoreSampleWHERE entityGuid IN ('ENTITY_GUID') AND provider='DynamoDbTable'TIMESERIES
Vous pouvez utiliser NerdGraph pour requêter les métriques dorées d'une entité spécifique ; Par exemple:
{ actor { entity(guid: "ENTITY_GUID") { goldenMetrics { metrics { query title } } } }}
Récupérer l'étiquette dorée
Les balises dorées sont toujours représentées de la même manière, qu'elles soient demandées par guid
ou par entityType
. Vous recevrez toujours la liste des clés tag considérées comme les plus importantes concernant l'entité.
{ actor { entity(guid: "ENTITY_GUID") { goldenTags { tags { key } } } }}
Personnaliser les métriques dorées et l'étiquette dorée
Si vous souhaitez modifier les métriques dorées et le golden tag en fonction des spécificités de votre environnement, vous pouvez les surcharger dans deux contextes différents, dans votre compte, ou dans une workload.
Remplacer les métriques dorées ou la balise dorée pour un type d'entité spécifique dans l'ensemble de votre compte
Dans ce cas, les nouvelles métriques dorées ou la nouvelle balise dorée seront appliquées dans tout New Relic, convertissant vos nouvelles métriques et balise comme valeur par défaut pour le type d'entité spécifié.
Pour ce faire, vous pouvez utiliser une mutation NerdGraph pour remplacer les métriques dorées d'une entité spécifique.
mutation { entityGoldenMetricsOverride( context: { account: ACCOUNT_TO_OVERRIDE_GOLDEN_METRICS } domainType: { domain: DOMAIN, type: TYPE } metrics: [ { eventId: EVENT_ID select: NRDB_QUERY_SELECT from: NRDB_QUERY_EVENT where: NRDB_QUERY_WHERE title: TITLE_OF_THE_METRIC facet: FACET name: NAME_OF_THE_METRIC } ] ) { errors { message type } metrics { context { account guid } domainType { domain type } metrics { definition { eventId facet from select where } name query title } } }}
Où:
domainType
: Le type d’entité des métriques à remplacer.context
: Le contexte à partir duquel récupérer les métriques dorées. Dans ce cas, vous devez définir le compte que vous souhaitez remplacer.metrics
: La nouvelle requête NRDB sera affichée en métriques dorées.eventId
: Le champ utilisé pour filtrer l'entité dans la métrique. Comment le GUID de l'entité est défini dans votre événement.select
:La clauseSELECT
de la requête NRDB. Ce champ est required.from
:La clauseFROM
de la requête NRDB.where
:ClauseWHERE
complémentaire pour identifier le champ de type d'entité.facet
: Le champ àFACET
.title
: Le titre des métriques dorées. Ce champ est facultatif.name
: Le nom des métriques dorées. Ce champ est required.
L'objet d'entrée de métriques définit les parties d'une requête NRDB, divisées en sections. L'une de ces sections est le eventId,
qui est utilisé pour identifier le champ qui définit le GUID à l'intérieur de l'événement NRDB que vous souhaitez utiliser comme métriques dorées. Par exemple:
SELECT average(provider.getSuccessfulRequestLatency.Average)FROM DatastoreSampleWHERE entityGuid IN ('EntityGuid') AND provider='DynamoDbTable'FACET entityName TIMESERIES
Il est défini comme suit :
{ eventId: "entityGuid", from: "DatastoreSample", where: "provider='DynamoDbTable'", facet: "entityName", select: "average(provider.getSuccessfulRequestLatency.Average)", name: GetItem latency (ms), title: GetItem latency (ms)}
Comme vous pouvez le voir dans l’objet résultant, la clause where
contient uniquement le champ fournisseur . Le système ajoute la clause where avec le champ eventId
par défaut.
Vous pouvez faire la même chose pour la balise dorée en utilisant cette mutation NerdGraph :
mutation { entityGoldenTagsOverride( context: { account: ACCOUNT_ID } domainType: { domain: "APM", type: "APPLICATION" } tags: [{ key: "applicationName" }, { key: "environment" }] ) { errors { message type } tags { context { account } domainType { domain type } tags { key } } }}
Remplacer les métriques dorées d'un type d'entité particulier dans une workload
La charge de travail de New Relic fournit une vue agrégée des données de santé et de performances d'un groupe d'entités. Les graphiques de séries chronologiques affichés pour chaque type d’entité dans une workload sont définis par les métriques dorées du compte workload .
Si vous souhaitez personnaliser davantage les séries chronologiques à afficher pour un type d'entité spécifique dans une workload particulière, remplacez les métriques dorées du compte par la mutation suivante :
mutation { entityGoldenMetricsOverride( context: { guid: WORKLOAD_TO_OVERRIDE_GOLDEN METRICS } domainType: { domain: DOMAIN, type: TYPE } metrics: [ { eventId: EVENT_ID select: NRDB_QUERY_SELECT from: NRDB_QUERY_EVENT where: NRDB_QUERY_WHERE title: TITLE_OF_THE_METRIC facet: FACET name: NAME_OF_THE_METRIC } ] ) { errors { message type } metrics { context { account guid } domainType { domain type } metrics { definition { eventId facet from select where } name query title } } }}
Voir ci-dessus pour plus de détails sur chaque domaine. Dans ce cas, context
est le workload de GUID.
Récupérer les métriques dorées personnalisées et l'étiquette dorée
La requête définie dans les sections précédentes renvoie toujours les métriques dorées et le golden tag par défaut. Si vous souhaitez récupérer vos métriques dorées personnalisées ou votre balise dorée, vous devez envoyer le contexte défini dans la requête, par exemple :
{ actor { entity(guid: INFRA_AWSDYNAMODBTABLE_GUID) { goldenMetrics( context: { account: ACCOUNT_ID, guid: WORKLOAD_ENTITY_GUID } ) { metrics { title query name } } } }}
Pour l'étiquette dorée :
{ actor { entity(guid: INFRA_AWSDYNAMODBTABLE_GUID) { goldenTags(context: { account: ACCOUNT_ID, guid: WORKLOAD_ENTITY_GUID }) { tags { key } } } }}
Vous pouvez envoyer les deux contextes simultanément pour l'interrogation, si vos métriques ou votre balise ont le contexte à l'intérieur de la workload. L'API renvoie les métriques dorées ou les balises dorées les plus spécifiques en fonction du contexte que vous avez défini dans les requests. La priorité est workload et le compte.
Réinitialisation des métriques personnalisées et étiquette dorée
Si vos métriques dorées personnalisées ne vous conviennent plus, vous pouvez restaurer les valeurs par défaut définies par New Relic. Dans le paramètre de contexte, définissez le GUID de compte ou workload souhaité (dans le paramètre GUID).
Pour restaurer vos métriques dorées dans un compte, exécutez cette requête :
mutation { entityGoldenMetricsReset( context: { guid: ACCOUNT_TO_OVERRIDE_GOLDEN_METRICS } domainType: { domain: DOMAIN, type: TYPE } ) { errors { message type } metrics { context { account guid } domainType { domain type } metrics { definition { eventId facet from select where } name query title } } }}
Où:
domainType
: Le type d’entité des métriques à remplacer.context
: Le contexte à partir duquel récupérer les métriques dorées. Dans ce cas, vous devez définir le compte que vous souhaitez réinitialiser.
Pour restaurer vos métriques dorées dans une workload, exécutez cette requête :
mutation { entityGoldenMetricsReset( context: { guid: GUID_TO_OVERRIDE_GOLDEN_METRICS } domainType: { domain: DOMAIN, type: TYPE } ) { errors { message type } metrics { context { account guid } domainType { domain type } metrics { definition { eventId facet from select where } name query title } } }}
Vous pouvez faire la même chose pour votre étiquette dorée personnalisée :
mutation { entityGoldenTagsReset( context: { guid: WORKLOAD_ENTITY_GUID } domainType: { domain: "APM", type: "APPLICATION" } ) { errors { message type } tags { context { account guid } domainType { domain type } tags { key } } }}
erreur attendue
Toutes ces mutations peuvent répondre au résultat de l'opération ou à une liste d'erreurs.
Voici toutes les erreurs attendues que vous pouvez recevoir :
INVALID_CONTEXT
:Le contexte n'est pas valide. Il ne peut y avoir qu'un seul contexte, un compte ou un de workload GUID. Si vous utilisez les deux, ou utilisez un autre concept, ou un GUID qui n'appartient pas à une workload, vous obtiendrez cette erreur.INVALID_DOMAIN_TYPE
: Le type de domaine n'est pas valide.LIMIT_EXCEEDED
:Le nombre maximum de métriques est de 9. Si vous dépassez cette limite, vous obtiendrez cette erreur.NOT_AUTHORIZED
: L'utilisateur n'a pas les autorisations pour effectuer cette action.