Coletar Métricas
O agente Java do APM suporta a coleta de métricas de servidor de aplicativos periodicamente.
Depois que o agente Java do APM for implantado, você poderá coletar os seguintes tipos de métricas:
Métricas Padrão
Métricas padrão são métricas definidas pelo sistema disponíveis por padrão.
Para obter um conjunto completo de métricas padrão, consulte Métricas Disponíveis: oracle_apm_monitoring para Agente Java do APM.
Métricas Personalizadas
Métricas personalizadas são métricas definidas pelo usuário que podem ser criadas além das métricas padrão existentes para atender a requisitos específicos.
oracle-apm-agent/config/<version>
.
O arquivo MetricCollection.acml
é um arquivo personalizado no formato ACML (subconjunto de YAML) para configuração de coleta de métrica personalizada.
Tag ACML | Tipos de Dados | Descrição |
---|---|---|
<nome do grupo>: | string | Grupo para separar métricas com diferente start_time de coleta e intervalo. |
<nome da métrica>: | string | Nome da métrica a ser coletada. Um nome de métrica corresponde a apenas um valor. A convenção de nomenclatura é uma string entre letras minúsculas separada por traço. |
tipo: | string | Tipo de métrica. Pode ser medida ou delta.
- medida: valor de runtime atual. - delta: valor diferente entre o intervalo de coleta. |
escalar: | string | Tipo de valor numérico: Pode ser longo ou duplo. |
origem: | Tag que representa o array de entradas de origem da métrica. Cada métrica pode conter uma ou mais entradas de origem. Mesmo que haja mais de uma entrada de origem, cada entrada será verificada na coleta em ordem. Sempre que a entrada puder retornar um valor válido, ela será usada para a entrada de métrica, e o restante das entradas de origem será ignorado. | |
- | Elemento de array de entrada de origem da métrica. | |
tipo: | string | Tipo de origem da métrica. Pode mbean ou mbeans.
Para a configuração Para a configuração |
mbean_name: | string | Nome do objeto MBean para o tipo mbean ou mbeans. Para o tipo mbeans, o nome do objeto pode ter o caractere curinga ( * ), mas o caractere curinga não é suportado para mbean. |
value_path: | string | O caminho é separado por uma barra ( / ) para obter o valor do mbean. O caminho do valor deve levar a um valor numérico. Além do caminho raiz que deve ser o nome do atributo do objeto mbean, o caminho dividido pode ser um dos seguintes do valor do caminho anterior:
Para o tipo de mbeans, o valor de cada objeto mbean é agregado. Da mesma forma, se o caractere curinga ( * ) for usado no caminho para o tipo mbeans, todos os valores recuperados serão agregados. |
operation_name | string | Nome do método de mbean a ser chamado. Observe que o MBean deve ser registrado no Servidor MBean da Plataforma. |
parâmetros (Opcional) | string | Valores dos parâmetros do método separados por vírgulas.
Os parâmetros do método informados e seus valores correspondentes serão capturados como dimensões de métrica. Atualmente, somente o tipo de dados String é suportado para parâmetros de método. |
value_path
ou operationName
.
- Atributo
value_path
: Permite que a métrica seja extraída do mbean registrado - Atributo
operationName
: Permite que o usuário registre qualquer classe personalizada no servidor mbean e chame o método mbean, especificado pelooperationName
.
Exemplo usando o 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
No exemplo acima, as métricas são coletadas no início de cada minuto. Há duas métricas a serem coletadas: jvm-heap-used
e jvm-used-heap-after-old-gc
.
Para jvm-heap-used
, há apenas 1 origem que é mbean
. O nome do objeto mbean é java.lang:type=Memory
. Este objeto mbean tem um atributo HeapMemoryUsage
que tem o tipo de dados CompositeDataSupport. Não é numérico e não pode ser usado como métrica. No entanto, ele representa um mapa de métricas que pode ser recuperado do heap usado; portanto, é necessário o drill-down até o objeto com a chave de mapa usada.
Para jvm-used-heap-after-old-gc
, ele tem 2 origens: mbeans
, ambas estão no plural com um 's'. A métrica é coletada na ordem por definição e a primeira origem que retorna uma métrica válida é usada. O motivo de ter 2 origens é porque diferentes versões java têm nomes de coletores de lixo distintos. O drill-down value_path também usou um caractere curinga curinga e toda memória usada após os valores gc de todos os espaços de memória são somados como um único valor de métrica. O drill-down dos dados do caminho do valor é LastGcInfo/memoryUsageAfterGc/*/value/used
que se refere a: LastGcInfo(CompositeData)/memoryUsageAfterGc(TabularData)/<index>(CompositeData)/value(MemoryUsage)/used(Long)
.
Exemplo usando o 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
No exemplo acima, as métricas são coletadas no início de cada minuto. Há duas métricas a serem coletadas: CacheStatistics
e DatabaseQueryTime
. A origem desta configuração de mbean só pode ser mbean.
Para CacheStatistics, o nome do objeto mbean é com.cache:type=CacheServiceMXBean
. O método a ser chamado é cacheStatistics
. A operação recupera estatísticas de cache para o nome de cache especificado, filtradas por seu usuário específico. SessionCache
e JohnDoe
são os valores de parâmetro para CacheName e UserName, respectivamente. O usuário pode construir um mapa de atributos úteis, como AssociatedCacheName
, CacheHits
, CacheMisses
, InMemoryHits
, OnDiskHits
, como dimensões e retorná-lo como parte dos tipos de retorno suportados, conforme descrito a seguir, juntamente com seus valores correspondentes.
Para DatabaseQueryTime, o nome do objeto mbean é com.db:type=DbManagerMXBean
. O método a ser chamado é dbQueryTime
. Nenhum parâmetro foi configurado para este mbean.
- Mapa<Mapa<String, Objeto>, Long>
- Mapa<Mapa<String, Objeto>, Duplo>
- Long
- Duplo