Te ofrecemos esta traducción automática para facilitar la lectura.
En caso de que haya discrepancias entre la versión en inglés y la versión traducida, se entiende que prevalece la versión en inglés. Visita esta página para obtener más información.
Integrar el agente de Python en las aplicaciones contenedoras Microsoft Azure y App Service
avance
Todavía estamos trabajando en esta característica, ¡pero nos encantaría que la probaras!
Esta característica se proporciona actualmente como parte de un programa de vista previa de conformidad con nuestras políticas de prelanzamiento.
Este documento proporciona soluciones para la integración de New Relic en la aplicación Python alojada en Azure sin tener que modificar el código de la aplicación. Hay dos instancias admitidas de esta capacidad:
El soporte para la integración de New Relic para App Services mediante imágenes en contenedores no está disponible.
Compatibilidad y requisitos
Antes de comenzar, te recomendamos lo siguiente:
Comenzando con una App contenedora o App Service que se implementó
Instalación de la CLI de Azure en su entorno si no emplea el Portal de Azure
Información
Tenga en cuenta que el agente de Python no captura telemetría para Azure Functions sin nuestra integración. Recomendamos instalar la integración de monitoreoAzure Functions si desea recopilar datos sobre Azure Functions.
Integrar el agente Python en las aplicaciones de contenedor
En ciertos casos, una aplicación gestionada a través de Azure Contenedor Apps ya tiene una imagen que el usuario no puede modificar (o el usuario simplemente puede no querer modificar la aplicación). Esto proporciona una manera de integrar New Relic en el entorno sin tener que realizar ninguna modificación en el código que crea la imagen en contenedor.
Esto se puede hacer a través del Portal de Azure o la CLI de Azure.
En la sección “imagen del contenedor”, haga clic en “Agregar” y seleccione “Iniciar contenedor”
Introduzca lo siguiente:
Nombre del contenedor de inicio deseado
Docker Hub u otros registros" para "Fuente de la imagen"
newrelic/newrelic-python-init en "Imagen y etiqueta"
/bin/sh para "Anular comando"
-c, cp -r /instrumentation /mnt/ para "Los argumentos prevalecen"
Núcleos de CPU y memoria deseados. Este no debe exceder el del contenedor primario.
Vaya a la pestaña "Montajes de volumen" y seleccione el montaje de volumen creado en los pasos anteriores. La ruta de montaje debe ser /mnt/instrumentation.
Exportar la configuración de la aplicación contenedor
az containerapp show --name $CONTAINER_APP_NAME --resource-group $RESOURCE_GROUP --output yaml > demoapp.yaml
Este archivo producirá un archivo de plantilla parcial que contiene información sobre la aplicación contenedor. Será necesario agregar información adicional para vincular New Relic a la aplicación.
Montar volumen en la aplicación contenedor
En propiedades > plantilla, habrá una sección llamada volumes. En este momento, esto dice volumes: null. Reemplazaremos esa línea con estas líneas:
bash
$
volumes:
$
- name: $VOLUME_NAME
$
storageName: $STORAGE_MOUNT_NAME
$
storageType: AzureFile
Donde $STORAGE_MOUNT_NAME es lo que se empleó en el Paso 2 y $VOLUME_NAME es un nombre de su elección
Agregar contenedor de inicialización
En propiedades > plantilla, habrá una sección llamada initContainers. En este momento, esto dice initContainers: null. Reemplazaremos esa línea con estas líneas:
bash
$
initContainers:
$
- args:
$
- -c
$
- cp-r /instrumentation /mnt/
$
command:
$
- /bin/sh
$
image: docker.io/newrelic/newrelic-python-init
$
name: nr-init-container
Vincular volumen a contenedor
En propiedades > plantilla, ahora tenemos secciones containers y initContainers . Dentro de cada una de estas secciones, agregue las siguientes líneas:
bash
$
volumeMounts:
$
- mountPath: /mnt/instrumentation
$
volumeName: $VOLUME_NAME
Donde $VOLUME_NAME es el nombre elegido anteriormente
Actualizar la aplicación contenedor con nueva configuración
az containerapp update --name $CONTAINER_APP_NAME --resource-group $RESOURCE_GROUP --yaml demoapp.yaml
Esto debería volver a desplegar la aplicación contenedor. Espere unos minutos hasta que el contenedor de inicio termine de ejecutar.
Integrar el agente de Python en Azure App Service
Actualmente, App Services solo admite sidecars pero no contenedores de inicio. Hasta que ese soporte esté disponible, se puede emplear este script preconstruido. Nota: Esto solo funciona para App Services que usan código y no para imágenes en contenedores.
Esto se puede hacer a través del Portal de Azure o la CLI de Azure:
NEW_RELIC_APP_NAME:El nombre de su sitio web de Linux Azure
NEW_RELIC_LICENSE_KEY: Tu New Relic
PYTHONPATH: /home:/home/workspace/newrelic
NEW_RELIC_AZURE_OPERATOR_ENABLED: True
Guarde su configuración.
Si se desea una versión específica del agente, agregue la variable de entorno AGENT_VERSION con el número de versión, precedido por v (por ejemplo, v10.0.0).
Agregar prebuild.sh como configuración de archivo de inicio
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 se desea una versión específica del agente, agregue la variable de entorno AGENT_VERSION con el número de versión, precedido por v (por ejemplo, v10.0.0) como se muestra en el siguiente ejemplo:
az webapp config appsettings set --name ${WEB_APP_NAME} --resource-group ${RESOURCE_GROUP} --settings AGENT_VERSION=v10.0.0
Agregar prebuild.sh como configuración de archivo de inicio
az webapp config set --resource-group ${RESOURCE_GROUP} --name ${WEB_APP_NAME} --startup-file "/home/prebuild.sh"
Esto tomará unos minutos.
Resolución de problemas
En algunos casos, la telemetría puede no estar disponible, o que el script prebuild.sh pueda provocar que la aplicación existente no pueda volver a desplegar. Para solucionar esto, habilite estas variables de entorno: