New Relic INSIGHTSのダッシュボードの作例（その1）

# はじめに
今回はNew Relic INSIGHTSのダッシュボードの作例について取り上げます。

New Relicを知っている人がNew Relicと聞いて最初に思い浮かべるのはAPMでしょう。最初にINSIGHTSを思い浮かべる人は少ないと思います。APM以外は付録のようにみなされがちです。しかもINSIGHTSの話題は最後の方です。紹介する側の都合もあってそうなっています。ですがもっと表だって注目されてもいいと個人的には考えます。

# New Relic INSIGHTSとは？
New Relic INSIGHTSはダッシュボードサービスです。

何かの指標・KPIをデジタルサイネージのように表示させておくサービスになります。例えば運用現場に大型のディスプレイを設置しておいて、リアルタイムの訪問者数の増減を多くのスタッフの目に留まるようにするにするという使い方ができます。ECサイトであれば訪問者の滞在時間が売上に影響することがあります。訪問者数が著しく変動したとき原因調査を行うためのトリガーになります。

New Relic INSIGHTSはAPMのAgentが集めてくる情報をもとにお好みのダッシュボードを作成する機能です。簡単な操作で作れます。さあ作ってみませんか！

・・・といわれても、実際真っ白な状態で何からどう手をつけてよいのかわからないのが本音ではないでしょうか。どんなに優れたツールも、何の役に立つのかピンとこないものは現場で使われません。しかし埋もれさせておくには勿体ない。具体的なサンプルをご紹介しますので活用アイデアのヒントになれば幸いです。

# 活用例
とりあえずダッシュボードで何を表示させよう？という話です。New Relic INSIGHTSはアプリやインフラ監視のためのダッシュボード作成にとどまらず、Google Analyticsのようなダッシュボードも作れたりします。だた、今回は①で使えそうなサンプルをご提示します。②以降は次回以降とします。（長くなる為）

①アプリ監視、ブラウザ監視、DB監視、外形監視など
②ビジネス分析
③AWS環境などの監視

# ダッシュボード作成手順
ダッシュボードを作成するには、New Relic INSIGHTSの画面に移動し、All dashbordsの右のプラスボタンをクリックして適当なダッシュボードを新規作成します。ここでは"APP"と名付けました。

![01.jpg](https://qiita-image-store.s3.amazonaws.com/0/150932/bc13f675-db75-9bdd-21ea-6223ce8434e1.jpeg)

NRQL文を入れて"Run"。追加対象となるグラフが表示されます。グラフの形は円グラフや棒グラフ、表形式など色々選べます。忘れずにtitleも入れておきましょう。"Add to this dashboard"を押下するとダッシュボードにグラフが追加されます。

NRQLの考え方・使い方自体はそれほど難しいものではありませんが、何もないところから考え出すのは苦しいものです。私の場合はそうでした。サンプルがあればとっかかりやすいと思いますので以下に挙げます。

# NRQLサンプル
アプリ監視にまつわるグラフの元となるNRQLを集めてみました。是非お試しください。

![02.jpg](https://qiita-image-store.s3.amazonaws.com/0/150932/50005be0-836c-4884-3b6c-b6ceca39a6a6.jpeg)


## Response Code（円グラフ）
1日あたりのHTTPののステータスコードの割合。
```
NRQL> SELECT count(*) FROM Transaction since 1 day ago FACET  httpResponseCode
```

## Errors By UserAgent（棒グラフ）
UserAgentごとのエラー。
```
NRQL> SELECT count(*) FROM TransactionError FACET `request.headers.userAgent` LIMIT 25 SINCE 7 days AGO
```

## Device Types（円グラフ）
アクセス元の端末種別。デスクトップ、モバイル、タブレット等を識別。
```
NRQL> SELECT count(session) FROM PageView FACET deviceType
```
　
## Browser OS Type （棒グラフ）
アクセス元のOSの種別。WindowsとMacのどちらが多いかなど。
```
NRQL> SELECT count(session) FROM PageView FACET userAgentOS SINCE 1 day ago
```
　
## Browsers（円グラフ）
アクセス元のブラウザの種別。Chromeが多いですね。
```
NRQL> SELECT count(session) FROM PageView FACET userAgentName
```

## Checks by Location
アクセス元の場所。東京からのアクセスは6番目であることがわかります。 
```
NRQL> SELECT count(*) FROM SyntheticCheck SINCE 1 week ago FACET locationLabel
```

![03.jpg](https://qiita-image-store.s3.amazonaws.com/0/150932/848809cc-8622-a437-99a1-fc445c0b905f.jpeg)


## Pageview Count（数字）
1時間前からのページビュー数がわかります。
```
NRQL> SELECT count(*) FROM PageView since 1 hour ago
```

## Pages Per Session （数字）
```
NRQL> SELECT count(pageUrl) / uniqueCount(session) as 'Average Pages per Session' from  PageView since 1 day ago  COMPARE WITH 1 day ago
```

## Worst DB offenders（表）
```
NRQL> SELECT sum(databaseDuration) as 'Time', count(*) as 'Count', percentile(databaseDuration, 99, 80, 50) as 'DB' FROM Transaction FACET name SINCE 1 week ago LIMIT 15
```

## Accumulated DB Time by Trans（棒グラフ）
```
NRQL> SELECT sum(databaseDuration) FROM Transaction FACET name SINCE 1 week ago LIMIT 20
```

## Worst App offenders（表）
```
NRQL> SELECT sum(duration) as 'App', count(*) as 'Count', percentile(duration, 99, 80, 50) as 'App' FROM Transaction FACET name SINCE 1 week ago LIMIT 5
```

## Transaction Time (DB inclusive)（棒グラフ）
```
NRQL> SELECT sum(duration) FROM Transaction FACET name SINCE 1 week ago LIMIT 7
```

次回以降、ビジネス分析やAWS等の作例を挙げたいと思います。ご期待ください。
今回は以上になります。