概要
New RelicのErrors Inboxは、カスタム属性を活用することでエラーの影響を受けているユニークユーザー数を簡単に確認することが可能です。またその値を元にしたユーザーへの影響度を基準としてエラーグループをランキング形式で表示してくれるため、対応の優先順位付けが容易になります。
今回のアップデートではこれまで使用してきたカスタム属性を設定するAPIを使用せずにユーザーを識別するIDを設定する方法が提供されました。
このアップデートの詳細はこちら。
New Relic アップデート(2023年3月)
New Relic アップデート一覧
では実際にやっていきましょう。
設定手順
Javaアプリケーションを例に紹介します。ユーザーを識別するIDの設定は非常に簡単です。
まずはドキュメントを確認していきましょう。
setUserId(java.lang.String userId)
この関数にユーザーを識別するIDを設定することでTransactionイベントにカスタム属性enduser.id
が追加される仕様です。
実際にこの関数を使ってみましょう。
import com.newrelic.api.agent.NewRelic;
@Controller
public class XXXXXXXXXController {
@RequestMapping("/XXXXXXXXX")
public String xxxxxxxxx(...) {
... ( コントローラのロジック )
NewRelic.setUserId(userid);
...
}
}
これでTransactionイベントにカスタム属性enduser.id
が設定されます。そしてこのトランザクションの中でエラーが発生した場合には、UserImpactedとしてユニークユーザー数がカウントされるようになります。
確認
それでは設定されていることを確認していきましょう。
カスタム属性enduser.idがTransactionイベントに設定されている
まずは、Transactionイベントにenduser.id
が設定されていることを確認します。アプリケーション名appName
とカスタム属性enduser.id
でグループ化してトランザクションの数を取得するNRQLを使っていきます。
SELECT count(*)
FROM Transaction
FACET appName, enduser.id SINCE 1 day ago
Enduser.Id
の列に今回設定したuseridが設定されていることが確認できました。
Errors(errors inbox)のTriageタブでUserImpactを確認
それではエラーが発生した際のユーザーへの影響度(UserImpact)がErrors(errors inbox)のTriageタブに表示されていることを確認していきましょう。
New Relic APMの画面でメニューからErrors(errors inbox)を開きます。
エラーグループの一覧のUsersの列にUserImpactが表示されています(赤枠)。エラーの詳細画面で属性値も確認してみましょう。
左のパネルにはOccurrencesにエラーが発生した件数を時系列のチャートで表示しています。そしてそのチャート上でUsers Impactedがユニークユーザー数を表現しています。
右のパネルのOccurrencesタブでエラーに関連するスタックトレースや分散トレーシング、ログ、属性値が確認できます。今回追加したカスタム属性enduser.id
もAttributesの一覧で設定された値が確認できます。
エラーの影響を受けるユーザーの数をNRQLで取得
エラーグループの影響を受けるユーザーの数は、newrelic.error.group.userImpact
という名称のメトリックデータとして記録されます。
SELECT uniqueCount(newrelic.error.group.userImpact)
FROM Metric
WHERE metricName='newrelic.error.group.userImpact'
newrelic.error.group.userImpact
は、Errorsでグループ化されたエラーグループのerror.group.guid
とエラーが検出しているAPMのentity.guid
でグループ化できます。
このNRQLを活用するとエラーの影響を受けるユーザーの数に閾値を設定してアラートをトリガーすることが可能です。
まとめ
New RelicのErrors Inboxの最新アップデートにより、ユーザーへのエラーの影響度を簡易に把握できるようになりました。Javaアプリケーションでの設定手順を紹介しましたが、APM(Go、 .Net、 Node.js、 Python、 Ruby)、Browser、 MobileでもsetUserの関数からenduser.id
の設定が可能です。こちらのドキュメントで詳細が確認できます。ぜひアプリケーションの環境に合わせてご利用ください。
このアップデートの詳細はこちら。
New Relic アップデート(2023年3月)
New Relic アップデート一覧