技術ブログ
技術ブログ
2017年01月12日
このエントリーをはてなブックマークに追加

New RelicのAPMでPythonアプリを監視する(Flask編)

はじめに

New RelicのAPMでPythonアプリを監視してみます。Pythonはフレームワークが多種多様で、Webでの公開手法も幅が広いのですが、まずはなるべくシンプルな形でNew RelicとPythonアプリの連携方法をご紹介したいと思います。今回はFlaskで作った単純なアプリにNew Relicのコードを埋め込んで監視画面に表示させるまでの流れを確認します。

 

環境

  • CentOS 7
  • Python 2.7.5(default)
  • New Relicのアカウントがあることが前提です。( ※LICENSE-KEYは適宜読み替えてください。)
  • New Relic APMのセットアップ
  • Python Agentのインストール

公式の手順に沿ってインストールします。私の環境の例。若干古いので最新版はこちら

ちょっと試すだけならこちらが楽です。あまり手間は変わらないかもしれませんね・・・。

 

コンフィグ(newrelic.ini)生成

任意の場所で以下のコマンドを実行するとコンフィグができます。コンフィグファイルは移動しても問題ありません。

 

コンフィグの修正

コンフィグの中身を修正します。アプリ名を”New Relic Hello!”に変えてみました。これはNew Relicの画面上でのアプリ名になります。コメントを外してlogが出力できるようにしました。修正したポイントのみ以下に抜粋します。

 

Python Agentの動作確認

以下のコマンドでPython Agentが実行可能かどうかを確認します。

数秒後、APMの画面に”Python Agent Test”という名前で表示されます。何回実行しても問題ありません。今後の過程でトラブルシュートの切り分けに使えます。

Flaskのセットアップ

Flaskのインストール(参照)

 

アプリ作成

New Relic Hello!と表示するだけのアプリ。

上の2行がNew Relic用の埋め込みコードです。newrelic.iniの場所を指定します。

動作確認

ターミナルを二つ開きます。

ターミナル1

以下を実行します。”0.0.0.0″はこのネットワークのこのホストを表す特殊なIPアドレスです。コード上でポート番号を指定しないと実行時に5000番であがります。

 

ターミナル2

以下を実行。127.0.0.1ではなく自サーバのアドレスを指定してもOK。

watchコマンドで1秒おきのアクセスを見立てることができます。

開発環境であればアプリの実行をsupevisorでデーモン化してみるのもよいかもしれません。あるいはApacheやNginxと連携させるか。手間との相談といったところです。
New Relicの画面

“New Relic Hello!”であがってきました。

New Relic hello!だけを表示するアプリですが、関数名やWSGIの情報なんかも見えることがわかります。

 

以上

このエントリーをはてなブックマークに追加

この記事を書いた人

dxtomochika 海外の新しい製品・サービスなどを検証して紹介します。

PROプランのすべての機能を
14日間無料でお試し

新規無料登録いただくとPROプランのすべての機能を
14日間無料でお試しいただけます。
クレジットカードなど決済情報の登録は不要です。

各プランの詳細はこちらからご確認ください。