Cuando ejecuta funciones Java en Function Compute, necesita visibilidad sobre el rendimiento de la aplicación, los rastros distribuidos y el estado de la JVM. Application Real-Time Monitoring Service (ARMS) se integra con Function Compute como una extensión interna y le ofrece lo siguiente:
Observability a nivel de instancia
Rastreo distribuido
Métricas de Java Virtual Machine (JVM)
Análisis de rendimiento a nivel de código
Información sobre la seguridad de la aplicación
A continuación se muestra cómo agregar el agente de ARMS a una función con runtime personalizado.
El agente de ARMS consume aproximadamente 300 MB de memoria durante la ejecución. Asegúrese de que su función tenga asignados como mínimo 512 MB de memoria. La ventana de congelación posterior a la invocación, de 10 segundos y obligatoria para el reporte de datos, se factura con la tarifa estándar de invocación. Para más información, consulte Facturación de Function Compute.
Runtimes compatibles y requisitos
|
Requisito |
Detalles |
|
Runtime |
Runtime personalizado con Java 8, Java 11 o Java 17. También es compatible el runtime integrado de Java 8. |
|
Versión de JDK |
Debe ser compatible con ARMS Application Monitoring. Consulte Componentes y frameworks de Java compatibles con ARMS. |
|
Memoria heap |
Mayor a 256 MB |
|
Memoria de la función |
Como mínimo 512 MB (ARMS consume ~300 MB) |
|
Región |
ARMS y Function Compute deben estar en la misma región. No se admite el monitoreo entre regiones. |
Para crear una función con un runtime personalizado, consulte Create a function.
Paso 1: Obtener una clave de licencia
Llame a la operación de API DescribeTraceLicenseKey en OpenAPI Explorer para recuperar su clave de licencia de ARMS. Guarde esta clave para usarla en el Paso 3.
Paso 2: Agregar la capa del agente de ARMS
Function Compute proporciona capas comunes oficiales que incluyen el agente de ARMS para cada versión de Java compatible.
|
Versión de Java |
Runtime compatible |
ARN de la capa común |
|
Java 8 / Java 11 |
Runtimes personalizados |
|
|
Java 17 |
Runtimes personalizados |
|
Reemplace {region} con el identificador de la región de su función, por ejemplo, cn-hangzhou.
Para agregar la capa en la consola de Function Compute, siga estos pasos:
Inicie sesión en la consola de Function Compute. En el panel de navegación izquierdo, haga clic en Functions.
En la barra de navegación superior, seleccione una región. En la página Functions, haga clic en la función deseada.
En la página de detalles de la función, haga clic en la pestaña Configurations.
En el panel de navegación izquierdo, haga clic en Layers y luego en Modify.
En el panel Layers, elija + Add Layer > Add Official Common Layer y seleccione la capa del agente de ARMS correspondiente a su versión de Java.
Paso 3: Configurar las variables de entorno
Establezca las siguientes variables de entorno para su función:
|
Variable |
Valor |
Descripción |
|
|
|
Habilita la extensión de ARMS en Function Compute. |
|
|
Su clave de licencia de ARMS |
Autentica al agente de ARMS. Obtenga esta clave en el Paso 1. |
Al establecer FC_EXTENSION_ARMS=true, la instancia de la función se congela durante 10 segundos después de cada invocación. Esto le da tiempo al agente de ARMS para reportar los datos recopilados. Durante esta ventana de 10 segundos, la facturación continúa con la tarifa estándar. Para más información, consulte Facturación de Function Compute.
Para configurar estas variables en la consola de Function Compute, siga estos pasos:
En la página de detalles de la función, haga clic en la pestaña Configurations.
En el panel de navegación izquierdo, haga clic en Environment Variables y luego en Modify.
Agregue
FC_EXTENSION_ARMS=trueyFC_EXTENSIONS_ARMS_LICENSE_KEY=<your-license-key>.
Para más información, consulte Configuración de variables de entorno.
Paso 4: Crear un script de arranque
El agente de ARMS se asocia a su proceso Java mediante parámetros de inicio de la JVM. Cree un archivo bootstrap para pasar estos parámetros cuando inicie la función.
La siguiente tabla describe los parámetros de la JVM obligatorios:
|
Parámetro |
Descripción |
|
|
Ruta del archivo JAR del agente de ARMS proporcionado por la capa común. |
|
|
Clave de licencia de ARMS, leída desde la variable de entorno configurada en el Paso 3. |
|
|
Nombre de la aplicación tal como aparece en la consola de ARMS. El valor predeterminado es |
|
|
Identificador único de la instancia de la función. |
Ejemplo de script de arranque:
#!/bin/bash
set -eo pipefail
# Set the ARMS application name.
# Defaults to FC:{FunctionName} if the FC_FUNCTION_NAME variable exists.
appName="FC:Custom_Java_Arms_Demo"
if [ -n "${FC_FUNCTION_NAME}" ]; then
appName="FC:${FC_FUNCTION_NAME}"
fi
echo "appName: ${appName}"
params=" "
# Build the ARMS JVM parameters.
if [[ -n "${FC_EXTENSIONS_ARMS_LICENSE_KEY}" ]]; then
echo "FC_EXTENSIONS_ARMS_LICENSE_KEY: ${FC_EXTENSIONS_ARMS_LICENSE_KEY}"
params+="-Dfc.instanceId=$HOSTNAME@`hostname -i` "
params+="-javaagent:/opt/ArmsAgent/arms-bootstrap-1.7.0-SNAPSHOT.jar "
params+="-Darms.licenseKey=${FC_EXTENSIONS_ARMS_LICENSE_KEY} "
params+="-Darms.appName=${appName} "
else
echo "The environment FC_EXTENSIONS_ARMS_LICENSE_KEY does not exist, please set the FC_EXTENSIONS_ARMS_LICENSE_KEY environment!"
exit 1
fi
# Launch the application. Replace the JAR path with your own.
echo "params: ${params}"
exec java $params \
-Dserver.port=9000 \
-jar /code/target/demo-0.0.1-SNAPSHOT.jar
Reemplace /code/target/demo-0.0.1-SNAPSHOT.jar con la ruta del archivo JAR de su aplicación.
Despliegue del archivo bootstrap
En WebIDE, dentro de la página de código de la función, cree un archivo llamado
bootstrapcon el contenido anterior.Abra la terminal en WebIDE y ejecute
chmod +x bootstrappara que el archivo sea ejecutable.Haga clic en Deploy.
Para más información, consulte Uso de un script de arranque como comandos de inicio.
Paso 5: Comprobar la integración
Después del despliegue, invoque la función como mínimo una vez para activar la recopilación de datos. Luego, confirme que ARMS está recibiendo la información:
Inicie sesión en la consola de ARMS.
En el panel de navegación izquierdo, elija Application Monitoring > Applications.
Busque la aplicación cuyo nombre coincida con el valor
appNamede su script de arranque. El valor predeterminado esFC:{FunctionName}.Haga clic en el nombre de la aplicación para consultar los rastros, las métricas de la JVM y otros datos de monitoreo.
Para obtener detalles sobre el panel de monitoreo, consulte Descripción general de la aplicación.
Facturación
La integración de ARMS con Function Compute genera cargos en dos servicios:
|
Servicio |
Cargo |
Detalles |
|
ARMS |
Tarifas de monitoreo de aplicaciones |
|
|
Function Compute |
Ventana de congelación de 10 segundos posterior a la invocación, facturada con la tarifa estándar de invocación |