システムの問題把握から原因分析まで数クリックでドリルダウン！効率的にトラシュー！！

# はじめに

オブザーバビリティプラットフォームのNew Relicでは、インフラからアプリケーション、ユーザー体験までシステムのあらゆるデータを収集してグラフで可視化することできます。さらにダッシュボード機能を利用することでシステムの構成や運用に必要なグラフを集約して可視化することができます。

例えば、ダッシュボード上のグラフからアプリケーションでエラーが大量に発生していることを把握し、詳細の原因分析をApplication Performance Monitoring（APM)やInfrastructure、Browserの分析画面にドリルダウンして見ていくことができますが、グラフから関連するアプリケーションやインフラストラクチャの分析画面に数クリックでドリルダウンできる機能アップデートがありましたのでご紹介いたします。

:::note info
この機能に関する詳細はこちら

[New Relic アップデート(2023年11月)
](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202311  "New Relic アップデート(2023年11月)")

[New Relic アップデート一覧
](https://newrelic.com/jp/blog/nerdlog/new-relic-update "New Relic アップデート一覧")
:::

# どういうアップデートか
## APM
例えば、アプリケーションでエラーが発生している状況をグラフで確認し、グラフ上に表示される「Clik to learn more」をクリックすると、関連するエンティティ（New Relicにデータを送信するアプリケーションやホストなど）の分析サマリー画面やログ、トレースの画面に数クリックで遷移し、エラーの原因分析を進めることができます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3485441/1b0a65ab-90c4-acf4-8a95-0232d9527f17.png" width="80%">
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3485441/ce4eb9c6-80f8-5526-80e3-14679844e925.png" width="90%">
## Infrastructure
インフラの場合は、例えばCPUなどサーバーリソースの消費が激しい傾向がグラフから見られた時に、関連するホストの詳細分析画面とホストが出力しているログの分析画面に数クリックで遷移して、原因分析を進めることが可能です。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3485441/2690e90d-f85f-a785-e191-5471989b9a54.png" width="90%">
## Browser
Browserでは例えば、ページのロードが遅い傾向がグラフで見えた時に、ブラウザーの分析画面やフロントエンドアプリケーション起点でのトレースの分析画面、ブラウザのバックエンドで稼働しているアプリケーションのログの分析画面に遷移することができます。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3485441/f784549f-81bd-0cf1-20ca-d461da464e67.png" width="90%">
# 設定方法
NRQLクエリのWHERE句で以下のどれかを使用してエンティティを明示的に指定する必要があります。
|  属性名  |  内容  |
| ---- | ---- |
|  entityGuid,entity.guid  |  各エンティティに割り当てられる一意のID  |
|  entityName,entity.name  |  各エンティティのアプリケーション名やホスト名など  |
|  appName  |  APMやBrowserのアプリケーション名  |

また、時系列のグラフである必要があるため、NRQLクエリ内で[TIMESERIES句](https://docs.newrelic.com/jp/docs/nrql/nrql-syntax-clauses-functions/#sel-timeseries)を使用する必要があります。幾つかNRQLの例を紹介します。

```sql
SELECT
    average(host.cpuPercent) AS 'CPU'
FROM
    Metric
WHERE
    entity.guid in (
    'MTYwNjg2MnxJTkZSQXxOQXwtMjEzNDk0NzA2ODYzMTY5NjE5NQ',
    'MTYwNjg2MnxJTkZSQXxOQXwtNzkwMTMwMzYxNDk4OTM1OTA1Nw',
    'MTYwNjg2MnxJTkZSQXxOQXw1NTMwODEwNDI3Mjg4NTg1MDI0',
    'MTYwNjg2MnxJTkZSQXxOQXwtNDY3NDMwNTc2NzYyNTA5ODkyMg',
    'MTYwNjg2MnxJTkZSQXxOQXw2NjIxODI5NTUyNzg4MjI4NTY2',
    'MTYwNjg2MnxJTkZSQXxOQXwyOTMzNzA2ODkyODk5NzIzMDAz',
    'MTYwNjg2MnxJTkZSQXxOQXwyMjU5MzE3NjcxNDM5MDU5ODQy'
    )
FACET entity.name
TIMESERIES SINCE 30 minutes ago
```
```sql
SELECT
    sum(apm.service.error.count['count']) / count(apm.service.transaction.duration) AS 'Web errors'
FROM
    Metric
WHERE
    appName = 'WebPortal'
AND transactionType = 'Web'
SINCE 30 minutes AGO TIMESERIES
```
```sql
SELECT
    average(queueDuration) AS 'Request queueing',
    average(webAppDuration) AS 'Web application',
    average(networkDuration) AS 'Network duration',
    average(domProcessingDuration) AS 'DOM processing',
    average(pageRenderingDuration) AS 'Page rendering'
FROM
    PageView
WHERE
    entityGuid = 'MTYwNjg2MnxCUk9XU0VSfEFQUExJQ0FUSU9OfDQzMTkyMzEx'
SINCE 30 minutes AGO TIMESERIES
```

# まとめ
今回のアップデートで時系列のグラフから数クリックで各詳細分析の画面に遷移することができるようになりました！これにより以下の効果が期待できます。
- トラブルシューティングの迅速化
- 適切なデータをこれまで以上に簡単にドリルダウンして分析

NRQLのWHERE句の条件を設定するだけで簡単に設定できますので是非お試し下さい！

:::note info
この機能に関する詳細はこちら

[New Relic アップデート(2023年11月)
](https://newrelic.com/jp/blog/nerdlog/new-relic-update-202311  "New Relic アップデート(2023年11月)")

[New Relic アップデート一覧
](https://newrelic.com/jp/blog/nerdlog/new-relic-update "New Relic アップデート一覧")
:::
:::note info
無料のアカウントで試してみよう！
[New Relic フリープランで始めるオブザーバビリティ！](https://qiita.com/ktst79/items/5ee74b34e6adb8a7a6fa)
:::
:::note info
[New Relic株式会社のQiita Organization](https://qiita.com/organizations/newrelic)では、
新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。
:::