Microsoft Azure는 웹이나 컨테이너화된 앱을 관리하는 두 가지 플랫폼 서비스를 제공합니다. Microsoft Azure App Service 와 Azure Container Apps 모두에 Python 에이전트를 설치하면 Azure에서 관리하는 Python 앱을 Newrellic에서 추적할 수 있습니다.
대안적 접근 방식
작곡 코드를 수정하지 않고 뉴렐릭을 Azure 호스팅 작곡에 통합하는 방법을 찾고 있다면 이 자습서에서 해당 솔루션을 제공합니다.
호환성 및 요구 사항
Python 에이전트를 설치하기 전에 다음을 권장합니다.
정보
Python 에이전트는 통합 없이 Azure Functions 용 텔레메트리를 캡처하지 않는다는 점을 명심하세요. Azure Functions에 대한 데이터를 수집하려면 Azure Functions 모니터링 통합을 설치하는 것이 좋습니다.
Azure App Service 또는 컨테이너 앱에 Python 에이전트 설치
Azure 애플리케이션에 Python 에이전트 추가
뉴렐릭 Python 에이전트를 Azure 플랜지에 추가하려면 requirements.txt
파일에 newrelic
추가합니다.
$foo@bar:~$ cat requirements.txt
에이전트 초기화
에이전트는 앱 자체를 수동으로 초기화하거나 Dockerfile에 Newrelric 진입점을 추가하여 초기화할 수 있습니다.
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 또는 Container Apps 포털에서 앱을 구성하는 것이 좋습니다. Azure UI나 Python CLI를 사용하여 앱 설정을 업데이트할 수 있습니다.
- portal.azure.com 에 로그인합니다.
- App Services > (select a Python app) > Settings > Environment variables 선택합니다.
- App settings 에 다음을 추가합니다.
NEW_RELIC_APP_NAME
: Linux Azure 웹사이트 이름NEW_RELIC_LICENSE_KEY
: 당신의 뉴렐릭
- 설정을 저장합니다.
- Python 앱을 다시 시작합니다.
- portal.azure.com 에 로그인합니다.
- Container Apps > (select a Python app) > Containers > Environment variables 선택합니다.
- Container settings 에 다음을 추가합니다.
NEW_RELIC_APP_NAME
: Linux Azure 웹사이트 이름NEW_RELIC_LICENSE_KEY
: 당신의 뉴렐릭
설정을 저장합니다.
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 앱에서 데이터를 수집하면 다음을 수행할 수 있습니다.