5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

New RelicでカスタムJMX YAMLを使ってみた

Last updated at Posted at 2024-11-29

New RelicでのJMX取得方法

New Relicでは、基本的なメトリクスについては、デフォルトでJMXの値を取得しています。
デフォルトで取得できるメトリクスはこちらを参照してください。

補足:JMXとは?

JMX(Java Management Extensions)とは、Javaアプリケーションで動作状況をモニタリングし、管理するための標準的なフレームワークです。JMXを使用すると、リソース(アプリケーション、システムオブジェクト、デバイスなど)を管理するためのツールを開発および統合することが容易になります。

記載されていないメトリクスについても、カスタムJMX YAMLを作成することで、New Relicに連携できます。

カスタムJMX YAMLを使ってNew Relicに連携してみた

今回は、公式手順に従って、AWS上に構築したWebLogicサーバから、New Relicがデフォルトで取得していないJMXであるPending RequestsをカスタムJMX YAMLを使ってNew Relicに連携してみました。

補足:WebLogicのPending Requestsとは?

WebLogicの優先度キューにある、保留中のユーザー・リクエストの数です。優先度キューには、内部サブシステムやユーザーからのリクエストが含まれています。これはユーザー・リクエストのみの数です。

WebLogicの管理画面では、以下から確認できます。

Environment > Servers > Monitoring > Threads > Pending Requests

image.png

環境

  • クラウド:AWS
  • サーバ:EC2
  • OS:Red Hat Enterprise Linux 9.3
  • ミドルウェア:WebLogic 12.2.1.4.0
  • 取得するJMXパラメタ:PendingUserRequestCount

前提

  • WebLogicのインストールが完了していること
  • New Relic側にWebLogicのIntegrationが完了していること

ステップ1. ディレクトリ作成

対象のアプリのagent(newrelic.jar)が保存されているフォルダにextensionsというディレクトリを作成します。

mkdir /opt/newrelic/extensions

ステップ2. カスタムJMX YAML作成

ステップ1で作成したディレクトリの配下にyaml形式のファイルを配置します。
ファイル名は拡張子が.ymlであれば任意です。今回はweblogic.ymlとします。

例:/opt/newrelic/extensions/weblogic.yml
name: WebLogicCustom
version: 1.0
enabled: true
jmx: 
  - object_name: com.bea:ServerRuntime=AdminServer,Name=ThreadPoolRuntime,Type=ThreadPoolRuntime
    metrics:
      - attributes: PendingUserRequestCount
        type: simple

それぞれのパラメタの設定方法を説明します。

key value 補足
name WebLogicCustom 任意
version 1.0 任意
enabled true true(有効) or false(無効)から選択
object_name (Object名)    JConsoleなどを使って確認
attributes (属性名)     JConsoleなどを使って確認
type simple simple(値)とmonotonically_increasing(増分値)の2つから選択 

object_nameとattributesはJConsoleから確認しましょう。

補足:各パラメタの設定の仕方の詳細は、公式ドキュメントを参照してください。

ステップ3. カスタムJMX YAMLファイルの読み込み確認

ログレベルの変更

エージェントがYAMLファイルを読み込んでいることを確認するため、newrelic.ymllog_levelinfoからfinerに変更します。

/opt/newrelic/newrelic.yml
# The agent uses its own log file to keep its logging
# separate from that of your application.  Specify the log level here.
# This setting is dynamic, so changes do not require restarting your application.
# The levels in increasing order of verboseness are:
#   off, severe, warning, info, fine, finer, finest
# Default is info.
- log_level: info
+ log_level: finer

警告
finerはより詳細なログを出力するログレベルです。YAMLファイルが読み込まれていることが確認できたら、infoにログレベルを戻しておきましょう。

アプリケーションの再起動

設定変更を反映するため、WebLogicを起動します。
※既にに起動している場合は、停止して起動してください。

起動
sh $DOMAIN_HOME/startWebLogic.sh

YAMLファイルの読み込み確認

newrelic_agent.logファイルに、ファイルが読み込まれたことを示す以下が含まれていることを確認します。

weblogic.ymlが読み込まれていることを確認
Reading custom extension file /opt/newrelic/extensions/weblogic.yml

補足
もし、このステートメントが見つからない場合は、YAMLファイルの場所を確認しましょう。また、プロセスにファイルに対する読み取りアクセス権があることも確認しましょう。

ファイルに以下のステートメントが含まれることを確認します。

WebLogicCustomがextentionとして追加されたことを確認
Adding extension with name WebLogicCustom and version 1.0

補足
このステートメントが見つからない場合は、ドキュメントが正しく解析されていることを確認しましょう。より高いバージョン番号で、同じ名前の別の拡張ファイルがあるかどうかも確認しましょう。

ステップ4. New Relic側での確認

APM & Services > (App Name) > Metrics Explorer を選択し、Metricで"jmx"と検索すると、追加したJMXがメトリクスとして連携されていることが確認できます。

image.png

Add To dashboardからダッシュボードに追加することもできます。
image.png

その他のメトリクスも同様にカスタムJMX YAMLファイルにAttributeを追加し、Dashboardにまとめるとこのようになります。
image.png

まとめ

今回は、カスタムJMX YAMLを使って、New Relicへのメトリクス追加を試してみました。
YAMLファイルを作成することで、簡単にNew Relicでデータが確認できるようになりました。

無料のアカウントで試してみよう!
New Relic フリープランで始めるオブザーバビリティ!

New Relic株式会社のX(旧Twitter)Qiita Organizationでは、新機能を含む活用方法を公開していますので、ぜひフォローをお願いします。

5
6
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
5
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?