Collecte de mesures
L'agent Java APM prend en charge la collecte régulière des mesures de 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 disponibles par défaut.
Pour obtenir un ensemble complet de mesures par défaut, reportez-vous à Mesures disponibles : oracle_apm_monitoring pour l'agent Java APM.
Collecte de mesures
Les mesures personnalisées sont des mesures définies par l'utilisateur qui peuvent être créées en plus des mesures par défaut existantes pour répondre à des exigences spécifiques.
oracle-apm-agent/config/<version>
.
Le fichier MetricCollection.acml
est un fichier personnalisé au format ACML (sous-ensemble de YAML) destiné à la configuration de la collecte des mesures personnalisées.
Balise ACML | Type de données | Description |
---|---|---|
<nom de groupe>: | chaîne | Groupe permettant de séparer les mesures avec des intervalles et des heures de début de collecte différents. |
<nom de mesure>: | chaîne | Nom de la mesure à collecter. Un nom de mesure correspond à une seule valeur. La convention de dénomination est une chaîne en minuscules, séparée par un tiret. |
type: | chaîne | Type de mesure. Il peut prendre la valeur measurement ou delta.
- measurement : valeur d'exécution en cours. - delta : écart de valeur entre les intervalles de collecte. |
scalar: | chaîne | Type de valeur numérique pouvant prendre la valeur long ou double. |
source: | Balise représentant le tableau des entrées source de mesure. Chaque mesure peut contenir plusieurs entrées source. Même s'il existe plusieurs entrées source, chaque entrée est vérifiée dans l'ordre au moment de la collecte. Dès qu'une entrée peut renvoyer une valeur valide, elle est utilisée pour l'entrée de mesure et les autres entrées source sont ignorées. | |
- | Elément du tableau des entrées source de mesure. | |
type: | chaîne | Type de source de mesure. Il peut prendre la valeur 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 contenir un caractère générique (*). Ce dernier n'est en revanche pas pris en charge pour le type 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 mener vers une valeur numérique. Outre le chemin racine qui doit être le nom d'attribut de l'objet mbean, le chemin fractionné peut être l'une des valeurs de chemin précédent suivantes :
Pour le type mbeans, les valeurs des objets mbean sont agrégées. De même, si le caractère générique (*) est utilisé dans le chemin du type mbeans, toutes les valeurs extraites sont agrégées. |
operation_name | chaîne | Nom de la méthode de MBean à appeler. Notez que MBean doit être inscrit auprès du serveur Platform MBean. |
paramètres (facultatif) | chaîne | Valeurs des paramètres de méthode séparés par une virgule.
Les paramètres de méthode transmis et leurs valeurs correspondantes seront capturés en tant que dimensions de mesure. Actuellement, seul le type de données String est pris en charge pour les paramètres de méthode. |
value_path
ou operationName
.
- Attribut
value_path
: permet d'extraire la mesure à partir du MBean inscrit - Attribut
operationName
: permet à l'utilisateur d'inscrire n'importe quelle classe personnalisée auprès du serveur Mbean et d'appeler la méthode Mbean indiquée paroperationName
.
Exemple avec 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 sont collectées : jvm-heap-used
et jvm-used-heap-after-old-gc
.
Pour jvm-heap-used
, il n'existe qu'une seule source, qui est mbean
. Le nom d'objet mbean est java.lang:type=Memory
. Cet objet mbean possède un attribut HeapMemoryUsage
présentant le type de données CompositeDataSupport. Il n'est pas numérique et ne peut pas être utilisé en tant que mesure. Toutefois, il représente une carte des mesures à partir desquelles la portion de mémoire utilisée peut être extraite. Par conséquent, une analyse descendante vers l'objet avec la clé de carte utilisée est requise.
jvm-used-heap-after-old-gc
dispose de 2 sources mbeans
, toutes deux au pluriel avec un 's'. La mesure est collectée dans l'ordre selon la définition. La première source renvoyant une mesure valide est utilisée. Il existe deux sources car les diverses versions de Java ont des noms de processus Garbage Collector différents. La balise value_path effectue également une analyse descendante vers le caractère générique utilisé et l'ensemble de la mémoire utilisée après l'addition des valeurs Garbage Collector de tous les espaces de mémoire sous la forme d'une valeur de mesure unique. L'analyse descendante des données du chemin de valeur correspond à LastGcInfo/memoryUsageAfterGc/*/value/used
, qui fait référence à LastGcInfo(CompositeData)/memoryUsageAfterGc(TabularData)/<index>(CompositeData)/value(MemoryUsage)/used(Long)
.
Exemple avec 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 indiqué, filtrées par son utilisateur spécifique. SessionCache
et JohnDoe
sont les valeurs de paramètre pour CacheName et UserName respectivement. L'utilisateur peut construire une correspondance d'attributs utiles tels que AssociatedCacheName
, CacheHits
, CacheMisses
, InMemoryHits
, OnDiskHits
en tant que dimensions et la renvoyer 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.
- Map<Map<String, Objet>, Long>
- Map<Map<String, Object>, Double>
- Long
- Double