Microsoft Azure は、Web アプリまたはコンテナー化されたアプリを管理する 2 つのプラットフォーム サービスを提供します。 Python エージェントをMicrosoft Azure App ServiceとAzure Container Apps の両方にインストールすると、 New Relicで Azure 管理の Python アプリを追跡できるようになります。
代替アプローチ
アプリケーション コードを変更せずに、Azure でホストされているアプリケーションに New Relic を統合する方法を探している場合は、このチュートリアルがその解決策を提供します。
互換性と要件
Python エージェントをインストールする前に、次のことをお勧めします。
情報
Python エージェントは、統合がなければAzure Functionsのテレメトリーをキャプチャしないことに注意してください。 に関するデータを収集したい場合は 、Azure Functions 監視統合Azure Functions をインストールすることをお勧めします。
Python エージェントを Azure App Service またはコンテナー アプリにインストールする
Python エージェントを Azure アプリケーションに追加する
New Relic Python エージェントを Azure アプリケーションに追加するには、 requirements.txt
ファイルにnewrelic
を追加します。
$foo@bar:~$ cat requirements.txt
エージェントの初期化
エージェントは、アプリ自体を手動で初期化するか、Dockerfile に New Relic エントリポイントを追加することで初期化できます。
アプリ コードを更新してnewrelic.agent
をインポートし、 newrelic.agent.initialize()
関数を追加してエージェントを初期化します。
エージェントが初期化された Flask アプリの例を次に示します。
newrelic.agent.initialize()
return "Hello, fellow humans!"
if __name__ == '__main__':
Dockerfile を使用している場合は、起動スクリプトのエントリポイントとしてnewrelic-admin run-program
を追加します。
RUN pip install -r requirements.txt
ENTRYPOINT ["newrelic-admin", "run-program"]
Azure設定を構成する
Python エージェントをインストールしたら、使用しているサービスに応じて、Azure App Service またはコンテナー アプリ ポータルでアプリを構成することをお勧めします。 アプリの設定は、Azure UI または Python CLI を使用して更新できます。
- portal.azure.comにサインインします。
- App Services > (select a Python app) > Settings > Environment variablesを選択します。
- App settingsに以下を追加します:
NEW_RELIC_APP_NAME
: Linux Azure Web サイト名NEW_RELIC_LICENSE_KEY
: あなたのNew Relic
- 設定を保存します。
- Python アプリを再起動します。
- portal.azure.comにサインインします。
- Container Apps > (select a Python app) > Containers > Environment variablesを選択します。
- Container settingsに以下を追加します:
NEW_RELIC_APP_NAME
: Linux Azure Web サイト名NEW_RELIC_LICENSE_KEY
: あなたのNew Relic
設定を保存します。
Python アプリを再起動します。
アプリにトラフィックを生成し、数分間待ちます。 one.newrelic.com > All capabilities > APM & services > (select your app)にアクセスするとデータを確認できます。
コマンドラインで次のコマンドを実行します。
$az webapp config appsettings set --name ${WEB_APP_NAME} --settings NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY} NEW_RELIC_APP_NAME=${NEW_RELIC_APP_NAME}
コマンドラインで次のコマンドを実行します。
$az containerapp update --name ${CONTAINER_APP_NAME} --set-env-vars "NEW_RELIC_APP_NAME=${NEW_RELIC_APP_NAME}" "NEW_RELIC_LICENSE_KEY=${NEW_RELIC_LICENSE_KEY}"
複数のレプリカが許可されている場合、上記のコマンドは新しいレプリカを作成します。 それ以外の場合は、コンテナのレプリカを再起動する必要があります。 これを行うには、レプリカの名前を見つけて、それを使用して再起動します。
$az containerapp revision list --name ${CONTAINER_APP_NAME} -o table
$az containerapp revision restart --revision [Revision name from list generated above]
次は何ですか?
Azure 管理の Python アプリからデータを収集できるようになったので、次のことが可能になります。