• EnglishEspañol日本語한국어Português
  • ログイン今すぐ開始

この機械翻訳は、参考として提供されています。

英語版と翻訳版に矛盾がある場合は、英語版が優先されます。詳細については、このページを参照してください。

問題を作成する

NerdGraph チュートリアル: アラートインシデント相関のトポロジー

このチュートリアルでは、NerdGraph API を使用してトポロジを設定する方法について説明します。 トポロジ設定により、集計の決定とインシデントの相関関係をより適切に把握できるようになります。

要件

トポロジー相関図は現在限定公開されています。 トポロジーの要件 を参照してください。

NerdGraphをご利用いただくには、 ユーザーキー が必要です。

チュートリアルの概要

New Relic のアラートを使用すると、インシデントの相関関係を制御するカスタム決定を作成できます。 1 種類のカスタム決定ロジックでは、「トポロジ」の概念が使用されます。これは、サービス マップ (インフラストラクチャ内のサービスとリソースが相互にどのように関連しているか) を表します。

このチュートリアルでは、 NerdGraph を使用する方法を紹介します。

  • 頂点とエッジを作成してトポロジーを設定する
  • 頂点・辺の削除
  • トポロジーデータの取得

NerdGraphを使ってトポロジーを設定する前に、以下のことを基本的に理解しておく必要があります。

変異の例

NerdGraphでは、リソースの作成や設定の変更などのアクションを実行するリクエストを「ミューテーション」と呼んでいます(Learn more about NerdGraph terminology )。

このセクションでは、 aiTopologyCollectorミューテーションを使用してトポロジを作成、編集、または削除する方法を説明します。

作成セクションでは、このサービスマップを表現するための頂点と辺を作成します。

このチュートリアルでは、NerdGraphを使用して、これらのエンティティとそれらの関係を表す頂点とエッジを作成します。

頂点の作成

次の変異では1つ以上の頂点が作られますが、これらの頂点は監視対象のエンティティを表し、インシデントの発生源となります。

以下のNerdGraphコールは、以下のフィールドを使用しています。

  • accountId:NewRelicアカウントID。
  • name:頂点の名前。この値では大文字と小文字が区別され、グラフ内で一意である必要があります。
  • vertexClass:頂点クラスは、 applicationhostcloud servicecluster 、またはdatastoreにすることができます。この分類により、決定ロジックでトポロジベースの相関を制限して、これらの分類に一致する頂点を制限できます。
  • definingAttributes:インシデントイベントの属性に一致する属性のセット(キー/値のペア)。これらは通常、エンティティGUIDやその他のIDなど、すべてのインシデントに表示される一意の識別子です。インシデントに頂点のdefiningAttributesのキーと値のペアのいずれかが含まれている場合、その頂点に一致します。属性とその追加方法の詳細については、「 属性の追加」を参照してください。

例のコール。

mutation {
aiTopologyCollectorCreateVertices(
accountId: NEW_RELIC_ACCOUNT_ID
vertices: [
{
name: "ServiceA"
vertexClass: APPLICATION
definingAttributes: [{ key: "application/name", value: "ServiceA" }]
}
{
name: "ServiceB"
vertexClass: APPLICATION
definingAttributes: [{ key: "application/name", value: "ServiceB" }]
}
{
name: "ServiceC"
vertexClass: APPLICATION
definingAttributes: [{ key: "application/name", value: "ServiceC" }]
}
{
name: "HOST1"
vertexClass: HOST
definingAttributes: [
{ key: "host/name", value: "HOST1" }
{ key: "availability-zone", value: "us-west-2a" }
{ key: "region", value: "us-west-2" }
]
}
{
name: "HOST2"
vertexClass: HOST
definingAttributes: [
{ key: "host/name", value: "HOST2" }
{ key: "availability-zone", value: "us-west-2b" }
{ key: "region", value: "us-west-2" }
]
}
{
name: "HOST3"
vertexClass: HOST
definingAttributes: [
{ key: "host/name", value: "HOST3" }
{ key: "availability-zone", value: "us-west-2c" }
{ key: "region", value: "us-west-2" }
]
}
]
) {
result
}
}

