• EnglishEspañol日本語한국어Português
  • 로그인지금 시작하기

사용자의 편의를 위해 제공되는 기계 번역입니다.

In the event of any inconsistency between the English version and the translated version, the English versionwill take priority. Please visit this page for more information.

문제 신고

NerdGraph 튜토리얼: 워크로드 보기 및 관리

New Relic을 사용하면 워크로드 라는 그룹으로 엔터티를 함께 그룹화할 수 있습니다. 이를 통해 팀이나 프로젝트에서 사용하는 전체 스택을 더 잘 모니터링할 수 있습니다.

여기에서 NerdGraph API 를 사용하여 워크로드 관련 작업을 수행하는 방법을 보여줍니다.

작업 부하에 표시되는 차트를 사용자 지정하는 방법에 대한 게시물 도 참조하십시오.

중요

CLITerraform 리소스 를 사용하여 이러한 작업을 자동화할 수도 있습니다.

계정의 워크로드 가져오기

계정의 모든 워크로드를 가져오려면 다음 GraphQL 쿼리 를 사용하고 id 필드를 통해 계정 ID를 전달합니다. 이 예에서는 세 가지 기본 필드를 검색합니다.

  • guid: 워크로드 GUID.
  • name: 워크로드 이름.
  • permalink: New Relic UI의 영구 URL.
{
actor {
entitySearch(query: "accountId = YOUR_ACCOUNT_ID and type = 'WORKLOAD'") {
results {
entities {
guid
name
permalink
}
}
}
}
}

응답에는 각 워크로드에 대한 다음 유형의 데이터가 포함됩니다.

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

워크로드의 엔터티 목록 가져오기

워크로드 GUID( guid )를 인수로 전달하면 다음 쿼리로 워크로드에 속하는 엔터티를 가져올 수 있습니다. 이 예에서는 일부 워크로드 메타데이터도 검색합니다.

  • accountId: 워크로드 계정.

  • name: 워크로드 이름.

  • permalink: New Relic UI의 워크로드 영구 URL입니다.

  • alertSeverity: 워크로드의 상태입니다. 이 값은 최대 10분 지연될 수 있습니다. 쿼리 시간에 워크로드 상태를 강제로 계산하려면 워크로드 상태 가져오기 예제를 사용하세요.

  • 항목의 실제 목록을 포함하는 중첩된 collection , membersresults 객체:

    • collection 객체의 name 인수는 WORKLOAD 값을 사용합니다.
    • count: 워크로드의 엔터티 수입니다.
{
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
}
}
}
}
}
}
}
}
}

쿼리는 다음과 같은 엔터티 목록을 반환합니다.

{
"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"
},
...
]
}
}
}
}
}
}
}

워크로드 상태 가져오기

워크로드 상태를 강제로 계산하려면 다음 쿼리를 사용하여 계정 ID( id )를 account 필드의 인수로, 워크로드 GUID( guid )를 다음과 같이 전달할 수 있습니다. collection 필드에 대한 인수입니다.

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

다음은 응답에서 얻을 수 있는 내용입니다.

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

DISRUPTED 상태 값은 CRITICAL 상태와 동의어입니다.

워크로드 생성

다음은 workloadCreate 변형 쿼리를 사용하여 워크로드를 생성하는 NerdGraph 호출의 예입니다.

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
}
}

이 쿼리의 일부에 대한 세부정보:

  • account: 워크로드 계정 ID 입니다. 워크로드는 계정 간에 이동할 수 없으므로 나중에 이 값을 변경할 수 없습니다.

  • name: 워크로드에 대해 사용자에게 친숙한 이름이 있는 문자열입니다.

  • scopeAccounts: 범위 계정 은 엔터티 데이터를 가져오는 계정입니다. 범위 계정은 워크로드 계정과 동일한 상위 계정 또는 엔터프라이즈 파트너십 아래의 그룹에 속해야 합니다.

  • 워크로드의 엔터티를 정의하려면 다음 옵션 중 하나 또는 둘 다를 사용할 수 있습니다.

    • entitySearchQueries: 이를 통해 엔티티 배열을 동적으로 생성 할 수 있습니다. 각 쿼리의 이름은 필요하지 않습니다. 다음은 동적 쿼리의 예입니다.

      (domain = 'INFRA' and type = 'HOST') and tags.label.environment = 'production'
    • entityGuids: 워크로드에 포함할 특정 엔터티 GUID를 선택하기 위한 것입니다.

  • guid: 워크로드 guid 를 반환합니다. NerdGraph는 스키마 스티칭을 제공하므로 permalink 과 같은 워크로드에 대한 기타 세부정보를 얻을 수 있습니다.

