Application Response Measurement ( ARM ) es un estándar abierto publicado por Open Group para monitorear y diagnosticar cuellos de botella en el rendimiento dentro de aplicaciones empresariales complejas que utilizan diseños débilmente acoplados o arquitecturas orientadas a servicios .
Incluye una API para C y Java que permite que la información de tiempo asociada con cada paso en el procesamiento de una transacción se registre en un servidor remoto para su posterior análisis.
La versión 1 de ARM fue desarrollada conjuntamente por Tivoli Software y Hewlett-Packard en 1996. La versión 2 fue desarrollada por una asociación industrial (el ARM Working Group) y se puso a disposición en diciembre de 1997 como un estándar abierto aprobado por el Open Group . ARM 4.0 se lanzó en 2003 y se revisó en 2004.
A partir de 2007 [actualizar], ARM 4.1 versión 1 es la última versión del estándar ARM.
El diseño actual de las aplicaciones tiende a ser más complejo y distribuido en redes. Esto genera nuevos desafíos en las herramientas de desarrollo y monitoreo actuales para brindarles a los desarrolladores de aplicaciones y a los administradores de sistemas y aplicaciones la información que necesitan.
En las aplicaciones distribuidas no es fácil estimar si la aplicación funciona bien. Los siguientes aspectos ayudan a evaluar las aplicaciones distribuidas:
ARM ayuda a responder estas preguntas. Es importante mencionar que los beneficios de ARM, tal como se definen aquí, son ahora solo un subconjunto del espacio de gestión del rendimiento de aplicaciones .
El enfoque principal del uso de ARM es:
ARM define los siguientes conceptos para proporcionar la funcionalidad descrita.
Las aplicaciones distribuidas complejas suelen estar formadas por muchas aplicaciones (procesos) individuales diferentes. Para poder comprender la relación entre todas las aplicaciones individuales, se introduce el concepto de aplicación ARM con la versión 4.0 del estándar ARM. Cada transacción ARM se ejecuta exactamente dentro de una aplicación ARM.
Las transacciones son el concepto principal del estándar ARM y representan una única medida de rendimiento. Una definición de transacción define el tipo (nombre) y los atributos adicionales de una transacción ARM. Una transacción se puede ejecutar (iniciar y detener) varias veces, lo que da como resultado múltiples mediciones. Cada medición tiene atributos básicos como el estado de finalización (correcto, fallido, abortado), la marca de tiempo de inicio y detención, la duración resultante y la dirección del sistema (host) en la que se ejecutó. Además, se pueden asociar métricas especiales o propiedades de contexto con una medición de transacción.
Define de forma única un host por su nombre, dirección IP u otra información única.
Los correladores ARM se utilizan para expresar una correlación entre dos transacciones ARM. Se trata de una relación sincrónica también conocida como relación padre-hijo. Normalmente, una transacción padre desencadena una transacción hijo y solo continúa su ejecución cuando la transacción hijo ha finalizado. Mediante el uso de correladores, es posible dividir una transacción compleja en varias transacciones hijo anidadas, donde cada transacción hijo puede tener sus propias transacciones hijo. Esto da como resultado un árbol de transacciones en el que la transacción padre superior es la raíz del árbol.
ARM 4.1 define relaciones asincrónicas para soportar arquitecturas impulsadas por flujo de datos.
Las métricas ARM se pueden utilizar para obtener más información sobre la ejecución de una transacción. ARM define un conjunto de tipos de métricas para distintos propósitos, como un contador, un indicador o simplemente un valor numérico.
Las propiedades son un conjunto de cadenas de pares nombre-valor que califican una transacción ARM o una aplicación ARM más allá de la definición básica de estas entidades y permiten asociar información de contexto adicional a cada medición de transacción.
Define el nombre de un usuario en nombre del cual se ejecutó una medición de transacción.
Las siguientes aplicaciones ya están instrumentadas con llamadas ARM: