Collecter des mesures
L'agent Java APM prend en charge la collecte périodique des mesures du serveur d'applications.
Une fois l'agent Java APM déployé, vous pouvez collecter les types de mesure suivants :
Mesures par défaut
Les mesures par défaut sont des mesures définies par le système qui sont disponibles par défaut.
Pour un jeu complet de mesures par défaut, voir Mesures disponibles : oracle_apm_monitoring pour l'agent Java APM.
Mesures personnalisées
Les mesures personnalisées sont des mesures définies par l'utilisateur, en plus des mesures par défaut existantes, pour répondre à des besoins spécifiques.
oracle-apm-agent/config/<version>
.
Le fichier MetricCollection.acml
est un fichier personnalisé au format ACML (sous-ensemble YAML) pour configurer la collecte de mesures personnalisées.
Balise ACML | Type de données | Description |
---|---|---|
<group name>: | chaîne | Groupe pour séparer les mesures ayant des valeurs différentes pour l'heure de début et l'intervalle de collecte. |
<metric name>: | chaîne | Nom de la mesure à collecter. Un nom de mesure ne correspond qu'à une seule valeur. La convention d'attribution de nom est une chaîne en minuscules pouvant contenir un tiret comme séparateur. |
type: | chaîne | Type de mesure. Les valeurs possibles sont measurement ou delta.
- measurement : valeur d'exécution courante. - delta : différence de valeur entre les intervalles de collecte. |
scalar: | chaîne | Type de valeur numérique : elle peut être longue ou double. |
source: | Balise représentant un tableau d'entrées sources de mesure. Chaque mesure peut contenir une ou plusieurs entrées sources. Même s'il existe plus d'une entrée source, chaque entrée est vérifiée dans l'ordre au moment de la collecte. Chaque fois que l'entrée peut retourner une valeur valide, elle est utilisée pour l'entrée de mesure et les autres entrées sources sont ignorées. | |
- | Élément de tableau d'entrée source de mesure. | |
type: | chaîne | Type de source de mesure. Ce peut être MBean ou MBeans.
Pour la configuration Pour la configuration |
mbean_name: | chaîne | Nom d'objet MBean pour le type MBean ou MBeans. Pour le type MBeans, le nom d'objet peut comporter un caractère générique ( * ), mais ce dernier n'est pas pris en charge pour MBean. |
value_path: | chaîne | Le chemin est séparé par une barre oblique ( / ) pour obtenir la valeur de MBean. Le chemin de valeur doit conduire à une valeur numérique. Outre le chemin racine qui doit être le nom d'attribut de l'objet MBean, le chemin de fractionnement peut être un des éléments suivants de la valeur de chemin précédente :
Pour le type MBeans, la valeur de chaque objet MBean est agrégée. De même, si le caractère générique ( * ) est utilisé dans le chemin pour le type MBeans, toutes les valeurs extraites sont agrégées. |
operation_name | chaîne | Nom de la méthode MBean à appeler. Notez que MBean doit être enregistré auprès du serveur Platform MBean. |
paramètres (facultatif) | chaîne | Valeurs des paramètres de méthode séparées par une virgule.
Les paramètres de méthode transmis et leurs valeurs correspondantes seront saisis en tant que dimensions de mesure. Actuellement, seul le type de données Chaîne est pris en charge pour les paramètres de méthode. |
value_path
ou operationName
.
- Attribut
value_path
: Permet d'extraire la mesure du composant MBean enregistré - Attribut
operationName
: Permet à l'utilisateur d'enregistrer une classe personnalisée auprès du serveur de MBean et d'appeler la méthode de MBean, spécifiée paroperationName
.
Exemple d'utilisation de l'attribut 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
Dans l'exemple ci-dessus, les mesures sont collectées en haut de chaque minute. Deux mesures doivent être collectées : jvm-heap-used
et jvm-used-heap-after-old-gc
.
Pour la mesure jvm-heap-used
, il n'y a qu'une seule source, soit mbean
. Le nom de l'objet MBean est java.lang:type=Memory
. Cet objet MBean a un attribut HeapMemoryUsage
dont le type de données est CompositeDataSupport. Il n'est pas numérique et ne peut pas être utilisé comme mesure. Toutefois, il représente un mappage des mesures utilisées pouvant être extraites du tas. Par conséquent, il est nécessaire de forer jusqu'à l'objet avec la clé de mappage utilisée.
Pour la mesure jvm-used-heap-after-old-gc
, il y a 2 sources : mbeans
, les deux sont au pluriel avec un 's'. La mesure est collectée dans l'ordre par définition et la première source qui retourne une mesure valide est utilisée. La raison pour laquelle il y a 2 sources, c'est que différentes versions de Java ont des noms différents pour l'outil de récupération de mémoire. Le forage value_path a également utilisé un caractère générique et toutes les valeurs de mémoire utilisées après gc de tous les espaces de mémoire sont additionnées en tant que valeur de mesure unique. Le forage jusqu'aux données dans le chemin de valeur est LastGcInfo/memoryUsageAfterGc/*/value/used
qui fait référence à : LastGcInfo(CompositeData)/memoryUsageAfterGc(TabularData)/<index>(CompositeData)/value(MemoryUsage)/used(Long)
.
Exemple d'utilisation de l'attribut 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
Dans l'exemple ci-dessus, les mesures sont collectées en haut de chaque minute. Deux mesures doivent être collectées : CacheStatistics
et DatabaseQueryTime
. La source de cette configuration de MBean ne peut être que MBean.
Pour CacheStatistics, le nom de l'objet MBean est com.cache:type=CacheServiceMXBean
. La méthode à appeler est cacheStatistics
. L'opération extrait les statistiques de cache pour le nom de cache spécifié, filtrées en fonction de son utilisateur spécifique. SessionCache
et JohnDoe
sont les valeurs de paramètre pour CacheName et UserName respectivement. L'utilisateur peut créer un mappage d'attributs utiles tels que AssociatedCacheName
, CacheHits
, CacheMisses
, InMemoryHits
, OnDiskHits
en tant que dimensions et le retourner dans le cadre des types de retour pris en charge, comme décrit ci-dessous, avec leurs valeurs correspondantes.
Pour DatabaseQueryTime, le nom de l'objet MBean est com.db:type=DbManagerMXBean
. La méthode à appeler est dbQueryTime
. Aucun paramètre n'a été configuré pour ce MBean.
- Mapper<String, Object>, Long>
- Mapper<String, Object>, Double>
- Long
- Double