이 문서에서는 New Relic NerdGraph 를 사용하여 Amazon Web Services(AWS), Microsoft Azure 및 Google Cloud Platform(GCP)을 포함한 클라우드 통합 구성 데이터 를 쿼리하고 수정하는 방법의 예를 제공합니다. NerdGraph GraphiQL 탐색기 를 사용하여 NRQL 데이터를 쿼리 할 수도 있습니다.
클라우드 통합 구성 데이터를 쿼리하기 위한 다음 예는 GraphQL 쿼리 및 변형을 사용합니다.
요구 사항
NerdGraph로 클라우드 통합 데이터를 쿼리하기 전에 다음 사항을 확인하십시오.
- 지침에 따라 New Relic과 클라우드 통합을 연결 했습니다.
- API 키를 만들었습니다.
NerdGraph GraphiQL 탐색기에 액세스
NerdGraph GraphiQL 탐색기에 액세스하려면:
- api.newrelic.com/graphiql 로 이동합니다.
- 다음 예 중 하나를 추가하십시오.
쿼리 예시
쿼리는 데이터만 가져오기 위한 요청입니다(부작용 없음). NerdGraph의 쿼리는 정적이지 않습니다. 즉, 필요에 따라 더 많거나 적은 데이터를 요청할 수 있습니다. 각 쿼리에 대해 스키마에서 지원하는 한 검색하려는 데이터를 정확히 지정할 수 있습니다.
이 쿼리는 인프라 데이터에서 사용 가능한 모든 공급자 계정 목록을 반환합니다. 공급자에 따라 추가 속성을 요청할 수 있습니다. 예를 들어 GCP의 경우 새 GCP 프로젝트를 New Relic에 연결할 때 필요한 serviceAccountId
속성을 요청할 수도 있습니다.
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 } } } }}
이 쿼리는 AWS 통합을 위한 특정 공급자 계정에 대한 정보를 반환합니다. 모니터링할 수 있는 통합 목록과 함께 id
, name
, slug
속성이 요청됩니다.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { provider(slug: "aws") { id slug name services { id slug name } } } } }}
이 쿼리는 공급자의 특정 클라우드 서비스 통합에 대한 정보를 반환합니다. 이 예에서 통합은 AWS ALB 모니터링 통합 이고 공급자는 AWS입니다. id
, name
, slug
및 isAllowed
속성은 사용 가능한 구성 매개변수와 함께 요청됩니다.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { provider(slug: "aws") { service(slug: "alb") { id name slug isEnabled } } } } }}
이 쿼리는 New Relic 계정으로 활성화된 클라우드 계정 목록을 반환합니다. (귀하의 클라우드 계정은 New Relic 계정과 특정 공급자 계정을 통합과 연결합니다.) 동일한 클라우드 공급자가 있더라도 동일한 New Relic 계정에서 여러 클라우드 공급자 계정을 활성화할 수 있습니다.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { linkedAccounts { id name createdAt provider { id name } } } } }}
이 쿼리는 name
, providerId
속성 및 모니터링에 사용할 수 있는 클라우드 통합 목록을 포함하여 연결된 계정에 대한 정보를 반환합니다.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { linkedAccount(id: <LINKED_CLOUD_ACCOUNT_ID>) { name provider { id name } integrations { id name createdAt updatedAt } } } } }}
이 쿼리는 모든 공급자 클라우드 계정에 대해 모니터링되는 모든 통합을 반환합니다.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { linkedAccounts { name provider { id name } integrations { id name service { id name } createdAt updatedAt } } } } }}
이 쿼리는 특정 연결 계정의 특정 통합에 대한 정보를 반환합니다.
{ 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 } } } } }}
돌연변이 예
돌연변이는 서버에서 데이터를 생성하거나 업데이트하는 것과 같은 부작용이 있는 요청입니다. 변형에는 키워드 mutation
와 변형 이름이 필요합니다. NerdGraph 돌연변이는 가능한 모든 돌연변이의 하위 집합으로 제한됩니다.
이 변형을 통해 클라우드 공급자 계정을 New Relic 계정에 연결하여 하나 이상의 연결된 계정을 만들 수 있습니다. 하나의 특정 클라우드 제공자 계정(예: aws
)을 New Relic 계정에 연결하거나 여러 클라우드 제공자 계정을 하나의 New Relic 계정에 연결할 수 있습니다.
Required:
매개변수
<PROVIDER_ACCOUNT_NAME>
은(는) 필수이며 비워 둘 수 없습니다. New Relic 계정에서 고유해야 합니다.다른 매개변수는 공급자(AWS, GCP 및 Azure)에 따라 다르며 또한 필수입니다. 다음 섹션에서는 각 공급자 계정에 필요한 매개변수를 확인할 수 있습니다. 계정을 연결한 후
createdAt
및updatedAt
값이 동일합니다.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}}}}
이 변형은 AWS 공급자 계정을 New Relic 계정에 연결합니다.
mutation { cloudLinkAccount( accountId: <NR_ACCOUNT_ID>, accounts: { aws: [{ name: <PROVIDER_ACCOUNT_NAME>, arn: <AWS_ROLE_ARN> }] } ) { linkedAccounts { id name authLabel createdAt updatedAt } } }}
이 변형은 CloudWatch Metric Streams를 통해 데이터를 전송하는 AWS 계정을 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 } } }}
이 변형은 Microsoft Azure 클라우드 구독을 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 } }}
이 변형은 기존 Microsoft Azure 계정에서 클라이언트 암호를 순환합니다.
mutation { cloudUpdateAccount( accountId: <NR_ACCOUNT_ID> accounts: { azure: { linkedAccountId: <NR_LINKED_ACCOUNT_ID>, clientSecret: <azure_secret_token> } } ) { linkedAccounts { id name authLabel createdAt updatedAt } }}
이 돌연변이는 GCP 프로젝트를 New Relic 계정에 연결합니다.
mutation { cloudLinkAccount( accountId: <NR_ACCOUNT_ID>, accounts: { gcp: [{ name: <PROVIDER_ACCOUNT_NAME>, projectId: <GCP_PROJECT_ID> }] } ) { linkedAccounts { id name authLabel createdAt updatedAt } }}
이 변형을 사용하면 하나 이상의 연결된 공급자 계정의 이름을 바꿀 수 있습니다. name
매개변수는 필수이며 비워둘 수 없으며 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 } }}
이 변형을 통해 기존 클라우드 계정에서 하나 이상의 특정 클라우드 통합을 모니터링할 수 있습니다. 이 변형을 통해 New Relic은 공급자 계정에서 활성화된 통합에 대한 데이터를 기록합니다. 각 공급자 계정에 대해 사용 가능한 각 서비스와 일치하는 다른 입력 매개변수에 액세스할 수 있습니다.
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 } } }}
연결된 제공자 계정이 많은 경우 동시에 여러 클라우드 계정에서 동일한 통합을 활성화할 수 있습니다.
작업 출력의 경우 통합 관련 구성 매개변수에 GraphQL 조각 을 사용할 수 있습니다.
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 } } }}
여러 클라우드 계정이 연결된 경우 연결된 여러 클라우드 계정에서 동시에 여러 통합을 활성화할 수도 있습니다.
작업 출력의 경우 GraphQL 조각 을 사용하여 통합 관련 구성 매개변수를 요청할 수 있습니다.
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 } } }}
또한 이 변형을 통해 하나 이상의 클라우드 통합을 수정하고 하나 이상의 구성 매개변수를 변경할 수 있습니다. 각 서비스에는 수정할 수 있는 특정 매개변수가 있습니다.
유형 목록의 매개변수(예: awsRegion
)의 경우 전체 목록을 제공합니다. 작업 출력의 경우 GraphQL 조각 을 사용하여 통합 관련 구성 매개변수를 요청할 수 있습니다.
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 } }}
이 변형을 통해 통합을 비활성화하고 특정 클라우드 통합에 대한 데이터 수집을 중지할 수 있습니다.
mutation { cloudDisableIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { : { : [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } ] } } ) { disabledIntegrations { id name authLabel provider { id } } errors { type message } }}
이 변형을 사용하면 New Relic 계정에서 클라우드 공급자 계정의 연결을 해제할 수 있습니다.
주의
이 작업은 취소할 수 없습니다. 그러나 계정을 다시 연결할 수 있지만 계정 기록은 계속 손실됩니다.
mutation { cloudUnlinkAccount ( accountId: <NR_ACCOUNT_ID>, accounts: { { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } } ) { unlinkedAccounts { id name } errors { type message } }}
AWS 통합 활성화
이 예에서는 AWS SQS 통합을 사용하고 AWS 계정을 New Relic에 연결 했다고 가정합니다.
AWS 통합을 활성화하려면:
계정, 특히 사용 가능한 공급자 및 이미 생성된 공급자 계정에 대한 데이터를 가져오는 쿼리를 보냅니다.
{ actor { account(id: <NR_ACCOUNT_ID>) { cloud { providers { id name slug } linkedAccounts { name integrations { id name } } } } }}
AWS 공급자 계정이 아직 연결되어 있지 않거나 다른 AWS 계정을 연결하려는 경우 연결합니다.
<NR_ACCOUNT_ID>
매개변수에서 New Relic 계정 식별자를 사용하세요.<PROVIDER_ACCOUNT_NAME>
에 제공자 계정의 이름을 제공합니다.AWS 계정에서 데이터를 가져오는 데 사용되는 AWS 역할의 ARN을 포함합니다.
mutation {cloudLinkAccount(accountId: <NR_ACCOUNT_ID>,accounts: {aws: [{name: <PROVIDER_ACCOUNT_NAME>,arn: <AWS_ROLE_ARN> }]}) {linkedAccounts {idnameauthLabelcreatedAtupdatedAt}errors {typemessage}}}
<NR_ACCOUNT_ID>
매개변수에 New Relic 계정 ID를 사용하고 <LINKED_CLOUD_ACCOUNT_ID>
매개변수 값에 제공자 계정 ID를 사용합니다.
mutation { cloudConfigureIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { aws: { sqs: [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } ] } } ) { integrations { id name service { id name } } errors { type message } }}
동일한 공급자 계정을 가진 여러 계정이 있는 경우 동시에 여러 공급자 계정에서 동일한 통합을 활성화할 수 있습니다. <NR_ACCOUNT_ID>
매개변수에 New Relic 계정 ID를 사용하고 <LINKED_CLOUD_ACCOUNT_ID_n>
매개변수 값에 제공자 계정 ID를 사용합니다.
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 } }}
AWS 통합을 위한 폴링 간격 변경
이 예에서는 AWS SQS 통합을 사용하고 AWS 계정을 New Relic에 연결 했다고 가정합니다. AWS 통합의 폴링 간격을 변경하려면:
AWS SQS 통합을 위한 폴링 간격을 업데이트하려면 <NR_ACCOUNT_ID>
매개변수에 New Relic 계정 ID를 사용하고 <LINKED_ACCOUNT_ID>
매개변수 값에 연결된 공급자 계정의 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 } }}
AWS 통합 비활성화
이 예에서는 AWS SQS 통합을 사용하고 AWS 계정을 New Relic에 연결 했다고 가정합니다. AWS 통합을 비활성화하려면:
<NR_ACCOUNT_ID>
매개변수에 New Relic 계정 식별자를 사용하고 <LINKED_ACCOUNT_ID>
매개변수 값에 연결된 클라우드 계정의 ID를 사용합니다.
mutation { cloudDisableIntegration ( accountId: <NR_ACCOUNT_ID>, integrations: { aws: { sqs: [ { linkedAccountId: <LINKED_CLOUD_ACCOUNT_ID> } ] } } ) { disabledIntegrations { id accountId name } errors { type message } }}