Este documento proporciona ejemplos de cómo utilizar New Relic NerdGraph para consultar y modificar sus datos de configuración de integración en la nube, incluidos Amazon Web Services (AWS), Microsoft Azure y Google Cloud Platform (GCP). Utilizando el explorador NerdGraph GraphiQL, también puedes consultar datos NRQL.
Estos ejemplos para consultar datos de configuración de integración en la nube utilizan mutaciones y consultas GraphQL:
- consulta: solicitudes destinadas a obtener únicamente datos
- Mutaciones: solicitudes que crean o actualizan datos en el servidor.
Requisitos
Antes de consultar datos de integración en la nube con NerdGraph, asegúrese de tener:
- Seguí las instrucciones para conectar la integración en la nube con New Relic.
- Creó una clave de API.
Accede al explorador NerdGraph GraphiQL
Para acceder al explorador NerdGraph GraphiQL:
- Vaya a api.newrelic.com/graphiql.
- Agregue cualquiera de los siguientes ejemplos.
Ejemplos de consulta
Consulta son solicitudes que están destinadas únicamente a obtener datos (sin efectos secundarios). Las consultas en NerdGraph no son estáticas, lo que significa que puedes pedir más o menos datos dependiendo de tus necesidades. Para cada consulta, puede especificar exactamente qué datos desea recuperar, siempre que sean compatibles con el esquema.
Esta consulta devuelve una lista de todas las cuentas de proveedores disponibles en sus datos de infraestructura. Dependiendo del proveedor se pueden solicitar propiedades adicionales. Por ejemplo, para GCP, también puedes solicitar la propiedad serviceAccountId
, que es necesaria al vincular un nuevo proyecto de GCP a New Relic.
Anonymous:
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { providers { id name slug ... on CloudGcpProvider { serviceAccountId } } } } }}
Named:
query cloudProviders { actor { account(id: <NR_ACCOUNT_ID>) { cloud { providers { id name slug } } } }}
Esta consulta devuelve información sobre una cuenta de proveedor específica para su integración de AWS. Se solicitan las propiedades id
, name
, slug
, junto con una lista de integraciones disponibles para monitorear.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { provider(slug: "aws") { id slug name services { id slug name } } } } }}
Esta consulta devuelve información sobre la integración de servicios en la nube específica de un proveedor. En este ejemplo, la integración es la integración de monitoreo de AWS ALB y el proveedor es AWS. Las propiedades id
, name
, slug
y isAllowed
se solicitan con el parámetro de configuración disponible.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { provider(slug: "aws") { service(slug: "alb") { id name slug isEnabled } } } } }}
Esta consulta devuelve la lista de cuentas en la nube habilitadas con su cuenta New Relic. (Su cuenta en la nube asocia su cuenta New Relic y una cuenta de proveedor específica con su integración). Puede habilitar varias cuentas de proveedores de nube en la misma cuenta de New Relic, incluso con el mismo proveedor de nube.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { linkedAccounts { id name createdAt provider { id name } } } } }}
Esta consulta devuelve información sobre una cuenta vinculada, incluidas las propiedades name
, providerId
y una lista de la integración en la nube habilitada para monitoreo.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { linkedAccount(id: <LINKED_CLOUD_ACCOUNT_ID>) { name provider { id name } integrations { id name createdAt updatedAt } } } } }}
Esta consulta devuelve toda la integración de monitores para todas las cuentas de la nube del proveedor.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { linkedAccounts { name provider { id name } integrations { id name service { id name } createdAt updatedAt } } } } }}
Esta consulta devuelve información sobre una integración específica de una cuenta vinculada específica.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { linkedAccount(id: <LINKED_CLOUD_ACCOUNT_ID>) { name provider { id name } integration(id: <INTEGRATION_ID>) { id name service { id name } createdAt updatedAt } } } } }}
Ejemplos de mutaciones
Las mutaciones son solicitudes que pretenden tener efectos secundarios, como crear o actualizar datos en el servidor. Las mutaciones requieren la palabra clave mutation
y el nombre de la mutación. Las mutaciones de NerdGraph están restringidas a un subconjunto de todas las mutaciones posibles.
Esta mutación permite vincular cuentas de proveedores de la nube a una cuenta de New Relic, creando una o más cuentas vinculadas. Puede vincular una cuenta de proveedor de nube específica (por ejemplo, aws
) a la cuenta de New Relic o varias cuentas de proveedor de nube a una cuenta de New Relic.
Required:
El parámetro
<PROVIDER_ACCOUNT_NAME>
es obligatorio y no puede estar vacío. Debe ser único en su cuenta New Relic.Otros parámetros son específicos del proveedor (AWS, GCP y Azure) y también son obligatorios. En las siguientes secciones podrá ver qué parámetros son necesarios para cada cuenta de proveedor. Después de vincular una cuenta, los valores
createdAt
yupdatedAt
son iguales.mutation {cloudLinkAccount(accounts: {accountId: <NR_ACCOUNT_ID>,aws: [{name: <PROVIDER_ACCOUNT_NAME>,<other_params>}]azure: [{name: <PROVIDER_ACCOUNT_NAME>,<other_params>}]gcp: [{name: <PROVIDER_ACCOUNT_NAME>,<other_params>}]}) {linkedAccounts {idnameauthLabelcreatedAtupdatedAt}}}}
Esta mutación vincula una cuenta de proveedor de AWS a su cuenta de New Relic.
mutation { cloudLinkAccount( accountId: <NR_ACCOUNT_ID>, accounts: { aws: [{ name: <PROVIDER_ACCOUNT_NAME>, arn: <AWS_ROLE_ARN> }] } ) { linkedAccounts { id name authLabel createdAt updatedAt } } }}
Esta mutación vincula una cuenta de AWS que envía datos a través de CloudWatch Metric Streams a su cuenta New Relic.
mutation { cloudLinkAccount( accountId: <NR_ACCOUNT_ID>, accounts: { aws: [{ name: <PROVIDER_ACCOUNT_NAME>, arn: <AWS_ROLE_ARN>, metricCollectionMode: PUSH }] } ) { linkedAccounts { id name authLabel createdAt updatedAt } } }}
Esta mutación vincula una suscripción a la nube de Microsoft Azure con la cuenta New Relic.
mutation { cloudLinkAccount( accountId: <NR_ACCOUNT_ID>, accounts: { azure: [{ name: <PROVIDER_ACCOUNT_NAME>, applicationId: <azure_application_id>, clientSecret: <azure_application_key>, tenantId: <azure_tenant_id>, subscriptionId: <azure_subscription_id> }] } ) { linkedAccounts { id name authLabel createdAt updatedAt } }}
Esta mutación vincula un proyecto de GCP a la cuenta de New Relic.
mutation { cloudLinkAccount( accountId: <NR_ACCOUNT_ID>, accounts: { gcp: [{ name: <PROVIDER_ACCOUNT_NAME>, projectId: <GCP_PROJECT_ID> }] } ) { linkedAccounts { id name authLabel createdAt updatedAt } }}
Esta mutación le permite cambiar el nombre de una o más cuentas de proveedores vinculadas. El parámetro name
es obligatorio, no puede estar vacío y debe ser único dentro de su cuenta de New Relic.
mutation { cloudRenameAccount( accountId: <NR_ACCOUNT_ID>, accounts: [ { id: <linked_cloud_account_id_1>, name: <new_provider_account_name> }, { id: <linked_cloud_account_id_2>, name: <new_provider_account_name> } ] ) { linkedAccounts { id name } }}
Esta mutación le permite habilitar el monitoreo de una o más integraciones específicas en la nube en una cuenta de nube existente. Con esta mutación, New Relic registra datos para la integración habilitada desde la cuenta del proveedor. Para cada cuenta de proveedor tiene acceso a diferentes parámetros de entrada, que coinciden con cada servicio disponible.
mutation { cloudConfigureIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { <provider_slug> : { <integration_slug>: [{ linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID>, <other_parameters> }] } } ) { integrations { id name integration { id slug } ... on SqsIntegration { awsRegions } } }}
Si tiene muchas cuentas de proveedores vinculadas, puede habilitar la misma integración en muchas cuentas de la nube al mismo tiempo.
Para el resultado de la operación, puede utilizar fragmentos GraphQL para integrar parámetros de configuración específicos.
mutation { cloudConfigureIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { <provider_slug> : { <integration_slug> : [ { linkedAccountId: <linked_cloud_account_id_1> }, { linkedAccountId: <linked_cloud_account_id_2> } ] } } ) { integrations { id name integration { id name } ... on SqsIntegration { awsRegions } } }}
Si tiene varias cuentas en la nube vinculadas, también puede habilitar la integración múltiple en varias cuentas en la nube vinculadas al mismo tiempo.
Para el resultado de la operación, puede utilizar fragmentos de GraphQL para solicitar el parámetro de configuración específico de la integración.
mutation { cloudConfigureIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { <provider_slug_1>: { <integration_slug_1>: [ { linkedAccountId: <linked_cloud_account_id_1> } ] <integration_slug_2>: [ { linkedAccountId: <linked_cloud_account_id_2> } ] }, <provider_slug_2>: { <integration_slug_3>: [ { linkedAccountId: <linked_cloud_account_id_3>}, { linkedAccountId: <linked_cloud_account_id_4>} ] } } ) { integrations { id name service { id name } ... on SqsIntegration { awsRegions } } }}
Esta mutación también permite modificar una o más integraciones en la nube y cambiar uno o más parámetros de configuración. Cada servicio tendrá un parámetro específico que podrás modificar.
Para el parámetro de una lista de tipo (por ejemplo, awsRegion
), proporcione la lista completa. Para el resultado de la operación, puede utilizar fragmentos de GraphQL para solicitar el parámetro de configuración específico de la integración.
mutation { cloudConfigureIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { <provider_slug>: { <integration_slug>: [{ linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID>, metricsPollingInterval: <new_polling_interval>, <parameter_1>: <value_1>, <parameter_N>: <value_N>, }] } } ) { integrations { id name service { id slug } ... on SqsIntegration { metricsPollingInterval, <parameter_1>, <parameter_N> } } errors { type message } }}
Esta mutación le permite deshabilitar una integración y detener la recopilación de datos para la integración específica en la nube.
mutation { cloudDisableIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { : { : [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } ] } } ) { disabledIntegrations { id name authLabel provider { id } } errors { type message } }}
Esta mutación le permite desvincular cuentas de proveedores de nube de la cuenta de New Relic.
Advertencia
Esta acción no se puede deshacer. Sin embargo, puedes volver a vincular la cuenta, pero el historial de la cuenta aún se perderá.
mutation { cloudUnlinkAccount ( accountId: <NR_ACCOUNT_ID>, accounts: { { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } } ) { unlinkedAccounts { id name } errors { type message } }}
Habilitar una integración de AWS
Este ejemplo utiliza una integración de AWS SQS y supone que ha conectado una cuenta de AWS a New Relic.
Para habilitar una integración de AWS:
Envíe una consulta para obtener datos sobre la cuenta, específicamente los proveedores disponibles y las cuentas de proveedores ya creadas:
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { providers { id name slug } linkedAccounts { name integrations { id name } } } } }}
Vincule una cuenta de proveedor de AWS, si aún no hay ninguna vinculada o si desea vincular otra cuenta de AWS:
Utilice su identificador de cuenta New Relic en el parámetro
<NR_ACCOUNT_ID>
.Proporcione un nombre para la cuenta del proveedor en
<PROVIDER_ACCOUNT_NAME>
.Incluya el ARN del rol de AWS utilizado para recuperar datos de su cuenta de AWS.
mutation {cloudLinkAccount(accountId: <NR_ACCOUNT_ID>,accounts: {aws: [{name: <PROVIDER_ACCOUNT_NAME>,arn: <AWS_ROLE_ARN> }]}) {linkedAccounts {idnameauthLabelcreatedAtupdatedAt}errors {typemessage}}}
Utilice su ID de cuenta New Relic en el parámetro <NR_ACCOUNT_ID>
y el ID de la cuenta del proveedor en el valor del parámetro <LINKED_CLOUD_ACCOUNT_ID>
.
mutation { cloudConfigureIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { aws: { sqs: [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } ] } } ) { integrations { id name service { id name } } errors { type message } }}
Si tiene varias cuentas con la misma cuenta de proveedor, puede habilitar la misma integración en varias cuentas de proveedor al mismo tiempo. Utilice su ID de cuenta New Relic en el parámetro <NR_ACCOUNT_ID>
y el ID de las cuentas del proveedor en el valor del parámetro <LINKED_CLOUD_ACCOUNT_ID_n>
.
mutation { cloudConfigureIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { aws: { sqs: [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID_1> }, { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID_2>, configuration_param_1: value_1, configuration_param_2: value_2 } ] } } }) { integrations { id name service { id name } } errors { type message } }}
Cambiar el intervalo de sondeo para la integración de AWS
Este ejemplo utiliza una integración de AWS SQS y supone que ha conectado una cuenta de AWS a New Relic. Para cambiar el intervalo de sondeo de una integración de AWS:
Para actualizar el intervalo de sondeo para una integración de AWS SQS, utilice el ID de su cuenta New Relic en el parámetro <NR_ACCOUNT_ID>
y el id
de la cuenta del proveedor vinculado en el valor del parámetro <LINKED_ACCOUNT_ID>
:
mutation { cloudConfigureIntegration( accountId: <NR_ACCOUNT_ID>, integrations: { aws : { sqs: [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID>, metricsPollingInterval: 300 } ] } } ) { integrations { id name service { id slug } ... on SqsIntegration { metricsPollingInterval } } errors { type message } }}
Deshabilitar la integración de AWS
Este ejemplo utiliza una integración de AWS SQS y supone que ha conectado una cuenta de AWS a New Relic. Para deshabilitar una integración de AWS:
Utilice el identificador de su cuenta New Relic en el parámetro <NR_ACCOUNT_ID>
y el ID de la cuenta de nube vinculada en el valor del parámetro <LINKED_ACCOUNT_ID>
.
mutation { cloudDisableIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { aws: { sqs: [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } ] } } ) { disabledIntegrations { id accountId name } errors { type message } }}