New RelicのAPM監視を、EC2上に構築した検証用アプリ(Python)に導入してみた

New RelicのAPM監視を、EC2上に構築した検証用アプリ(Python)に導入してみた

Clock Icon2024.08.28

こんにちは、ゲームソリューション部のsoraです。
今回は、New RelicのAPM監視を、EC2上に構築した検証用アプリ(Python)に導入してみたことについて書いていきます。

APM監視の導入

検証用のアプリは以下で構築したもの(Odoo)を使用します。
https://dev.classmethod.jp/articles/ec2-oss-odoo/

New RelicのAPM監視導入は以下です。
Pythonの仮想環境を使用しているため、仮想環境にてNew Relicのインストールなどを行います。

# odooユーザへの切り替え
sudo su - odoo_user

# 仮想環境への移動
cd /opt/odoo
source odoo-venv/bin/activate

# New Relicのインストール
pip3 install newrelic

# New Relicの設定ファイルの作成
# ⇒New RelicのGUI上で表示されたものをコピペしてnanoで直接作成します。(ダウンロードして配置するのも可能)
# ⇒AI monitoringを入れようとしたところ、10kの数値の書き方の部分でエラーが出たため、使用する場合は10000などに書き換える必要があるかもしれません。
nano newrelic.ini

# (違う方法)おそらく以下コマンドでも作成できます。
newrelic-admin generate-config {ライセンスキー} newrelic.ini

# 仮想環境から抜ける
deactivate

# ディレクトリの作成
mkdir /opt/odoo/odoo-custom-addons
# odooユーザから抜ける
exit

# ---以降はアプリ側の設定に依存します。---
# configの編集
# ⇒ExecStartの部分を変えています
sudo nano /etc/systemd/system/odoo.service
# ここからがファイルの中身
[Unit]
Description=Odoo17
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo_user
PermissionsStartOnly=true
User=odoo_user
Group=odoo_user
ExecStart=/bin/bash -c 'source /opt/odoo/odoo-venv/bin/activate && NEW_RELIC_CONFIG_FILE=/opt/odoo/newrelic.ini newrelic-admin run-program python3 /opt/odoo/odoo/odoo-bin -c /etc/odoo.conf'
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target
# ここからまでファイルの中身

# デーモンのリロード
sudo systemctl daemon-reload

# Odooの再起動
sudo systemctl restart odoo

CLI上でNew Relicエージェントがちゃんと動いているかのテストをすることも可能です。

# 仮想環境への移動
$ source /opt/odoo/odoo-venv/bin/activate

# エージェントのテスト
$ newrelic-admin validate-config /opt/odoo/newrelic.ini
Running Python agent test.

Any significant errors in performing the test will be shown below. If no
errors occurred in the execution of this script and data is still not
reporting through to the UI against the application:

  Python Agent Test

after 5 minutes then check the log file:

  /tmp/python-agent-test.log

for debugging information. Supply the log file to New Relic support if
requesting help with resolving any issues with the test not reporting
data to the New Relic UI.

Registration successful. Reporting to:

  https://rpm.newrelic.com/accounts/xxxxxx/applications/xxxxxxxxxx
# ⇒上記URLにアクセスすると、このアプリのNew RelicのAPM監視画面に遷移

New Relicの画面確認

New RelicにてAPM監視の画面を確認してみると、先ほど作成したアプリ名が表示されており、APM監視が導入できていることが確認できました。
sr-newrelic-ec2-python-apm00
sr-newrelic-ec2-python-apm01
インスタンスを停止すると、シグナルがロストしたことも表示され、起動すると取り消し線で消されていることも確認できました。
sr-newrelic-ec2-python-apm03

最後に

今回は、New RelicのAPM監視を、EC2上に構築した検証用アプリ(Python)に導入してみたことを記事にしました。
どなたかの参考になると幸いです。

Share this article

facebook logohatena logotwitter logo

© Classmethod, Inc. All rights reserved.