NerdGraph APIを使用してを作成および管理できます。
概要
カスタム ダッシュボード機能の概要については、ダッシュボード ドキュメントを参照してください。
NerdGraph を使用してダッシュボードを構成する場合、監視対象のアプリ、ホスト、サービスなど、エンティティと見なされる他のものと同様に、ダッシュボードがエンティティと見なされ、独自のエンティティ ID があることを理解しておくと役立ちます。
ダッシュボードにウィジェットとグラフを追加して構成する方法については、「グラフとその他のウィジェットを構成する」を参照してください。
ダッシュボードのCRUD操作
このドキュメントでは、NerdGraph API を使用してダッシュボードを作成、読み取り、更新、削除する方法について説明します (CRUD)。これらの操作によりダッシュボード全体が変更されます。
ダッシュボードの作成
ダッシュボードには少なくとも 1 ページが必要です。1 つ以上のページを含むダッシュボードを作成でき、各ページには 1 つ以上のウィジェットを含めることができます。
- api.newrelic.com/graphiql の NerdGraph GraphiQL エクスプローラーにアクセスします。
- NerdGraph のダッシュボードAPIを使用して、新しいダッシュボードとその設定を作成します。
name
、permissions
などの必須フィールドと少なくとも1ページが含まれていることを確認してください。
ダッシュボードを読む
- api.newrelic.com/graphiql の NerdGraph GraphiQL エクスプローラーにアクセスします。
- エンティティ GUID でダッシュボードを検索するには、
actor > entity()
を使用します。 - NerdGraph のダッシュボードAPIを使用して、既存のダッシュボードとその設定を読み込みます。
この例では、 DASHBOARD_GUID
、読み取りたいダッシュボードの実際の GUID に置き換えます。
query GetDashboardEntityQuery { actor { entity(guid: "DASHBOARD_GUID") { ... on DashboardEntity { guid name description createdAt updatedAt owner { email userId } permissions pages { guid name description createdAt updatedAt widgets { id visualization { id } layout { column row height width } title linkedEntities { guid } rawConfiguration } } variables { name items { title value } defaultValues { value { string } } nrqlQuery { accountIds query } options { excluded ignoreTimeRange showApplyAction } title type isMultiSelection replacementStrategy } } } }}
取得する情報に応じて、クエリ内のフィールドを変更できます。
ダッシュボードを更新する
ダッシュボードを更新するには、1 つの要素のみを更新する場合でも、すべてのページとウィジェットを含むダッシュボードの完全な設定を提供する必要があります。 更新操作はダッシュボードのコンテンツを完全に置き換えます。
重要
ダッシュボードを更新するときに、ページ guid またはウィジェット ID が指定されていない場合、既存のページまたはウィジェットはダッシュボードから削除され、ミューテーションで指定された新しいページまたはウィジェットに置き換えられます。
- api.newrelic.com/graphiql の NerdGraph GraphiQL エクスプローラーにアクセスします。
- 「ダッシュボードを読む」セクションに示すように、NerdGraph のダッシュボードAPIを使用して、エンティティ GUID によってダッシュボードを読み取り、既存のダッシュボード設定を取得します。
- ダッシュボード設定で更新したいフィールドを変更します。
- NerdGraph のダッシュボードAPIを使用して、変更した設定で既存のダッシュボードを更新します。
重要
ウィジェットでFacet Linking
使用している場合、ダッシュボードを読み取るときはフィールドはlinkedEntities { guid }
ですが、ダッシュボードを更新するときはlinkedEntityGuids: [ "GUID" ]
使用する必要があります。
ダッシュボードの削除
ダッシュボードを削除するには、削除するダッシュボードのエンティティ GUID を指定する必要があります。この操作は、ダッシュボードを回復できる論理削除を実行します。
- api.newrelic.com/graphiql の NerdGraph GraphiQL エクスプローラーにアクセスします。
- NerdGraph のダッシュボード API を使用して、エンティティ GUID によってダッシュボードを削除します。
status
とerrors
をチェックして削除を確認します。
ダッシュボードの削除を取り消す
ダッシュボード エンティティ GUID を指定すると、以前に削除されたダッシュボードを復元できます。カスタムタグは回復できません。
- api.newrelic.com/graphiql の NerdGraph GraphiQL エクスプローラーにアクセスします。
- NerdGraph のダッシュボード API を使用して、エンティティ GUID によってダッシュボードの削除を解除します。
errors
をチェックして削除の取り消しを確認します。
ダッシュボードページの操作
この操作はダッシュボードの特定のページを変更します。
ダッシュボードページを更新する
ダッシュボード ページ エンティティ GUID を指定すると、既存のダッシュボードの 1 ページを更新できます。メタデータからウィジェット設定まで、完全で更新されたダッシュボード ページ要素を指定する必要があります。
- api.newrelic.com/graphiql の NerdGraph GraphiQL エクスプローラーにアクセスします。
- 「ダッシュボードを読む」セクションに示すように、NerdGraph のダッシュボードAPIを使用して、エンティティ GUID によってダッシュボードを読み取り、既存のダッシュボード設定を取得します。
- ダッシュボードから更新するページを識別して抽出します。
- ページ内で更新するフィールドを変更します。
- ページを変更するには
dashboardUpdatePage()
を使用します。 errors
がある場合はチェックしてください。
重要
ページを更新するときにウィジェット ID が指定されていない場合、既存のウィジェットはダッシュボードから削除され、ミューテーションで指定された新しいウィジェットに置き換えられます。
ヒント
id
フィールドなしでwidgets
配列に新しいウィジェットを含めることで、ページに新しいウィジェットを追加できます。widgets
配列からウィジェットを省略することで、ページからウィジェットを削除できます。
ページ内のウィジェットを更新します
ダッシュボード ページ エンティティ GUID を指定して、ダッシュボード ページの既存のウィジェットのセットを更新できます。更新するウィジェットのセットとその完全な設定を指定する必要があります。
重要
この操作では、ページにウィジェットを追加したり、ページからウィジェットを削除したりすることはできません。ウィジェットを追加または削除するには、ダッシュボード ページの更新操作を使用します。
- api.newrelic.com/graphiql の NerdGraph GraphiQL エクスプローラーにアクセスします。
- 「ダッシュボードを読む」セクションに示すように、NerdGraph のダッシュボードAPIを使用して、エンティティ GUID によってダッシュボードを読み取り、既存のダッシュボード設定を取得します。
- ダッシュボードから更新するページ内のウィジェットを識別して抽出します。
- ウィジェットで更新するフィールドを変更します。
- ウィジェットを変更するには
dashboardUpdateWidgetsInPage()
使用します。 errors
がある場合はチェックしてください。
mutation UpdateWidgetsInPage( $pageGuid: EntityGuid! $widgets: [DashboardUpdateWidgetInput!]!) { dashboardUpdateWidgetsInPage(guid: $pageGuid, widgets: $widgets) { errors { type description } }}
この突然変異で使用する変数は次のとおりです。
{ "guid": "PAGE_GUID", "widgets": [ { "id": "WIDGET_ID", "visualization": { "id": "viz.billboard" }, "layout": { "column": 1, "row": 1, "height": 3, "width": 4 }, "title": "Updated Total Transaction Count", "linkedEntityGuids": [], "rawConfiguration": { "nrqlQueries": [ { "accountIds": [1], "query": "SELECT count(*) FROM Transaction" } ] } } ]}
その他の事業
操作方法 | GraphQLの操作タイプ | メモ |
---|---|---|
| 突然変異 | ダッシュボード ページのスナップショット操作を作成します。特定のダッシュボード ページ エンティティ GUID のパブリック URL を作成できます。生成されたパブリック URL 内の静的スナップショットの形式でダッシュボード ページにアクセスできるようになります。作成された URL は作成後 3 か月で廃止されます。詳細については、 「API 経由でダッシュボードのスナップショットを管理する」を参照してください。 |
| クエリ | すべてのライブ URL を一覧表示する操作。アクセスできるライブ URL の完全なリストを取得できます。ライブ URL は、最新のデータやライブ データを含むダッシュボード ページとウィジェットを公開できるメカニズムです。詳細については、 「API 経由でライブ チャートの URL を管理する」を参照してください。 |
| 突然変異 | ウィジェットのライブ URL 操作を取り消します。以前に作成したウィジェットのライブ URL を取り消すことができます。その結果、ライブ URL は一般には公開されなくなります。詳細については、 「API 経由でライブ チャートの URL を管理する」を参照してください。 |
| 突然変異 | 公開アクセス可能なライブ ダッシュボード URL を作成します。詳細については、「公開共有ダッシュボード URL の作成、更新、取り消し」を参照してください。 |
| 突然変異 | 公開アクセス可能なライブ ダッシュボード URL の有効期限を更新します。詳細については、「公開共有ダッシュボード URL の作成、更新、取り消し」を参照してください。 |
| 突然変異 | 公開アクセス可能なライブ ダッシュボード URL を取り消します。詳細については、「公開共有ダッシュボード URL の作成、更新、取り消し」を参照してください。 |
| 突然変異 | 認証ドメイン マネージャーだけが、このミューテーションを使用してアカウントのLive URL Creationポリシーを有効または無効にすることができます。 ユーザーは、このポリシーが有効になっているアカウントのダッシュボードのライブ URL を作成できます。 |
クロスアカウント ダッシュボード
NerdGraph を使用すると、複数の New Relic アカウントからデータのクエリを作成できます。アカウント ID をaccountIds
配列に追加することで、複数のアカウントのデータを使用してダッシュボードを作成することもできます。
クロスアカウント ダッシュボードの作成例を次に示します。
制限
ダッシュボードのプロパティの一部に設定できる値を制限しました。これにより、ダッシュボードの使い勝手を高めつつ、良好な状態を保つことができます。
ダッシュボードの制限
制限 | 価値 |
---|---|
ダッシュボードの最大ページ数 | 25 |
ダッシュボード名の最大長 | 255 |
ダッシュボードの説明文の最大長 | 1024 |
ダッシュボードのページ制限
制限 | 価値 |
---|---|
ダッシュボードページ内のウィジェットの最大数 | 150 |
ダッシュボードのページ名の最大長 | 255 |
ダッシュボードページの説明文の最大長 | 1024 |
ウィジェットの制限
制限 | 価値 |
---|---|
ウィジェットタイトルの最大長 | 255 |
1つのウィジェットにリンクされたエンティティの最大数 | 1 |
1つのウィジェット内の最大クエリ数 | 20 |
ウィジェットの最大レイアウト欄 | 12 |
ウィジェットの最小レイアウト欄 | 1 |
ウィジェットの最小レイアウト列 | 1 |
ウィジェットの最大レイアウト幅 | 12 |
ウィジェットの最小レイアウト幅 | 1 |
ウィジェットの最大レイアウト高さ | 32 |
ウィジェットの最小レイアウト高さ | 1 |
一級市民としてのエラー
すべてのダッシュボード・ミューテーションは、実行時にエラーを求める方法を提供しています。つまり、ダッシュボードの変異を実行し、その応答をチェックすることで、予想される潜在的な問題を検出することができます。すべてのエラーにはタイプと説明があり、問題の原因が何かを特定するのに役立ちます。
これらは、事前に把握している想定内のエラーであることを念頭に置いてください。また、標準の GraphQL errors field で返ってくる予期せぬエラーについても確認しておく必要があります。