変更追跡機能を使用すると、さまざまな変更が顧客やシステムに与える影響を追跡できます。たとえば、いくつかのデプロイメントを行う場合、変更追跡機能を使用して、New Relic UI チャートで結果を監視できます。また、これらの変更の影響を理解するのに役立つ機能にもアクセスできます。
CLI または CI/CD 統合を使用して監視する変更を指定する代わりに、NerdGraph API を介して GraphQL ミューテーションとクエリを使用して同じことを行うことができます。
NerdGraph の使用に関する一般的な情報については、 「NerdGraph の紹介」 を参照してください。まだお持ちでない場合は、以下で無料の New Relic アカウントを作成して、今すぐデータの監視を開始してください。
要件 要件は次のとおりです。
ナードグラフの要件 ユーザーのアクセス許可: どのユーザー タイプ でも NerdGraph を使用して展開マーカーを作成し、他の変更を追跡できますが、完全なプラットフォーム ユーザーのみがキュレートされた変更追跡 UI エクスペリエンスにアクセスできます。 NerdGraphエクスプローラーのフィールドを理解する GraphQL クエリで使用するフィールドは、次の一般的なタイプに分類されます。
必要な属性 デプロイなどの変更を追跡するには、次を設定する必要があります。
属性
説明
entityGuid
entityGuid
値は、計測およびセットアップ プロセス中に New Relic によってシステム コンポーネントに割り当てられる一意の識別子です。New Relic エンティティとエンティティ GUID の検索の詳細については、このガイド を参照してください。
version
version 属性値には任意の値を指定できますが、ビルド プロセス中に設定されたバージョン番号を使用することをお勧めします。これを行う方法の例については、以下のJenkins デプロイメント プラグインのドキュメントを 参照してください。すでにバージョン番号を New Relic に報告している場合または、他の何らかの方法で、ここでも同じものを使用して、バージョンごとにデータをファセット化して関連付けることができる今後の機能を設定することをお勧めします。
ヒント 従来の REST API から移行する場合は、appID ではなく、アプリケーションのエンティティ GUID の使用を開始する必要があります。次のクエリを使用して、NerdGraph で GUID を簡単に見つけることができます。
entitySearch ( query : "domainId=INSERT_YOUR_APPID" ) {
オプションの属性 追跡している変更にコンテキストを追加するために、いくつかのオプションの便利な属性を定義できます。これらの属性は、特定の変更追跡機能を有効にすることもできます。
属性
説明
changelog
changelog 属性の URL または任意の文字列を送信できます。例: changelog: "Added: /v2/deployments.rb, Removed: None"
またはchangelog: "https://github.com/nodejs/node/blob/v4.2.3/CHANGELOG.md"
。
description
description 属性には任意の文字列を送信できます。例: description: "Added a deployments resource to the v2 API"
.
description 属性は、内部の展開管理プロセスからコード化された情報を挿入する場所を選択する場合があります。各コミットまたはデプロイメントに割り当てる ID またはタグを使用して、作業の組織的またはビジネス的側面を記述できます (例: EU_MAINT_DMARK_v101
)。
commit
commit
属性には任意の文字列を送信できます。 commit: "r3ws4sa43f"
など、デプロイまたは変更に関連付けられた commit SHA を使用することをお勧めします。
deepLink
deepLink
属性には任意の URL を送信できます。New Relic 上の変更を評価する人が、さらなるアクションを実行できる場所にすぐにアクセスできるようにするもの (Jenkins、ArgoCD、GitHub Actions など) を使用することをお勧めします。次に例を示します: deepLink: "http://localhost:8080/job/PipelineV2/configure"
。
deploymentType
デプロイメントに関連する変更は、さまざまなタイプに分類できます。これらのタイプは一般的なデプロイメント手法と一致していますが、 OTHER
タイプもあります。種類には次のものがあります。
groupId
1 つまたは複数のエンティティに一連の変更を加えたり、システム内の多くのエンティティにわたって多くの変更をリリースしたりする場合は、展開をグループ化することができます。関連するデプロイメントごとに同じgroupId
属性値を設定することで、New Relic インターフェイスでこれらの変更を一緒に確認したり、 groupId
を使用してクエリ結果を絞り込んだりしやすくなります。
groupId
は選択した任意の文字列にすることができ、 groupId
を最初に使用した後も引き続き展開をグループに追加できます (この展開を数週間または数か月前に発生したものと関連付けたい場合) .
ヒント groupId
を使用して多くのデプロイメントを関連付けるだけでなく、属性を使用して長時間実行される変更を定義することもできます。たとえば、同じgroupId
を持つ 2 つのデプロイは、アラートが抑制されていた期間または何らかの移行が行われていた期間を挟む可能性があります。
ユーザー
user: "datanerd@example.com"
など、任意の文字列を指定できます。
New Relic によって設定される属性 New Relic は timestamp
および deploymentId
属性を自動的に設定します。オーバーライドとして timestamp
値を指定できますが、一意性を確保するために常に deploymentId
が New Relic によって生成されます。
属性
説明
タイムスタンプ
NerdGraph 呼び出しが受信された時刻。ここで、Unix エポックからのミリ秒数としてオーバーライドを指定できます。例: timestamp: 1032480000000
.
重要 NerdGraph 呼び出しが受信された時点で、すべてのタイムスタンプが現在の時刻の +/- 24 時間でなければならないという厳しい制限が適用されます。さもないと、ペイロードは拒否されます。
deploymentId
展開が記録されるときに生成される一意の識別子。deploymentId
を設定することはできませんが、NerdGraph および NRQL クエリで使用して、特定のデプロイメントを見つけることができます。次に例を示します: deploymentId: "8a3a594c-e726-4bc2-8078-26dffec9a3d8"
。
突然変異を使用して変更追跡マーカーを作成する デプロイなどの変更を記録するには、必須フィールドを含めてから、任意のフィールドを含めるかどうかを決定する必要があります。
デプロイ マーカーを作成するいくつかの方法を示す GraphQL ミューテーションの例を次に示します。
必須フィールドのみのミューテーション changeTrackingCreateDeployment (
deployment : { version : "0.0.1" , entityGuid : "INSERT_YOUR_GUID" }
オプションのフィールドによるミューテーション changeTrackingCreateDeployment (
timestamp : INSERT_MS_EPOCH_TIMESTAMP
entityGuid : " INSERT_YOUR_GUID "
description : " create a new marker "
deepLink : " example.com/path "
commit : " INSERT_A_COMMIT_HASH "
次のステップ ミューテーションを使用して追跡する変更を指定したら、New Relic UI でこれらの変更の影響を分析できます。