LoginSignup
0
0

[小ネタ] NewRelic のダッシュボード一覧を取得する

Posted at

発端

ダッシュボードの棚卸しをするために、アカウントをまたがってすべてのダッシュボードを一覧化したかったんですが、CSV でダウンロードしたり NRQL の情報引き出し先エンティティがわからなかったため、 NerdGraph を使って解決しました。
本記事は、一覧化までの記録です。

NerdGraph で NewRelic のダッシュボードを一覧化

ググって最初に検索に引っかかったのは actor.dashboard の方でしたが、ここには liveUrls という属性しかぶら下がっていませんでした。

actor.entity(guid: String) で GUID を指定したところ目的の情報が出力できたので、この一覧を取るには・・・ということで actor.entitySearch にたどり着きました。

GraphQL クエリはこんな感じ。

nr_dashboards.graphql
{
  actor {
    entitySearch(queryBuilder: {
      type: DASHBOARD
    }) {
      results(cursor: "<nextCursor値>") {
        nextCursor
        entities {
          ... on DashboardEntityOutline {
            name
            dashboardParentGuid
            permalink
            account {
              name
            }
          }
        }
      }
    }
  }
}

dashboardParentGuid が null になっているのがダッシュボード本体、 not null がダッシュボードのページを表します。
200 件を超えるとページングが発生するので、 2 ページ目以降はレスポンスで返ってきた nextCursor を指定する必要があります。

TSV への加工

GraphQL のレスポンス (JSON) を以下のワンライナーで加工してスプレッドシートに貼り付けました。

$ jq -r '.data.actor.entitySearch.results.entities[] | [.name, .account.name, .dashboardParentGuid, .permalink] | @tsv' result.json
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0