컨테이너화된 Azure Function을 사용하는 경우 뉴렐릭 .NET 에이전트, 끌어당김 에이전트 또는 Node.js 에이전트를 사용하여 Azure Functions 모니터링할 수 있습니다. 이를 통해 Azure Functions의 성능과 상태를 실시간으로 모니터링할 수 있습니다.
전제 조건
- Azure Function이 호환성 및 요구 사항을 충족하는지 확인하세요.
- Azure 계정을 New Relic에 연결하세요. 자세한 내용은 Azure 통합을 참조하세요.
Azure Functions 모니터링 구성
Azure Functions 모니터링은 다양한 환경과 런타임 및 구현/배포 방법의 조합에 맞게 구성할 수 있습니다. 다음 지침은 컨테이너화된 Azure Function Apps에 대한 뉴렐릭을 구성하는 방법을 자세히 설명합니다.
함수 파일을 수정하여 애플리케이션 파일 맨 위에 다음 코드를 추가하세요.
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 Function에 적합한 아키텍처로 바꿔야 합니다. 예를 들어, 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 함수 앱 URL을 검색합니다.
bash$az functionapp show --name YOUR_APPLICATION_NAME --resource-group NAME_OF_THE_APPS_RESOURCE_GROUP
뉴렐릭 끌어다니는 에이전트를 설치하려면 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 Function에 대한 것입니다. 필요에 따라 파이썬 버전을 변경할 수 있습니다.
도커 이미지를 빌드한 후 Azure 이미지 레지스트리에 이미지를 게시하십시오. 자세한 내용은 Azure 설명서를 참조하세요.
뉴렐릭 .NET 에이전트를 설치하려면 도커 파일의 마지막 단계에 다음 줄을 추가하세요.
# 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 Portal에서 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 함수를 구성한 후에는 뉴렐릭 UI 에서 데이터를 찾아 사용할 수 있습니다.
https://one.newrelic.com > APM & Services 로 이동합니다.
검색 배너에서 검색 기준을
isAzureFunction = true으로 설정합니다.
표시된 목록에서 Azure 함수를 선택하여 데이터를 확인하세요.