• /
  • EnglishEspañolFrançais日本語한국어Português
  • Se connecterDémarrer

Cette traduction automatique est fournie pour votre commodité.

En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.

Créer un problème

Tutoriel NerdGraph : afficher et gérer la charge de travail

New Relic vous permet de regrouper des entités dans des groupes appelés charge de travail. Cela permet une meilleure monitoring de la stack complète utilisée par une équipe ou un projet.

Nous vous montrons ici comment utiliser notre APINerdGraph pour effectuer certaines tâches liées à la charge de travail :

Consultez également notre article sur la façon de personnaliser les graphiques que vous voyez dans votre charge de travail.

Important

Vous pouvez également utiliser la CLI et la ressource Terraform pour automatiser ces tâches.

Obtenez la charge de travail d'un compte

Pour obtenir toute la charge de travail d'un compte, utilisez la requêteGraphQL suivante et transmettez l'ID de compte via le champ id. Dans cet exemple, nous récupérons trois champs de base :

  • guid: le workload GUID.
  • name: le nom workload .
  • permalink: les URL permanentes sur l'UI de New Relic.
{
actor {
entitySearch(query: "accountId = YOUR_ACCOUNT_ID and type = 'WORKLOAD'") {
results {
entities {
guid
name
permalink
}
}
}
}
}

La réponse inclut ce type de données pour chaque workload:

{
"data": {
"actor": {
"entitySearch": {
"results": {
"entities": [
{
"guid": "MTY...NTY",
"name": "Acme Telco - Fulfillment Chain",
"permalink": "https://one.newrelic.com/redirect/entity/MTY...NTY"
},
...
]
}
}
}
},
"extensions": { ... }
}

Obtenir la liste des entités dans une workload

Vous pouvez obtenir l'entité appartenant à une workload avec la requête suivante, simplement en passant le workload GUID (guid) comme argument. Dans cet exemple, nous récupérons également certaines métadonnées workload :

  • accountId: le compte workload .

  • name: le nom workload .

  • permalink:workload l'URL permanente sur l'UI de New Relic.

  • alertSeverity: l'état de la workload. Cette valeur peut avoir jusqu'à 10 minutes de retard ; si vous souhaitez forcer le calcul de l'état workload au moment de la requête, veuillez utiliser l'exemple Obtenir l'état d'une workload .

  • Les objets imbriqués collection, members et results , qui contiennent la liste réelle des entités :

    • L'argument name dans l'objet collection prend la valeur WORKLOAD.
    • count:Nombre d'entité dans la workload.
{
actor {
entity(guid: "YOUR_WORKLOAD_GUID") {
accountId
name
permalink
... on AlertableEntity {
alertSeverity
}
... on CollectionEntity {
collection(name: "WORKLOAD") {
members {
count
results {
entities {
accountId
entityType
name
guid
... on AlertableEntityOutline {
alertSeverity
}
}
}
}
}
}
}
}
}

La requête renvoie une liste d'entités qui ressemble à ceci :

{
"data": {
"actor": {
"entity": {
"accountId": 1606862,
"name": "Acme Telco - Ecommerce",
"permalink": "https://one.newrelic.com/redirect/entity/MTYwNjg2MnxOUjF8V09SS0xPQUR8MTIyMzQ",
"alertSeverity": "CRITICAL",
"collection": {
"members": {
"count": 201,
"results": {
"entities": [
{
"accountId": 1606862,
"alertSeverity": "CRITICAL",
"entityType": "APM_APPLICATION_ENTITY",
"guid": "MTYwNjg2MnxBUE18QVBQTElDQVRJT058NDMxOTIwNTg",
"name": "Fulfillment Service"
},
{
"accountId": 1606862,
"alertSeverity": "NOT_ALERTING",
"entityType": "INFRASTRUCTURE_HOST_ENTITY",
"guid": "MTYwNjg2MnxJTkZSQXxOQXw3MDQzMzA2NzIyMjk2NDg4Mzc",
"name": "ip-172-31-16-222"
},
{
"accountId": 1606862,
"alertSeverity": "NOT_ALERTING",
"entityType": "INFRASTRUCTURE_AWS_LAMBDA_FUNCTION_ENTITY",
"guid": "MTYwNjg2MnxJTkZSQXxOQXw1MjMyNzM2ODgzNjAwNjYyMjE1",
"name": "TelcoDT-purchase-log-lambda"
},
...
]
}
}
}
}
}
}
}

Obtenir l'état d'une workload

