• ログイン無料アカウント

本書は、お客様のご参考のために原文の英語版を機械翻訳したものです。

英語版と齟齬がある場合、英語版の定めが優先するものとします。より詳しい情報については、本リンクをご参照ください。

問題を作成する

NerdGraphチュートリアル。エンティティのゴールデンメトリクスの表示と設定

ゴールデンメトリクスゴールデンタグ は、 エンティティ についての情報のうち、そのエンティティにとって最も重要と思われるビットです。この情報を使って、New Relic 全体でエンティティの簡単な概要を表示しています。ゴールデンメトリクスとタグの標準的な定義は、この 公開リポジトリ で確認、貢献することができます。

このドキュメントでは、 NerdGraph を使用して、エンティティのカスタムメトリクスを照会する方法を説明します。

ヒント

NerdGraph APIを使用してエンティティを照会する方法の詳細については、 our tutorial を参照してください。

ゴールデンメトリクスの取得

特定のGUIDまたはGUIDのリストのゴールデンメトリックをフェッチする場合、提供されたクエリは既にフィルタリングされています。結果のクエリは、クエリビルダーでそのまま実行できます。結果のメトリックは、 timeseriesまたは単一の値のいずれかになります。

これは、GUID ExampleGUIDを使用したAWSDynamoDBテーブルエンティティの1つのゴールデンメトリッククエリの例です。

SELECT average(provider.getSuccessfulRequestLatency.Average)
FROM DatastoreSample
WHERE entityGuid IN ('ExampleGUID') AND provider='DynamoDbTable'
TIMESERIES

NerdGraphを使って、特定のエンティティのゴールデンメトリクスを照会することができます(例)。

{
  actor {
    entity(guid: "ENTITY-GUID") {
      goldenMetrics {
        metrics {
          query
          title
        }
      }
    }
  }
}

ゴールデンタグの取得

ゴールデンタグは、 GUIDによって要求されたか、 entityTypeによって要求されたかにかかわらず、常に同じ方法で表されます。エンティティに関して最も重要と見なされるタグキーのリストを常に受け取ります。

{
  actor {
    entity(guid: "ENTITY-GUID") {
      goldenTags {
        tags {
          key
        }
      }
    }
  }
}

ゴールデンメトリクスとゴールデンタグのカスタマイズ

環境の特性に応じてゴールデンメトリクスやゴールデンタグを変更したい場合は、アカウントまたはワークロードの2つの異なるコンテキストで上書きすることができます。

アカウント全体で特定のエンティティタイプのゴールデンメトリクスやゴールデンタグを上書きする

この場合、新しいゴールデンメトリックまたは新しいゴールデンタグがすべてのNew Relicに適用され、指定されたエンティティタイプのデフォルトとして新しいメトリックとタグが変換されます。

そのためには、NerdGraphのミューテーションを使って、特定のエンティティのゴールデンメトリクスをオーバーライドすることができます。

mutation {
  entityGoldenMetricsOverride(
    context: {account: ACCOUNT_TO_OVERRIDE_GOLDEN METRICS},
    domainType: {domain: DOMAIN, type: TYPE},
    metrics: [
      {eventId: EVENT_ID,
      select: NRDB_QUERY_SELECT,  
      from: NRDB_QUERY_EVENT,
      where: NRDB_QUERY_WHERE,
      title: TITLE_OF_THE_METRIC,
      facet: FACET, 
      name: NAME_OF_THE_METRIC},
      ...]) {
    errors {
      message
      type
    }
    metrics {
      context {
        account
        guid
      }
      domainType {
        domain
        type
      }
      metrics {
        definition {
          eventId
          facet
          from
          select
          where
        }
        name
        query
        title
      }
    }
  }
}

どこ:

  • domainType:上書きする指標のエンティティタイプ。

  • context:ゴールデンメトリックをフェッチするコンテキスト。この場合、上書きするアカウントを設定する必要があります。

  • metrics:新しいNRDBクエリはゴールデンメトリックとして表示されます。

    • eventId:メトリックでエンティティをフィルタリングするために使用されるフィールド。イベントでエンティティGUIDがどのように定義されているか。
    • select:NRDBクエリのSELECT句。このフィールドは必須です
    • from:NRDBクエリのFROM句。
    • where:エンティティタイプフィールドを識別するための補完的なwhere句。
    • facetFACETへのフィールド。
    • title:ゴールデンメトリックのタイトル。このフィールドはオプションです。
    • name:ゴールデンメトリックの名前。このフィールドは必須です

メトリック入力オブジェクトは、セクションに分割されたNRDBクエリの部分を定義します。これらのセクションの1つは、ゴールデンメトリックとして使用するNRDBイベント内のGUIDを定義するフィールドを識別するために使用されるeventId,です。例えば:

SELECT average(provider.getSuccessfulRequestLatency.Average)
FROM DatastoreSample
WHERE entityGuid IN ('EntityGuid') AND
provider='DynamoDbTable'
FACET entityName TIMESERIES

それは次のように定義されています。

{
eventId: "entityGuid",
from: "DatastoreSample",
where: "provider='DynamoDbTable'",
facet: "entityName",
select: "average(provider.getSuccessfulRequestLatency.Average)",
name: GetItem latency (ms),
title: GetItem latency (ms)
}

結果のオブジェクトでわかるように、 where句にはプロバイダーフィールドのみが含まれます。システムは、デフォルトでeventIdフィールドを含むwhere句を追加します。

このNerdGraphの突然変異を利用して、ゴールデンタグにも同じことができます。

