Cette traduction automatique est fournie pour votre commodité.
En cas d'incohérence entre la version anglaise et la version traduite, la version anglaise prévaudra. Veuillez visiter cette page pour plus d'informations.
Intégrer l'agent Python sur Microsoft Azure Container Apps et App Service
Aperçu
Nous travaillons toujours sur cette fonctionnalité, mais nous aimerions que vous l'essayiez !
Cette fonctionnalité est actuellement fournie dans le cadre d'un programme d'aperçu conformément à nos politiques de pré-sortie.
Ce document fournit des solutions sur New Relic l’intégration dans Azure Python l’application hébergée par sans avoir à modifier le application code . Il existe deux instances prises en charge de cette fonctionnalité :
Gardez à l’esprit que l’agent Python ne capture pas la télémétrie pour Azure Functions sans notre intégration. Nous vous recommandons d’installer l’ intégration du monitoring Azure Functions si vous souhaitez collecter des données sur Azure Functions.
Intégrer l' sur Python agent les applications conteneurisées
Dans certains cas, une application gérée via Azure Container Apps possède déjà une image qui ne peut pas être modifiée par l'utilisateur (ou l'utilisateur peut simplement ne pas vouloir modifier l'application). Cela permet d’intégrer New Relic dans l’environnement sans avoir à apporter de modifications au code qui crée l’image conteneurisée.
Cela peut être effectué via le portail Azure ou l’interface de ligne de commande Azure.
Sous la section « image du conteneur », cliquez sur « Ajouter » et sélectionnez « Init conteneur »
Saisissez les informations suivantes :
Nom du conteneur d'initialisation souhaité
« Docker Hub ou autres registres » pour « Source de l'image »
newrelic/newrelic-python-init sous "Image et tag"
/bin/sh pour « Commande de remplacement »
-c, cp -r /instrumentation /mnt/ pour « Les arguments remplacent »
Cœurs de processeur et mémoire souhaités. Celle-ci ne doit pas dépasser celle du conteneur primaire.
Accédez à l’onglet « Montages de volume » et sélectionnez le montage de volume créé aux étapes précédentes. Le chemin de montage doit être /mnt/instrumentation.
Exporter la configuration de l'application conteneur
az containerapp show --name $CONTAINER_APP_NAME --resource-group $RESOURCE_GROUP --output yaml > demoapp.yaml
Ce fichier produira un fichier de modèle partiel contenant des informations sur l'application conteneur. Des informations supplémentaires devront être ajoutées pour lier New Relic à l'application.
Monter le volume sur l'application conteneur
Dans les propriétés > modèle, il y aura une section appelée volumes. En ce moment, cela indique volumes: null. Nous remplacerons cette ligne par ces lignes :
bash
$
volumes:
$
- name: $VOLUME_NAME
$
storageName: $STORAGE_MOUNT_NAME
$
storageType: AzureFile
Où $STORAGE_MOUNT_NAME est ce qui a été utilisé à l'étape 2 et $VOLUME_NAME est un nom de votre choix
Ajouter un conteneur d'initialisation
Dans les propriétés > modèle, il y aura une section appelée initContainers. En ce moment, cela indique initContainers: null. Nous remplacerons cette ligne par ces lignes :
bash
$
initContainers:
$
- args:
$
- -c
$
- cp-r /instrumentation /mnt/
$
command:
$
- /bin/sh
$
image: docker.io/newrelic/newrelic-python-init
$
name: nr-init-container
Lier le volume au conteneur
Dans les propriétés > modèle, nous avons maintenant les sections containers et initContainers . Dans chacune de ces sections, ajoutez les lignes suivantes :
bash
$
volumeMounts:
$
- mountPath: /mnt/instrumentation
$
volumeName: $VOLUME_NAME
Où $VOLUME_NAME est le nom choisi précédemment
Mettre à jour l'application conteneur avec la nouvelle configuration
az containerapp update --name $CONTAINER_APP_NAME --resource-group $RESOURCE_GROUP --yaml demoapp.yaml
Cela devrait redéployer l'application conteneur. Attendez quelques minutes que le conteneur d’initialisation termine son exécution.
Intégrer l'agent Python sur Azure App Service
Actuellement, App Services ne prend en charge que les side-cars mais pas le conteneur d'initialisation. En attendant que ce support soit disponible, ce script pré-buildé peut être utilisé. Remarque : cela ne fonctionne que pour les services d’application utilisant du code et non pour les images conteneurisées.
Cela peut être fait via le portail Azure ou l'interface de ligne de commande Azure :
# This is the where the application's original startup script goes:
$
gunicorn app:app
Télécharger le script de démarrage
Accédez à https\://[VOTRE_NOM_DE_SITE_WEB_AZURE_LINUX].scm.azurewebsites.net/newui/fileManager et téléchargez le script prebuild.sh dans le répertoire /home
NEW_RELIC_APP_NAME: Le nom de votre site Web Linux Azure
NEW_RELIC_LICENSE_KEY: Votre New Relic
PYTHONPATH: /home:/home/workspace/newrelic
NEW_RELIC_AZURE_OPERATOR_ENABLED: True
Enregistrez vos paramètres.
Si une version d'agent spécifique est souhaitée, ajoutez la variable d'environnement AGENT_VERSION avec le numéro de version, précédé de v (par exemple v10.0.0).
Ajoutez prebuild.sh comme paramètre de fichier de démarrage
az webapp config appsettings set --name ${WEB_APP_NAME} --resource-group ${RESOURCE_GROUP} --settings NEW_RELIC_LICENSE_KEY=$NEW_RELIC_LICENSE_KEY NEW_RELIC_AZURE_OPERATOR_ENABLED=true NEW_RELIC_APP_NAME="Azure Service App" PYTHONPATH="/home:/home/workspace/newrelic"
Si une version d'agent spécifique est souhaitée, ajoutez la variable d'environnement AGENT_VERSION avec le numéro de version, précédé de v (par exemple v10.0.0) comme indiqué dans l’exemple ci-dessous :
az webapp config appsettings set --name ${WEB_APP_NAME} --resource-group ${RESOURCE_GROUP} --settings AGENT_VERSION=v10.0.0
Ajoutez prebuild.sh comme paramètre de fichier de démarrage
az webapp config set --resource-group ${RESOURCE_GROUP} --name ${WEB_APP_NAME} --startup-file "/home/prebuild.sh"
Cela prendra quelques minutes.
Dépannage
Dans certains cas, la télémétrie peut ne pas être disponible, ou bien le script prebuild.sh peut provoquer l'échec du redéploiement de application existante. Pour remédier à cela, activez ces variables d’environnement :