Si vous souhaitez forcer le calcul du statut d'une workload, vous pouvez utiliser la requête suivante, en passant l'ID de compte (id) comme argument pour le champ account et le workload GUID (guid) comme argument pour le champ collection.

{
actor {
entity(guid: "YOUR_WORKLOAD_GUID") {
... on WorkloadEntity {
guid
workloadStatus {
statusValue
}
}
}
}
}

Et voici ce que vous obtiendrez en réponse :

{
"data": {
"actor": {
"entity": {
"guid": "MTYwNjg2MnxOUjF8V09SS0xPQUR8MTIyMzQ",
"workloadStatus": {
"statusValue": "OPERATIONAL"
}
}
}
}
}

Notez que la valeur d’état DISRUPTED est synonyme de l’état CRITICAL .

Créer une workload

Voici un exemple d'appel NerdGraph qui crée une workload à l'aide de la requête de mutation workloadCreate :

mutation {
workloadCreate(
accountId: NEW_WORKLOAD_ACCOUNT_ID,
workload: {
name: "NAME_OF_WORKLOAD",
entityGuids: ["ENTITY_GUID_1", "ENTITY_GUID_2", ...],
entitySearchQueries: [
{
query: "(type = 'SERVICE') and tags.label.environment = 'production'"
},
...
],
scopeAccounts: {
accountIds: [NEW_RELIC_ACCOUNT_ID_1, NEW_RELIC_ACCOUNT_ID_2, ...]
}
}
)
{
guid
}
}

Quelques détails sur certaines parties de cette requête :

  • account: L'ID du compte de charge de travail. la charge de travail ne peut pas être déplacée entre les comptes, il n'est donc pas possible de modifier cette valeur ultérieurement.

  • name: Une chaîne avec un nom convivial pour la workload.

  • scopeAccounts: Les comptes de portée sont les comptes à partir desquels les données d’entité sont extraites. Les comptes d'étendue doivent appartenir à un groupe sous le même compte parent ou partenariat d'entreprise que le compte workload .

  • Pour définir l'entité dans la workload, vous pouvez utiliser l'une ou les deux de ces options :

    • entitySearchQueries:Cela vous permet de générer dynamiquement un éventail d'entité. Il n’est pas nécessaire de donner un nom à chaque requête. Voici un exemple de requête dynamique :

      (domain = 'INFRA' and type = 'HOST') and tags.label.environment = 'production'
    • entityGuids: Ceci permet de choisir un GUID d'entité spécifique à inclure dans la workload.

  • guid: Ceci renvoie la workload guid. Étant donné que NerdGraph fournit un schéma de couture, vous pouvez obtenir d’autres détails sur la workload, comme le permalink.

Modifier une workload

Pour modifier une workload, utilisez la mutation workloadUpdate. Vous devez connaître la workload guid.

Le compte de workload ne peut pas être modifié.

Pour les champs que vous pouvez modifier, voir Créer des charges de travail. Ces règles supplémentaires s'appliquent :

  • entitySearchQueries: Ce champ doit contenir toutes les requêtes telles que vous vous attendez à ce qu'elles soient stockées. Si vous souhaitez ajouter une nouvelle requête, incluez-la dans le champ query et ne fournissez aucune requête id. Si vous souhaitez modifier une requête existante, incluez-la dans le champ query et fournissez sa id existante. Si vous souhaitez supprimer une requête existante, n'ajoutez plus aucune requête avec ce id .

Voici un exemple de la requête workloadUpdate :

mutation {
workloadUpdate(
guid: "YOUR_WORKLOAD_GUID",
workload: {
name: "A new name for the workload",
entityGuids: ["ENTITY_GUID_1", "ENTITY_GUID_2", ...],
entitySearchQueries: [
{
query: "(domain = 'INFRA' and type = 'HOST') and tags.label.environment = 'staging'"
},
{
id: AN_EXISTING_QUERY_ID,
query: "(type = 'SERVICE') and tags.label.environment = 'staging'"
},
...
],
scopeAccounts: {
accountIds: [NEW_RELIC_ACCOUNT_ID_1, NEW_RELIC_ACCOUNT_ID_2, ...]
}
}
)
{
guid
}
}

Définir un statut statique pour une workload

Vous pouvez configurer un statut statique pour une workload, qui remplace tout calcul de statut automatique.

Pour définir un statut statique, vous devez connaître la workload guid et utiliser les champs suivants :

  • enabled:N'oubliez pas de définir ce champ sur true pour propager la valeur d'état.
  • status: La valeur d’état que vous souhaitez définir pour cette workload. Les valeurs prises en charge sont OPERATIONAL, DEGRADED ou DISRUPTED.
  • description:Un champ de texte pour fournir des détails supplémentaires.
