New Relic le permite usar mutaciones GraphQL de NerdGraph Scorecards para gestionar Scorecards y reglas. Estas mutaciones le permiten crear, actualizar, eliminar y recuperar cuadros de mando y sus reglas asociadas en su flujo de trabajo e integración existente.
Este tutorial proporciona ejemplos de cómo emplear NerdGraph para gestionar cuadros de mando y reglas. Puede emplear estos ejemplos para automatizar las tareas de gestión del cuadro de mando, como crear cuadros de mando, agregar reglas y actualizar los detalles del cuadro de mando.
Mutaciones
New Relic proporciona varias mutaciones de NerdGraph para crear y gestionar cuadros de mando y reglas relacionadas.
Para gestionar cuadros de mando y reglas, debe proporcionar el ID de su organización. Puede recuperar el ID de su organización mediante la consulta actor .
Solicitud de muestra
query FetchYourOrgId { actor { organization { id } }}Puedes crear tu propio cuadro de mando empleando la mutación entityManagementCreateScorecard .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El nombre del Cuadro de Mando. |
| Cadena | No | Una breve descripción del Cuadro de Mando. |
| Cadena | Sí | ID de su organización. |
Solicitud de muestra
mutation CreateScorecard($name: String!, $desc: String, $organizationId: ID!) { entityManagementCreateScorecard( scorecardEntity: {description: $desc, name: $name, scope: {type: ORGANIZATION, id: $organizationId}} ) { entity { id rules { id } } } } // PARAMETERS { "description": "Test test Best Practices", "name": "Test Engineering Best Practices", "organizationId": "xxxxxxxx-yyyy-0000-aaaa-0123456789qwe" }Puede crear una nueva regla para un cuadro de mando empleando la mutación entityManagementCreateScorecardRule .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El nombre de la regla. |
| Cadena | No | Una breve descripción de la regla. |
| Cadena | Sí | Una consulta NRQL para evaluar el cumplimiento. |
| En t | Sí | Lista de ID de cuentas donde la regla debe ejecutar la consulta. |
| En t | No | Lista de ID de cuentas que deben unir con cada cuenta donde se ejecuta la consulta. |
| Cadena (ID) | Sí | El ID de su organización, consulte Obtener el ID de su organización más arriba para saber cómo obtenerlo |
Solicitud de muestra
mutation CreateRule($name: String!, $description: String, $query: String!, $accounts: [Int!]!, $joinAccounts: [Int!], $organizationId: ID!) { entityManagementCreateScorecardRule( scorecardRuleEntity: { name: $name, description: $description enabled: true, nrqlEngine: { accounts: $accounts, joinAccounts: $joinAccounts, query: $query }, scope: {id: $organizationId, type: ORGANIZATION}} ) { entity { id // RULE Id } } } // PARAMETERS { "name": "APM Services Have Alerts Defined", "description": "Check that APM services have alerts associated with them", "accounts": [1, 2, 3], "query": "SELECT if(latest(alertSeverity) != 'NOT_CONFIGURED', 1, 0) as 'score' FROM Entity WHERE type = 'APM-APPLICATION' AND tags.nr.team IS NOT NULL AND tags.environment IS NOT NULL FACET id as 'entityGuid', tags.nr.team as 'team', tags.environment as 'environment' LIMIT MAX SINCE 1 day ago", "organizationId": "xxxxxxxx-yyyy-0000-aaaa-0123456789qwe" }Puede asociar una regla con un cuadro de mando empleando la mutación entityManagementAddCollectionMembers .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | ID del Scorecard para agregar las reglas. |
| Cadena | Sí | Lista de identificaciones de reglas que se agregarán al cuadro de mando. |
Solicitud de muestra
mutation AddRuleToCollection($collectionId: ID!, $rules: [ID!]!) { entityManagementAddCollectionMembers( collectionId: $collectionId ids: $rules ) } // PARAMETERS { "collectionId": "", // Collection ID is from the rule.id from scorecard entity "rules": [] // Provide list of all rule ids which are generated during rule creation. }Puede actualizar los detalles de un cuadro de mando existente empleando la mutación entityManagementUpdateScorecard .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El identificador único del cuadro de mando. |
| Cadena | No | Descripción actualizada del Cuadro de Mando. |
| Cadena | Sí | Nombre actualizado del Cuadro de Mando. |
Solicitud de muestra
mutation UpdateScorecard($id: ID!, $description: String, $name: String!) { entityManagementUpdateScorecard( id: $id scorecardEntity: { description: $description, name: $name } ) { entity { name id rules { id } } }}Puede actualizar una regla para el Cuadro de mando empleando la mutación entityManagementUpdateScorecardRule .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| IDENTIFICACIÓN | Sí | El identificador único de la regla. |
| Cadena | Sí | El nombre de la regla. |
| Cadena | No | Una breve descripción de la regla. |
| Cadena | Sí | Una consulta NRQL para evaluar el cumplimiento. |
| En t | Sí | Lista de ID de cuentas donde la regla debe ejecutar la consulta. |
| En t | No | Lista de ID de cuentas que deben unir con cada cuenta donde se ejecuta la consulta. |
| Booleano | No | Habilitar o deshabilitar la regla. |
Solicitud de muestra
mutation UpdateRule( $ruleId: ID! $name: String! $description: String $query: String! $queryAccounts: [Int!]! $joinAccounts: [Int!] $enabled: Boolean) { entityManagementUpdateScorecardRule( id: $ruleId scorecardRuleEntity: { description: $description name: $name enabled: $enabled nrqlEngine: { accounts: $queryAccounts joinAccounts: $joinAccounts query: $query } } ) { entity { id name description nrqlEngine { accounts joinAccounts query } } }}Puede eliminar un cuadro de mando o una regla existente empleando la mutación entityManagementDelete .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| IDENTIFICACIÓN | Sí | El cuadro de mando objetivo o el ID de la regla que se va a eliminar. |
Solicitud de muestra
mutation DeleteEntity($id: ID!) { entityManagementDelete(id: $id) { id }}Consulta de NerdGraph para cuadros de mando
Puede recuperar todas las reglas asociadas con un cuadro de mando específico empleando la consulta FetchScorecardDetails .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | ID del cuadro de mando para obtener las reglas. |
Solicitud de muestra
query FetchScorecardDetails($scorecardId: ID!) { actor { entityManagement { entity(id: $scorecardId) { ... on EntityManagementScorecardEntity { name description rules { id } } } } }}FetchRulesCollection consulta
Puede recuperar los detalles de la recopilación empleando la consulta FetchRulesCollection , que requiere el ID de reglas obtenido de la respuesta FetchScorecardDetails .
parámetro de entrada
Parámetro | Tipo de datos | ¿Es obligatorio? | Descripción |
|---|---|---|---|
| Cadena | Sí | El ID obtenido de la respuesta . |
Solicitud de muestra
query FetchRulesCollection($rulesId: ID!) { actor { entityManagement { collectionElements(filter: { collectionId: { eq: $rulesId } }) { items { ... on EntityManagementScorecardRuleEntity { id name nrqlEngine { accounts joinAccounts query } } } nextCursor } } }}