변경 추적 기능을 사용하면 다양한 변경이 고객과 시스템에 미치는 영향을 추적할 수 있습니다. 예를 들어 일부 배포를 수행하는 경우 변경 사항 추적 기능을 사용하여 New Relic UI 차트에서 결과를 모니터링할 수 있습니다. 또한 이러한 변경 사항의 영향을 이해하는 데 도움이 되는 기능에 액세스할 수 있습니다.
CLI 또는 CI/CD 통합을 사용하여 모니터링할 변경 사항을 지정하는 대신 NerdGraph API를 통해 GraphQL 변형 및 쿼리를 사용하여 동일한 작업을 수행할 수 있습니다.
사용자 권한: 모든 사용자 유형 은 NerdGraph를 사용하여 배포 마커를 만들고 다른 변경 사항을 추적할 수 있지만 전체 플랫폼 사용자만 큐레이트된 변경 사항 추적 UI 경험에 액세스할 수 있습니다.
NerdGraph 탐색기의 필드 이해
GraphQL 쿼리에서 사용할 필드는 다음과 같은 일반적인 유형에 속합니다.
배포와 같은 변경 사항을 추적하려면 다음을 설정해야 합니다.
기인하다
설명
entityGuid
entityGuid 값은 계측 및 설정 프로세스 중에 New Relic에서 시스템 구성요소에 할당한 고유 식별자입니다. New Relic 엔티티 및 엔티티 GUID 찾기에 대한 자세한 내용은 이 가이드 를 참조하십시오.
version
버전 속성 값은 무엇이든 가능하지만 빌드 프로세스 중에 설정된 버전 번호를 사용하는 것이 좋습니다. 이를 수행하는 방법에 대한 예를 보려면 아래 Jenkins 배포 플러그인 문서를 참조하세요. 이미 뉴렐릭 또는 다른 방법으로 버전 번호를 보고한 경우, 여기에서 동일한 정보를 사용하여 버전별로 데이터를 패싯하고 상관시킬 수 있는 향후 기능을 설정하는 것이 좋습니다.
팁
레거시 REST API에서 전환하는 경우 appID 대신 애플리케이션의 엔터티 GUID를 사용해야 합니다. 다음 쿼리를 사용하여 NerdGraph에서 GUID를 쉽게 찾을 수 있습니다.
{
actor{
entitySearch(query:"domainId=INSERT_YOUR_APPID"){
count
query
results{
entities{
entityType
name
guid
}
}
}
}
}
추적 중인 변경 내용에 컨텍스트를 추가하기 위해 몇 가지 선택적이고 유용한 속성을 정의할 수 있습니다. 이러한 특성은 특정 변경 내용 추적 기능을 활성화할 수도 있습니다.
기인하다
설명
changelog
changelog 속성에 대한 URL 또는 문자열을 제출할 수 있습니다. 예: changelog: "Added: /v2/deployments.rb, Removed: None" 또는 changelog: "https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md" .
description
설명 속성에 대해 임의의 문자열을 제출할 수 있습니다. 예: description: "Added a deployments resource to the v2 API" .
설명 속성은 내부 배포 관리 프로세스에서 코드화된 정보를 삽입하도록 선택하는 위치일 수 있습니다. 작업의 조직적 또는 비즈니스 측면을 설명하는 각 커밋 또는 배포에 할당하는 ID 또는 태그를 사용할 수 있습니다(예: EU_MAINT_DMARK_v101.
commit
commit 속성에 대한 문자열을 제출할 수 있으며 배포 또는 변경과 관련된 커밋 SHA를 사용하는 것이 좋습니다(예: commit: "r3ws4sa43f" .
deepLink
deepLink 속성에 대해서는 어떤 URL이든 제출할 수 있습니다. New Relic의 변경 사항을 평가하는 사람이 Jenkins, ArgoCD 또는 GitHub Actions와 같은 추가 조치를 취할 수 있는 위치로 빠르게 이동하는 데 도움이 되는 도구를 사용하는 것이 좋습니다. 예는 다음과 같습니다. deepLink: "http://localhost:8080/job/PipelineV2/configure".
deploymentType
배포와 관련된 변경 사항을 여러 유형으로 나눌 수 있습니다. 이러한 유형은 일반적인 배포 기술과 일치하지만 OTHER 유형도 있습니다. 유형은 다음과 같습니다.
BASIC
BLUE_GREEN
CANARY
ROLLING
SHADOW
OTHER
각 배포에 유형을 할당하면 변경 사항 추적 인터페이스 및 NerdGraph/NRQL 쿼리 결과에 대한 결과를 필터링하는 데 도움이 됩니다.
groupId
하나 이상의 엔터티에 대해 일련의 변경을 수행하거나 시스템 내의 여러 엔터티에서 많은 변경 사항을 릴리스하는 경우 배포를 그룹화할 수 있습니다. 각 관련 배포에 대해 동일한 groupId 속성 값을 설정하면 New Relic 인터페이스에서 이러한 변경 사항을 함께 보다 쉽게 확인하거나 groupId 를 사용하여 쿼리 결과를 좁힐 수 있습니다.
groupId 는 선택한 문자열이 될 수 있으며 groupId 를 처음 사용한 후 그룹에 배포를 계속 추가할 수 있습니다(이 배포를 몇 주 또는 몇 달 전에 발생한 배포와 관련시키려는 경우). .
팁
groupId 를 사용하여 많은 배포를 연결하는 것 외에도 속성을 사용하여 장기 실행 변경사항을 정의할 수도 있습니다. 예를 들어 groupId 이 동일한 두 배포는 알림이 억제되거나 일부 마이그레이션이 발생하는 기간을 묶을 수 있습니다.
사용자
모든 문자열이 될 수 있습니다(예: user: "datanerd@example.com" .
New Relic은 timestamp 및 deploymentId 속성을 자동으로 설정합니다. 재정의로 timestamp 값을 제공할 수 있지만 고유성을 보장하기 위해 deploymentId 항상 New Relic에서 생성됩니다.
기인하다
설명
타임스탬프
NerdGraph 호출이 수신된 시간입니다. 여기에서 Unix epoch 이후의 밀리초 수로 재정의를 제공할 수 있습니다. 예: timestamp: 1032480000000.
중요
모든 타임스탬프는 NerdGraph 호출이 수신되는 현재 시간의 +/- 24시간이어야 하며 그렇지 않으면 페이로드가 거부된다는 엄격한 제한이 적용됩니다.
deploymentId
배포가 기록될 때 생성되는 고유 식별자입니다. deploymentId 를 설정할 수는 없지만 NerdGraph 및 NRQL 쿼리에서 이를 사용하여 특정 배포를 찾을 수 있습니다. 다음은 예입니다: deploymentId: "8a3a594c-e726-4bc2-8078-26dffec9a3d8" .
돌연변이를 사용하여 변경 사항 추적 마커 만들기
배포와 같은 변경 사항을 기록하려면 필수 필드를 포함하고 선택적 필드를 포함할지 여부를 결정해야 합니다.
다음은 배포 마커를 생성하는 몇 가지 방법을 보여주는 몇 가지 GraphQL 변형의 예입니다.