mutation {
workloadUpdate(
guid: "YOUR_WORKLOAD_GUID"
workload: {
statusConfig: {
static: {
enabled: true
status: DEGRADED
description: "Game day. Expect some turbulence today between 8 and 9am PST."
}
}
}
) {
guid
updatedAt
status {
value
}
}
}

Modifier les règles d'état automatiques pour une workload

Lorsque vous créez une workload, vous pouvez utiliser l'objet statusConfig pour définir les règles automatiques que vous souhaitez utiliser pour calculer l'état de la workload. Si vous laissez l'éventail rules vide, aucune règle ne sera définie pour votre workload.

Cependant, si vous n'utilisez pas l'objet statusConfig lorsque vous créez une workload, les règles suivantes seront ajoutées par défaut :

{
"statusConfig": {
"automatic": {
"enabled": true,
"rules": [
{
"entitySearchQueries": [
{ "query": "(domain = 'APM' and type = 'APPLICATION')" }
],
"rollup": {
"strategy": "WORST_STATUS_WINS",
"thresholdType": null,
"thresholdValue": null
}
},
{
"entitySearchQueries": [
{ "query": "(domain = 'MOBILE' and type = 'APPLICATION')" }
],
"rollup": {
"strategy": "WORST_STATUS_WINS",
"thresholdType": null,
"thresholdValue": null
}
},
{
"entitySearchQueries": [
{ "query": "(domain = 'BROWSER' and type = 'APPLICATION')" }
],
"rollup": {
"strategy": "WORST_STATUS_WINS",
"thresholdType": null,
"thresholdValue": null
}
},
{
"entitySearchQueries": [
{ "query": "(domain = 'SYNTH' and type = 'MONITOR')" }
],
"rollup": {
"strategy": "WORST_STATUS_WINS",
"thresholdType": null,
"thresholdValue": null
}
}
],
"remainingEntitiesRule": {
"rollup": {
"groupBy": "ENTITY_TYPE",
"strategy": "BEST_STATUS_WINS",
"thresholdType": null,
"thresholdValue": null
}
}
}
}
}

Voici comment lire la configuration :

  • enabled: Le calcul automatique du statut est activé lorsque ce champ est défini sur true.
  • rules:Un éventail de règles. Dans la configuration par défaut, quatre règles sont définies pour les types d'entités les plus proches de l'expérience numérique (c'est-à-dire le moniteur synthétique, l'application navigateur, l'application mobile et les services). Pour chacun de ces groupes, le statut du plus malsain apparaît.
  • remainingEntitiesRule:C'est la règle qui s'appliquera à toutes les entités qui n'ont pas été évaluées dans une autre règle. Dans la configuration par défaut, les entités restantes sont regroupées par type d'entité, et nous faisons en sorte que le statut de chaque groupe corresponde à celui de son entité la plus saine.

Si vous souhaitez modifier ces règles, vous devez utiliser la mutation workloadUpdate et envoyer le nouvel objet statusConfig complet que vous souhaitez utiliser.

Vous pouvez désactiver le calcul automatique du statut tout en conservant la configuration, en définissant statucConfig.automatic.enabled sur false.

Alternativement, vous pouvez supprimer toutes les règles régulières automatiques en envoyant un éventail vide. Et vous pouvez supprimer la règle pour l’entité restante en n’ajoutant simplement pas l’objet remainingEntitiesRule .

Dupliquer une workload

Pour dupliquer une workload vous devez d’abord connaître son guid. Dans la mutation workloadDuplicate , vous devez passer comme paramètre :

  • accountId: Le compte sur lequel vous souhaitez créer la nouvelle workload.
  • sourceGuid: le guid de la workload que vous souhaitez dupliquer.
  • workload.name: Facultatif. Vous pouvez spécifier un nom pour la nouvelle workload. Si vous n'en spécifiez pas, la nouvelle workload recevra le nom de la workload d'origine suivi de - Copy.

Après avoir dupliqué une workload, vous pouvez la modifier.

mutation {
workloadDuplicate(
accountId: NEW_WORKLOAD_ACCOUNT_ID
sourceGuid: "ORIGINAL_WORKLOAD_GUID"
workload: { name: "New workload" }
) {
guid
}
}

Supprimer une workload

Pour supprimer une workload, utilisez la workloadDelete mutation et spécifiez le workload GUID.

Lorsque vous supprimez une workload, tout l'historique et les métadonnées sont également supprimés.

Droits d'auteur © 2025 New Relic Inc.

This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.