mutation {
  entityGoldenTagsOverride(
    context: {account: ACCOUNT_ID},
    domainType: {domain: "APM", type: "APPLICATION"},
    tags: [{key: "applicationName"} , {key: "environment"} ]) {
    errors {
      message
      type
    }
    tags {
      context {
        account
      }
      domainType {
        domain
        type
      }
      tags {
        key
      }
    }
  }
}

ワークロード内の特定のエンティティタイプからのゴールデンメトリクスの上書き

New Relic のワークロード では、エンティティのグループに関するヘルスとパフォーマンスのデータを集約して表示します。ワークロード内の各エンティティタイプについて表示される時系列チャートは、ワークロードアカウントのゴールデンメトリクスによって定義されます。

特定のワークロードにおける特定のエンティティタイプについて、どの時系列を表示するかをさらにカスタマイズしたい場合は、以下の変異でアカウントのゴールデンメトリクスを上書きします。

mutation {
  entityGoldenMetricsOverride(
    context: {guid: WORKLOAD_TO_OVERRIDE_GOLDEN METRICS},
    domainType: {domain: DOMAIN, type: TYPE},
    metrics: [
      {eventId: EVENT_ID,
      select: NRDB_QUERY_SELECT,  
      from: NRDB_QUERY_EVENT,
      where: NRDB_QUERY_WHERE,
      title: TITLE_OF_THE_METRIC,
      facet: FACET, 
      name: NAME_OF_THE_METRIC},
      ...]) {
    errors {
      message
      type
    }
    metrics {
      context {
        account
        guid
      }
      domainType {
        domain
        type
      }
      metrics {
        definition {
          eventId
          facet
          from
          select
          where
        }
        name
        query
        title
      }
    }
  }
}

各フィールドの詳細については、上記を参照してください。この場合、 contextはワークロードのGUIDです。

カスタムゴールデンメトリクスとゴールデンタグの取得

前のセクションで定義したクエリは、常にデフォルトのゴールデン・メトリクスとゴールデン・タグを返します。カスタムのゴールデンメトリクスやゴールデンタグを取得したい場合は、例えば、クエリで定義したコンテキストを送信する必要があります。

{
  actor {
    entity(guid: INFRA-AWSDYNAMODBTABLE-GUID) {
      goldenMetrics(
        context: {account: ACCOUNT_ID,
        guid: WORKLOAD_ENTITY_GUID}) {
        metrics {
          title
          query
          name
        }
      }
    }
  }
}

金色のタグに

{
  actor {
    entity(guid: INFRA-AWSDYNAMODBTABLE-GUID) {
      goldenTags(context: {account: ACCOUNT_ID, guid: WORKLOAD_ENTITY_GUID}) {
        tags {
          key
        }
      }
    }
  }
}

メトリクスやタグがワークロード内のコンテキストを持っている場合は、両方のコンテキストを同時に送信して問い合わせを行うことができます。APIは、リクエストで定義したコンテキストに基づいて、最も具体的なゴールデンメトリックまたはゴールデンタグを返します。優先順位は、ワークロードとアカウントです。

カスタムメトリクスとゴールデンタグのリセット

カスタマイズしたゴールデンメトリクスが自分にとって意味のないものになった場合、New Relic が定義したデフォルト値に戻すことができます。コンテキストパラメーターに、目的のアカウントまたはワークロードの guid を設定します (guid パラメーター内)。

アカウントのゴールデンメトリクスを復元するには、次のクエリを実行します。

mutation {
  entityGoldenMetricsReset(
    context: {guid: ACCOUNT_TO_OVERRIDE_GOLDEN_METRICS},
    domainType: {domain: DOMAIN, type: TYPE}) {
    errors {
      message
      type
    }
    metrics {
      context {
        account
        guid
      }
      domainType {
        domain
        type
      }
      metrics {
        definition {
          eventId
          facet
          from
          select
          where
        }
        name
        query
        title
      }
    }
  }
}

どこ:

  • domainType:上書きする指標のエンティティタイプ。
  • context:ゴールデンメトリックをフェッチするコンテキスト。この場合、リセットするアカウントを設定する必要があります。

ワークロードのゴールデンメトリクスを復元するには、次のクエリを実行します。

mutation {
  entityGoldenMetricsReset(
    context: {guid: GUID_TO_OVERRIDE_GOLDEN_METRICS},
    domainType: {domain: DOMAIN, type: TYPE}) {
    errors {
      message
      type
    }
    metrics {
      context {
        account
        guid
      }
      domainType {
        domain
        type
      }
      metrics {
        definition {
          eventId
          facet
          from
          select
          where
        }
        name
        query
        title
      }
    }
  }
}

カスタムゴールデンタグにも同様のことができます。

mutation {
  entityGoldenTagsReset(
    context: {guid: WORKLOAD_ENTITY_GUID},
    domainType: {domain: "APM", type: "APPLICATION"}) {
    errors {
      message
      type
    }
    tags {
      context {
        account
        guid
      }
      domainType {
        domain
        type
      }
      tags {
        key
      }
    }
  }
}

想定されたエラー

これらの変異はすべて、操作の結果またはエラーのリストで答えることができます。

これらはすべて、あなたが受け取ることのできる予想されるエラーです。

  • INVALID_CONTEXT:コンテキストが無効です。コンテキストは、アカウントまたはワークロードのGUIDの1つのみにすることができます。両方を使用するか、他の概念を使用するか、ワークロードに属していないGUIDを使用すると、このエラーが発生します。
  • INVALID_DOMAIN_TYPE:ドメインタイプが無効です。
  • LIMIT_EXCEEDED:メトリックの最大量は9です。この制限を超えると、このエラーが発生します。
  • NOT_AUTHORIZED:ユーザーには、このアクションを実行するための権限がありません。
Copyright © 2022 New Relic株式会社。