워크로드 수정

워크로드를 수정하려면 workloadUpdate 변형을 사용합니다. 워크로드의 guid 을 알아야 합니다.

워크로드 계정은 변경할 수 없습니다.

수정할 수 있는 필드는 워크로드 생성 을 참조하십시오. 다음과 같은 추가 규칙이 적용됩니다.

  • entitySearchQueries: 이 필드는 저장될 것으로 예상하는 모든 쿼리를 포함해야 합니다. 새 쿼리를 추가하려면 query 필드에 포함하고 쿼리 id 를 제공하지 마십시오. 기존 쿼리를 수정하려면 query 필드에 포함하고 기존 id 를 제공합니다. 기존 쿼리를 삭제하려면 해당 id 를 사용하여 쿼리를 더 이상 추가하지 마십시오.

다음은 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
}
}

워크로드의 정적 상태 설정

자동 상태 계산을 재정의하는 작업 부하에 대한 정적 상태를 설정할 수 있습니다.

정적 상태를 설정하려면 워크로드의 guid 을 알고 다음 필드를 사용해야 합니다.

  • enabled: 상태 값을 전파하려면 이 필드를 true 으로 설정해야 합니다.
  • status: 이 워크로드에 대해 설정하려는 상태 값입니다. 지원되는 값은 OPERATIONAL , DEGRADED 또는 DISRUPTED 입니다.
  • description: 추가 세부 정보를 제공하는 텍스트 필드입니다.
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
}
}
}

워크로드에 대한 자동 상태 규칙 수정

워크로드를 생성할 때 statusConfig 객체를 사용하여 워크로드 상태를 계산하는 데 사용할 자동 규칙을 정의할 수 있습니다. rules 배열을 비워두면 워크로드에 대한 규칙이 설정되지 않습니다.

그러나 워크로드를 생성할 때 statusConfig 객체를 사용하지 않는 경우 기본적으로 다음 규칙이 추가됩니다.

"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
}
}
}
}

구성을 읽는 방법은 다음과 같습니다.

  • enabled: 이 필드가 true 으로 설정되면 자동 상태 계산이 활성화됩니다.
  • rules: 규칙의 배열입니다. 기본 구성에서는 디지털 경험에 더 가까운 엔터티 유형(즉, 합성 모니터, 브라우저 응용 프로그램, 모바일 응용 프로그램 및 서비스)에 대해 네 가지 규칙이 설정됩니다. 이러한 각 그룹에 대해 비정상 상태가 롤업됩니다.
  • remainingEntitiesRule: 다른 규칙에서 평가되지 않은 모든 항목에 적용되는 규칙입니다. 기본 구성에서 나머지 엔터티는 엔터티 유형별로 그룹화되며 각 그룹의 상태가 가장 건강한 엔터티의 상태와 일치하도록 합니다.

이러한 규칙을 수정하려면 workloadUpdate 변형을 사용하고 사용하려는 완전한 새 statusConfig 객체를 보내야 합니다.

statucConfig.automatic.enabledfalse 로 설정하여 구성을 유지하면서 자동 상태 계산을 비활성화할 수 있습니다.

또는 빈 배열을 보내 모든 자동 일반 규칙을 삭제할 수 있습니다. 그리고 remainingEntitiesRule 객체를 추가하지 않고 나머지 항목에 대한 규칙을 삭제할 수 있습니다.

워크로드 복제

워크로드를 복제하려면 먼저 guid 을 알아야 합니다. workloadDuplicate 변형에서는 매개변수로 전달해야 합니다.

  • accountId: 새 워크로드를 생성할 계정입니다.
  • sourceGuid: 복제할 워크로드의 guid 입니다.
  • workload.name: 선택 사항입니다. 새 워크로드의 이름을 지정할 수 있습니다. 지정하지 않으면 새 워크로드는 - Copy 이 추가된 원래 워크로드의 이름을 가져옵니다.

워크로드를 복제한 후 수정할 수 있습니다 .

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

워크로드 삭제

워크로드를 삭제하려면 workloadDelete 변형을 사용하고 워크로드 GUID를 지정합니다.

워크로드를 삭제하면 모든 기록과 메타데이터도 삭제됩니다.

Copyright © 2024 New Relic Inc.

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