Recopilación de métricas
El agente Java de APM soporta la recopilación periódica de métricas del servidor de aplicaciones.
Después de desplegar el agente Java de APM, puede recopilar los siguientes tipos de métricas:
Métricas por defecto
Las métricas por defecto son métricas definidas por el sistema que están disponibles por defecto.
Para obtener un juego completo de métricas por defecto, consulte Métricas disponibles: oracle_apm_monitoring para el agente Java de APM.
Métricas personalizadas
Las métricas personalizadas son métricas definidas por el usuario que se pueden crear además de las métricas por defecto existentes para cumplir requisitos específicos.
oracle-apm-agent/config/<version>
.
El archivo MetricCollection.acml
es un archivo personalizado en formato ACML (subjuego de YAML) para la configuración de la recopilación de métricas personalizadas.
Etiqueta ACML | Tipo de datos | Descripción |
---|---|---|
<group name>: | string | Grupo para separar métricas con diferente hora de inicio e intervalo de recopilación. |
<metric name>: | string | Nombre de la métrica que se va a recopilar. Un nombre de métrica corresponde a un solo valor. La convención de nomenclatura es una cadena en minúsculas separada por un guion. |
type: | string | Tipo de métrica. Puede ser measurement o delta.
- measurement: valor de tiempo de ejecución actual. - delta: valor diferente entre el intervalo de recopilación. |
scalar: | string | Tipo de valor numérico: puede ser largo o doble. |
source: | Etiqueta que representa la matriz de entradas de origen de la métrica. Cada métrica puede contener una o más entradas de origen. Incluso si hay más de una entrada de origen, cada entrada se comprueba en la recopilación en orden. Siempre que la entrada puede devolver un valor válido, se utiliza para la entrada de métrica y se ignora el resto de entradas de origen. | |
- | Elemento de matriz de entrada de origen de métrica. | |
type: | string | Tipo de origen de métrica. Puede ser mbean o mbeans.
Para la configuración Para la configuración |
mbean_name: | string | Nombre de objeto del bean gestionado para el tipo mbean o mbeans. Para el tipo mbeans, el nombre de objeto puede tener un carácter comodín ( * ), pero el comodín no está soportado para mbean. |
value_path: | string | La ruta está separada por una barra diagonal ( / ) para obtener el valor de mbean. La ruta al valor debe conducir a un valor numérico. Aparte de la ruta raíz, que debe ser el nombre de atributo del objeto mbean, la ruta dividida puede ser uno de los siguientes valores de ruta anteriores:
Para el tipo mbeans, se agrega el valor de cada objeto mbean. Del mismo modo, si se utiliza el carácter comodín ( * ) en la ruta para el tipo mbeans, se agregan todos los valores recuperados. |
operation_name | string | Nombre del método de mbean que se va a llamar. Tenga en cuenta que MBean debe ser registererd con el servidor de plataforma MBean. |
parámetros (opcional) | string | Valores de parámetros de método separados por comas.
Los parámetros de método transferidos y sus valores correspondientes se capturarán como dimensiones de métrica. Actualmente, solo se soporta el tipo de dato String para parámetros de método. |
value_path
o operationName
.
- Atributo
value_path
: permite extraer la métrica del mbean registrado - Atributo
operationName
: permite al usuario registrar cualquier clase personalizada con el servidor mbean y llamar al método mbean especificado poroperationName
.
Ejemplo con el atributo value_path
:
MyMetrics:
jvm-used-heap:
type: measurement
scalar: long
source:
-
type: mbean
mbean_name: java.lang:type=Memory
value_path: HeapMemoryUsage/used
jvm-used-heap-after-old-gc:
type: measurement
scalar: long
source:
-
type: mbeans
mbean_name: java.lang:type=GarbageCollector,name=*Old*
value_path: LastGcInfo/memoryUsageAfterGc/*/value/used
-
type: mbeans
mbean_name: java.lang:type=GarbageCollector,name=*MarkSweep*
value_path: LastGcInfo/memoryUsageAfterGc/*/value/used
En el ejemplo anterior, las métricas se recopilan en la parte superior de cada minuto. Hay dos métricas que se deben recopilar: jvm-heap-used
y jvm-used-heap-after-old-gc
.
Para jvm-heap-used
, solo hay 1 origen, que es mbean
. El nombre de objeto mbean es java.lang:type=Memory
. Este objeto mbean tiene un atributo HeapMemoryUsage
que tiene el tipo de dato CompositeDataSupport. No es numérico y no se puede utilizar como métrica. Sin embargo, representa una asignación de métricas de la que se puede recuperar el montón utilizado, por lo que es necesario aumentar el detalle del objeto con la clave de asignación utilizada.
Para jvm-used-heap-after-old-gc
, tiene 2 orígenes: mbeans
, ambos están en plural con una 's'. La métrica se recopila en orden de acuerdo con la definición y se utiliza el primer origen que devuelve una métrica válida. El motivo de tener 2 orígenes es que diferentes versiones de java tienen diferentes nombres de recopilador de elementos no utilizados. El aumento de detalle de value_path también ha utilizado el comodín y toda la memoria utilizada después de los valores de gc de todos los espacios de memoria se suman como un único valor de métrica. El aumento de detalle de los datos de la ruta al valor es LastGcInfo/memoryUsageAfterGc/*/value/used
, que hace referencia a: LastGcInfo(CompositeData)/memoryUsageAfterGc(TabularData)/<index>(CompositeData)/value(MemoryUsage)/used(Long)
.
Ejemplo con el atributo operationName
:
MyMetrics:
CacheStatistics:
type: measurement
scalar: double
skippable: false
source:
- type: mbean
mbean_name:com.cache:type=CacheServiceMXBean
operation_name: cacheStatistics
params: SessionCache,JohnDoe
DatabaseQueryTime:
type: measurement
scalar: long
skippable: false
source:
- type: mbean
mbean_name: com.db:type=DbManagerMXBean
operation_name: dbQueryTime
En el ejemplo anterior, las métricas se recopilan en la parte superior de cada minuto. Hay dos métricas que se deben recopilar: CacheStatistics
y DatabaseQueryTime
. El origen de esta configuración de mbean solo puede ser mbean.
Para CacheStatistics, el nombre del objeto mbean es com.cache:type=CacheServiceMXBean
. El método que se va a llamar es cacheStatistics
. La operación recupera estadísticas de caché para el nombre de caché especificado, filtradas por su usuario específico. SessionCache
y JohnDoe
son los valores de parámetro para CacheName y UserName respectivamente. El usuario puede construir una asignación de atributos útiles como AssociatedCacheName
, CacheHits
, CacheMisses
, InMemoryHits
, OnDiskHits
como dimensiones y devolverla como parte de los tipos de retorno soportados, como se describe a continuación, junto con sus valores correspondientes.
Para DatabaseQueryTime, el nombre del objeto mbean es com.db:type=DbManagerMXBean
. El método que se va a llamar es dbQueryTime
. No se han configurado parámetros para este mbean.
- Map<Map<String, Object>, Long>
- Map<Map<String, Object>, Double>
- Long
- Doble