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: YOUR_ACCOUNT_ID) { cloud { providers { id name slug ... on CloudGcpProvider { serviceAccountId } } } } }}
Named:
query cloudProviders { actor { account(id: YOUR_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: YOUR_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: YOUR_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: YOUR_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: YOUR_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: YOUR_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: YOUR_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: YOUR_ACCOUNT_ID,aws: [{name: PROVIDER_ACCOUNT_NAME,# other parameters}]azure: [{name: PROVIDER_ACCOUNT_NAME,# other parameters}]gcp: [{name: PROVIDER_ACCOUNT_NAME,# other parameters}]}) {linkedAccounts {idnameauthLabelcreatedAtupdatedAt}}}}
Esta mutación vincula una cuenta de proveedor de AWS a su cuenta de New Relic.
mutation { cloudLinkAccount( accountId: YOUR_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: YOUR_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: YOUR_ACCOUNT_ID accounts: { azure: [ { name: PROVIDER_ACCOUNT_NAME applicationId: AZURE_APP_ID clientSecret: AZURE_APP_KEY tenantId: AZURE_TENANT_ID subscriptionId: AZURE_SUBSCRIPTION_ID } ] } ) { linkedAccounts { id name authLabel createdAt updatedAt } }}
Esta mutación rota el secreto del cliente en una cuenta de Microsoft Azure existente.
mutation { cloudUpdateAccount( accountId: YOUR_ACCOUNT_ID accounts: { azure: { linkedAccountId: NR_LINKED_ACCOUNT_ID clientSecret: AZURE_SECRET_TOKEN } } ) { linkedAccounts { id name authLabel createdAt updatedAt } }}
Esta mutación vincula un proyecto de GCP a la cuenta de New Relic.
mutation { cloudLinkAccount( accountId: YOUR_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: YOUR_ACCOUNT_ID accounts: [ { id: LINKED_CLOUD_ACCOUNT_ID_1, name: PROVIDER_ACCOUNT_NAME } { id: LINKED_CLOUD_ACCOUNT_ID_2, name: 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: YOUR_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: YOUR_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: YOUR_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: YOUR_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: YOUR_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: YOUR_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: YOUR_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
YOUR_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: YOUR_ACCOUNT_IDaccounts: { aws: [{ name: PROVIDER_ACCOUNT_NAME, arn: AWS_ROLE_ARN }] }) {linkedAccounts {idnameauthLabelcreatedAtupdatedAt}errors {typemessage}}}
Utilice su ID de cuenta New Relic en el parƔmetro YOUR_ACCOUNT_ID
y el ID de la cuenta del proveedor en el valor del parƔmetro LINKED_CLOUD_ACCOUNT_ID
.
mutation { cloudConfigureIntegration( accountId: YOUR_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 YOUR_ACCOUNT_ID
y el ID de las cuentas del proveedor en el valor del parƔmetro LINKED_CLOUD_ACCOUNT_ID_N
.
mutation { cloudConfigureIntegration ( accountId: YOUR_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 YOUR_ACCOUNT_ID
y el id
de la cuenta del proveedor vinculado en el valor del parƔmetro LINKED_ACCOUNT_ID
:
mutation { cloudConfigureIntegration( accountId: YOUR_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 YOUR_ACCOUNT_ID
y el ID de la cuenta de nube vinculada en el valor del parƔmetro LINKED_ACCOUNT_ID
.
mutation { cloudDisableIntegration( accountId: YOUR_ACCOUNT_ID integrations: { aws: { sqs: [{ linkedAccountId: LINKED_CLOUD_ACCOUNT_ID }] } } ) { disabledIntegrations { id accountId name } errors { type message } }}