ゴールデンメトリクス と ゴールデンタグ は、 エンティティ についての情報のうち、そのエンティティにとって最も重要と思われるビットです。この情報を使って、New Relic 全体でエンティティの簡単な概要を表示しています。ゴールデンメトリクスとタグの標準的な定義は、この 公開リポジトリ で確認、貢献することができます。
このドキュメントでは、 NerdGraph を使用して、エンティティのカスタムメトリクスを照会する方法を説明します。
ヒント
NerdGraph APIを使用してエンティティを照会する方法の詳細については、 our tutorial を参照してください。
ゴールデンメトリクスの取得
特定のGUIDまたはGUIDのリストのゴールデンメトリックをフェッチする場合、提供されたクエリは既にフィルタリングされています。結果のクエリは、クエリビルダーでそのまま実行できます。結果のメトリックは、 timeseries
または単一の値のいずれかになります。
これは、GUID ExampleGUID
を使用したAWSDynamoDBテーブルエンティティの1つのゴールデンメトリッククエリの例です。
SELECT average(provider.getSuccessfulRequestLatency.Average)FROM DatastoreSampleWHERE 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句。facet
:FACET
へのフィールド。title
:ゴールデンメトリックのタイトル。このフィールドはオプションです。name
:ゴールデンメトリックの名前。このフィールドは必須です。
メトリック入力オブジェクトは、セクションに分割されたNRDBクエリの部分を定義します。これらのセクションの1つは、ゴールデンメトリックとして使用するNRDBイベント内のGUIDを定義するフィールドを識別するために使用されるeventId,
です。例えば:
SELECT average(provider.getSuccessfulRequestLatency.Average)FROM DatastoreSampleWHERE 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
:ユーザーには、このアクションを実行するための権限がありません。