コンテナー化されたAzure関数を使用している場合は、 New Relic .NET エージェント、 Pythonエージェント、またはNode.jsエージェントを使用してAzure Functions監視できます。 これによりAzure Functionsのパフォーマンスと正常性を監視できるようになります。
前提条件
- Azure Function が互換性と要件を満たしていることを確認します。
- Azure アカウントを New Relic にリンクします。詳細については、 Azureインテグレーション」を参照してください。
Azure Functions の監視を構成する
さまざまな環境や、ランタイムとデプロイメント方法のさまざまな組み合わせに対して、Azure Functions の監視を構成できます。次の手順では、コンテナー化された Azure Function Apps 用に New Relic を構成する方法について詳しく説明します。
関数ファイルを編集して、アプリケーション ファイルの先頭に次のコードを追加します。
ENV NEW_RELIC_LICENSE_KEY="YOUR_NEW_RELIC_LICENSE_KEY"ENV NEW_RELIC_APP_NAME="YOUR_APPLICATION_NAME"# ENV NEW_RELIC_HOST='staging-collector.newrelic.com'# Uncomment the previous line if using staging# Inject the agent in NODE_OPTIONSENV NODE_OPTIONS="-r newrelic"# Install New Relic without bin linksARG AGENT_VERSION=latestRUN npm install newrelic@$AGENT_VERSION --no-bin-links次のコマンドを実行して、プラットフォームの要件に従って Docket イメージをビルドします。
bash$docker buildx build --platform=YOUR_PLATFORM_ARCHITECTURE --tag YOUR_DOCKER_ID/azurefunctionsimage:v1.0.0 --push重要
YOUR_PLATFORM_ARCHITECTUREAzure関数の適切なアーキテクチャーに置き換えてください。 たとえば、64 ビット Linux の場合はlinux/amd64、ARM アーキテクチャーの場合はlinux/arm64を使用します。次のコマンドを実行して、イメージをAzureコンテナー レジストリ (ACR) に発行します。
- Azureコンテナ レジストリを認証します。
bash$az acr login --name YOUR_CONTAINER_REGISTRY_NAME- 次のコマンドを実行して、ローカルにビルドしたイメージに ACR ログイン サーバーをタグ付けします。
bash$docker tag YOUR_DOCKER_ID/azurefunctionsimage:v1.0.0 YOUR_LOGIN_SERVER/azurefunctionsimage:v1.0.0- 次のコマンドを実行して、タグ付けされたイメージを ACR にプッシュします。
bash$docker push YOUR_LOGIN_SERVER/azurefunctionsimage:v1.0.0Azure ドキュメントを使用して、Azure Function App に必要な Azure リソースを作成します。
前の手順で ACR にプッシュしたイメージを使用して、Azure Function App を作成して構成します。詳細については、 Azure のドキュメントを参照してください。
次のコマンドを実行して、プロイメント後のAzure Function App URL を取得します。
bash$az functionapp show --name YOUR_APPLICATION_NAME --resource-group NAME_OF_THE_APPS_RESOURCE_GROUP
New Relic Python エージェントをインストールするには、 Dockerfileの最終ステージに次の行を追加します。
FROM mcr.microsoft.com/azure-functions/python:4-python3.11
# These commands will not be required once the # New Relic Python Agent releases this featureRUN apt-get updateRUN apt-get -y install git
ENV AzureWebJobsScriptRoot=/home/site/wwwroot \ AzureFunctionsJobHost__Logging__Console__IsEnabled=true
RUN pip install newrelic
# Install any other dependenciesCOPY requirements.txt /RUN pip install -r /requirements.txtCOPY . /home/site/wwwrootヒント
上記の例は、Python 3.11 Azure 関数用です。要件に合わせて Python のバージョンを変更できます。
Dockerイメージを構築したら、そのイメージをAzureコンテナー レジストリに公開します。 詳細については、 Azure のドキュメントを参照してください。
New Relic .NET エージェントをインストールするには、Docker ファイルの最終段階に次の行を追加します。
# Install the latest New Relic .NET agent using the apt-get package manager# To install a specific version of the .NET agent, add the version number to the apt-get install line (i.e. apt-get install -y newrelic-dotnet-agent=10.38.0)RUN apt-get update && apt-get install -y wget ca-certificates gnupg \ && echo 'deb http://apt.newrelic.com/debian/ newrelic non-free' | tee /etc/apt/sources.list.d/newrelic.list \ && wget https://download.newrelic.com/548C16BF.gpg \ && apt-key add 548C16BF.gpg \ && apt-get update \ && apt-get install -y newrelic-dotnet-agent \ && rm -rf /var/lib/apt/lists/*アプリケーションをデプロイすると、.NET エージェントが/usr/local/newrelic-dotnet-agentフォルダーにインストールされます。
環境変数を設定する
Azure Function アプリを公開したら、環境変数を構成します。
AzureポータルでAzure Functions に移動します。
Settings [設定] でEnvironment variables [環境変数]をクリックし、 Advanced edit [詳細編集]をクリックします。
デプロイメント ランタイムに基づいて、次の値を貼り付けます。
重要
既存の最後の行の末尾に必ずカンマを追加し、次の設定でライセンスキーを更新してください。
{"NODE_OPTIONS": "-r newrelic","NEW_RELIC_LICENSE_KEY": "YOUR_NEW_RELIC_LICENSE_KEY","NEW_RELIC_APP_NAME": "NAME_OF_YOUR_AZURE_FUNCTION_APP"}({"name": "PYTHON_ENABLE_WORKER_EXTENSIONS","value": "1","slotSetting": false},{"name": "FUNCTIONS_WORKER_RUNTIME","value": "python","slotSetting": false},{"name": "PYTHONPATH","value": "${PYTHONPATH}:/home/site/wwwroot:/home/site/wwwroot/.python_packages/lib/site-packages","slotSetting": false},{"name": "NEW_RELIC_APP_NAME","value": "YOUR_NEW_RELIC_APP_NAME","slotSetting": false},{"name": "NEW_RELIC_LICENSE_KEY","value": "YOUR_NEW_RELIC_LICENSE_KEY","slotSetting": false})({"name": "CORECLR_ENABLE_PROFILING","value": "1","slotSetting": false},{"name": "CORECLR_NEW_RELIC_HOME","value": "/home/site/wwwroot/newrelic","slotSetting": false},{"name": "CORECLR_PROFILER","value": "{36032161-FFC0-4B61-B559-F6C5D41BAE5A}","slotSetting": false},{"name": "CORECLR_PROFILER_PATH","value": "/home/site/wwwroot/newrelic/libNewRelicProfiler.so","slotSetting": false},{"name": "NEW_RELIC_LOG_DIRECTORY","value": "/home/LogFiles/NewRelic","slotSetting": false},{"name": "NEW_RELIC_LICENSE_KEY","value": "YOUR_NEW_RELIC_LICENSE_KEY","slotSetting": false})
Azure Functionsを再起動します
環境変数を追加したら、 Azure Functions を再起動して変更を適用します。
データを見つけて使用する
Azure 関数を構成したら、New Relic UI でデータを検索して使用できるようになります。
https://one.newrelic.com > APM & Servicesに移動します。
検索バナーで、検索条件を
isAzureFunction = trueとして設定します。
表示されたリストから、データを表示する Azure 関数を選択します。