変更追跡機能を使用すると、さまざまな変更が顧客やシステムに与える影響を追跡できます。たとえば、いくつかのデプロイメントを行う場合、変更追跡機能を使用して、New Relic UI チャートで結果を監視できます。また、これらの変更の影響を理解するのに役立つ機能にもアクセスできます。
CLI または CI/CD 統合を使用して監視する変更を指定する代わりに、NerdGraph API を介して GraphQL ミューテーションとクエリを使用して同じことを行うことができます。
NerdGraph の使用に関する一般的な情報については、「NerdGraph の紹介」を参照してください。
要件
要件は次のとおりです。
- ナードグラフの要件
- ユーザーのアクセス許可: どのユーザー タイプでも NerdGraph を使用して展開マーカーを作成し、他の変更を追跡できますが、完全なプラットフォーム ユーザーのみがキュレートされた変更追跡 UI エクスペリエンスにアクセスできます。
NerdGraphエクスプローラーのフィールドを理解する
GraphQL クエリで使用するフィールドは、次の一般的なタイプに分類されます。
デプロイなどの変更を追跡するには、次を設定する必要があります。
属性 | 説明 |
---|
entityGuid
| entityGuid 値は、計測およびセットアップ プロセス中に New Relic によってシステム コンポーネントに割り当てられる一意の識別子です。New Relic エンティティとエンティティ GUID の検索の詳細については、このガイドを参照してください。
|
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 は 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 でこれらの変更の影響を分析できます。