【New Relic】地図上で見るシステム状況!Map Widgetの紹介

記事タイトルとURLをコピーする

はじめに

こんにちは、マネージドサービス部の福田です。
今回はNew RelicのMap Widgetを活用して、システムやユーザーの状況を地理的に可視化する方法をご紹介します。

Map Widgetとは

Map Widgetは、New Relicが提供する「Custom visualizations」機能の一つで、緯度・経度を含むデータを地図上に表示することができます。

この機能を使えば、システムやユーザーの状態を地理的な観点から把握でき、問題箇所やトラフィックの傾向を迅速に特定することが可能になります。
追加ライセンス費用なしで利用できます

github.com

参考例:各地域からのWebサイトへの応答速度把握

Map Widgetのメリット

ユーザー体験の地域別分析

サーバーが日本全国に分散している場合、それぞれのサーバーがどこにあるか、そのパフォーマンスがどうなっているかを一目で確認できることは重要です。
Map Widgetは、これらの情報をリアルタイムで地図上に表示し、異常が発生した地域やサーバーの把握がしやすくなります。

障害発生時の迅速な対応

サーバーの応答時間やエラーレートなどを地図上で色分けして表示することで、問題が発生している箇所がすぐにわかります。
例えば、応答時間が長いサーバーは赤色で表示し、正常なサーバーは緑色で表示する、といった設定が可能です。

実装例

  • 店舗システムの監視

    • POSシステムの稼働状況をリアルタイムで地図上に表示
    • システム障害の影響範囲を地図上で即座に把握
  • 物流ネットワークの最適化

    • 温度管理システムの異常を地図上でアラート表示
    • 倉庫の在庫管理システムの稼働状態を監視
  • Webサービスのパフォーマンス分析

    • Core Web Vitalsの地域別可視化により、LCPやFIDなどの重要指標を地図上で色分けして表示
    • ページ読み込み時間の地域差を把握し、CDNの最適化やサーバー配置の検討に活用
    • JavaScriptエラーの発生率を地域別にマッピングし、特定地域での問題を特定

Map Widgetの導入方法

Map Widgetの有効化

Map Widgetを使用するために「Labs Widget Pack」を有効化する必要があります。
左メニューの「Apps」から「Custom visualizations」を検索して有効化します。この機能は追加ライセンス費用なしで利用できます

アクセス方法

左メニューの「Apps」(または「All Capabilities」からApps)を開き、Custom visualizationsから「Map Widget」を選択します。

Map Widgetの設定項目について

New Relicの公式ドキュメントでは各項目の詳細な情報が見当たらなかったので
ざっくりまとめてみました。(おそらく内容あっているはず)

活用例:ブラウザモニタリングによるアクセス元の可視化

概要

ブラウザモニタリングで収集したユーザーアクセス元データ(緯度・経度)をMap Widgetで可視化します。
この方法により、Webページへのアクセス状況やパフォーマンス指標(例:応答時間)を地域ごとに把握できます。

ブラウザモニタリングについては以下ブログを参考にしていただければと思います。

blog.serverworks.co.jp

手順

ブラウザモニタリングの設定

New Relic Browser AgentをWebページに組み込むことで、ユーザーのブラウザデータ(位置情報やパフォーマンス指標など)が収集されます。
以下はHTMLファイルへのスクリプト挿入例です

<script type="text/javascript">
  // New Relic Browser Agent Script
</script>

これにより、ユーザーの位置情報(都市名、緯度・経度)や応答時間などがNew Relicに送信されます。

Map Widgetで設定

// NRQL
以下のNRQLクエリでアクセス元データとパフォーマンス指標(応答時間)を取得します:
FROM PageView 
SELECT latest(city) as 'name:City', 
       max(duration) as 'duration:number' 
FACET string(asnLatitude, precision: 5) as 'lat', 
      string(asnLongitude, precision: 5) as 'lng' 
LIMIT MAX

このクエリでは以下が取得されます

- **都市名**(`city`):ユーザーのアクセス元
- **最大応答時間**(`duration`):各都市ごとのパフォーマンス指標
- **緯度・経度**(`asnLatitude`/`asnLongitude`):地図上で表示するための座標データ


// 地図設定例
Initial latitude: 36.2048  // 日本中心
Initial longitude: 138.2529  // 日本中心
Initial zoom: 5  // 日本全体が見えるズームレベル

// 表示範囲制限(日本国内)
Max bounds - southwest: 20, 122
Max bounds - northeast: 46, 154

マーカー設定による色分け

応答時間(duration)によってマーカーの色を変える設定例です:

// 応答時間によるマーカー色変更設定
Priority: 1
Target attribute: duration
Value above: 2  // 応答時間が2秒以上の場合
Marker color: red  // 赤色

これにより以下が実現します

  • 応答時間が短い地域は青色、長い地域ほど赤色になるため、一目で問題箇所がわかるようになります。

作成したダッシュボード例


おまけ

おそらくLookup Tableを使用することで以下のようなことが実現できるかと思います。

  • ICMP PING監視で収集したIPアドレスに対応する地理情報(国名、都市名、緯度・経度)をMap Widget上への表示
    例:全国に存在するオンプレ機器のパフォーマンスをMap Widget上への表示

ICMP PING監視については以下ブログをご参考にしていただければと思います。

blog.serverworks.co.jp

想定している流れ

  • Lookup TableへIPアドレスと対応する地理情報を記載したCSVファイルをアップロードする。
  • NRQLクエリでログデータとLookup TableをJOIN句で結合し、IPアドレスから地理情報を取得

おわりに

New RelicのMap Widgetは、システムやユーザー状況を地理的観点から可視化することが可能になります。
個人的にはLookup Tableとの連携をすることでオンプレ機器のパフォーマンスも地図上に表示できるのでは..!!と思っておりますのでまたの機会にブログ等で紹介できればと考えております。

本記事がお役に立てば幸いです!

宣伝

弊社では、お客様環境のオブザーバビリティを加速するための伴走型のNew Relic導入支援サービスなどもご提供しております。もしご興味をお持ちの方は、こちらのサービスご紹介ページの一番下にあるお問合せフォームよりお問合せ頂けましたら幸いでございます。

福田 圭 (記事一覧)

マネージドサービス部

2023 New Relic Partner Trailblazer

X @soundsoon25