エッジの作成

この突然変異を利用して、頂点間の関係を表す1つ以上のエッジを作成します。

以下のNerdGraphのコールは、これらのフィールドを使用しています。

  • accountId:NewRelicアカウントID。
  • fromVertexName:エッジが開始している頂点の名前。
  • toVertexName:接続する頂点の名前。
  • directed:頂点がどのように接続するかを説明するブール値。 trueは一方向の関係(たとえば、あるサービスが別のサービスを呼び出す)を示し、 falseはを示します。デフォルトでは、directed= trueです。

例のコール。

mutation {
aiTopologyCollectorCreateEdges(
accountId: NEW_RELIC_ACCOUNT_ID
edges: [
{ directed: true, fromVertexName: "ServiceA", toVertexName: "ServiceB" }
{ directed: true, fromVertexName: "ServiceB", toVertexName: "ServiceC" }
{ directed: false, fromVertexName: "ServiceA", toVertexName: "HOST1" }
{ directed: false, fromVertexName: "ServiceA", toVertexName: "HOST2" }
{ directed: false, fromVertexName: "ServiceA", toVertexName: "HOST3" }
{ directed: false, fromVertexName: "ServiceB", toVertexName: "HOST1" }
{ directed: false, fromVertexName: "ServiceB", toVertexName: "HOST2" }
{ directed: false, fromVertexName: "ServiceB", toVertexName: "HOST3" }
{ directed: false, fromVertexName: "ServiceC", toVertexName: "HOST1" }
{ directed: false, fromVertexName: "ServiceC", toVertexName: "HOST2" }
{ directed: false, fromVertexName: "ServiceC", toVertexName: "HOST3" }
]
) {
result
}
}

頂点の削除

この変異は、トポロジーグラフの頂点を削除するものである。頂点を削除すると、その頂点に接続しているすべてのエッジが削除されることに注意してください。

以下のNerdGraphのコールは、これらのフィールドを使用しています。

  • accountId:NewRelicアカウントID。
  • vertexNames:削除する頂点名のリスト。

例のコール。

mutation {
aiTopologyCollectorDeleteVertices(
accountId: NEW_RELIC_ACCOUNT_ID
vertexNames: ["ServiceA", "ServiceB", "ServiceC", "HOST1", "HOST2", "HOST3"]
) {
result
}
}

エッジの削除

この変異では、トポロジーグラフの頂点を結ぶエッジが削除されます。

以下のNerdGraphのコールは、これらのフィールドを使用しています。

  • accountId:NewRelicアカウントID。
  • edgeIds:削除するエッジIDのリスト。

例のコール。

mutation {
aiTopologyCollectorDeleteEdges(
accountId: NEW_RELIC_ACCOUNT_ID
edgeIds: [
"d8a7971b-575d-42e9-aa13-43a50c5a7d10"
"0da5cb92-0428-4890-992b-2823d037cb5e"
]
) {
result
}
}

クエリの例

NerdGraphでは、アクションを実行するミューテーションとは対照的に、クエリを使用してデータをフェッチします(用語の詳細をご覧ください)。 Nerdgraphクエリは静的ではありません。つまり、必要に応じてデータを増減できます。トポロジデータを取得するには、 aiTopologyクエリを使用します。

頂点の取得

このクエリは、トポロジーグラフの頂点のリストを返します。

{
actor {
account(id: NEW_RELIC_ACCOUNT_ID) {
aiTopology {
vertices {
vertices {
id
name
definingAttributes {
key
value
}
updatedAt
vertexClass
}
count
cursor
}
}
}
}
}

リティーブ・エッジ

このクエリは、トポロジー・グラフのエッジのリストを返します。

{
actor {
account(id: NEW_RELIC_ACCOUNT_ID) {
aiTopology {
edges {
edges {
id
toVertexName
fromVertexName
directed
updatedAt
}
cursor
count
}
}
}
}
}
Copyright © 2024 New Relic株式会社。

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