IBM WAS
Rapport de recherche Datadog : Bilan sur l'adoption de l'informatique sans serveur Rapport : Bilan sur l'adoption de l'informatique sans serveur

IBM WAS

Agent Check Check de l'Agent

Supported OS: Linux Mac OS Windows

Présentation

Ce check permet de surveiller IBM Websphere Application Server (WAS) avec l’Agent Datadog. Il est compatible avec IBM WAS versions >= 8.5.5.

Configuration

Suivez les instructions ci-dessous pour installer et configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer ces instructions à un environnement conteneurisé.

L’intégration Datadog/IBM WAS permet de recueillir les compteurs PMI activés depuis l’environnement WebSphere Application Server. Son implémentation nécessite d’activer le servlet PerfServlet, qui offre un moyen à Datadog de récupérer les données de performance issues de WAS.

Par défaut, ce check recueille les métriques associées à JDBC, à la JVM, au pool de threads et au gestionnaire de sessions du servlet. Il est également possible de recueillir des métriques supplémentaires en les spécifiant dans la section « custom_queries ». Consultez le fichier d’exemple de configuration du check pour découvrir des exemples.

Installation

Le check IBM WAS est inclus avec le paquet de l’Agent Datadog.

Activer le servlet PerfServlet

Le fichier .ear du servlet (PerfServletApp.ear) est situé dans le répertoire <WAS_HOME>/installableApps, où <WAS_HOME> correspond au chemin d’installation de WebSphere Application Server.

Le servlet de performance se déploie de la même manière que tout autre servlet. Déployez-le sur une instance unique du serveur d’application au sein du domaine.

Remarque : depuis la version 6.1, vous devez activer la sécurité des applications pour faire fonctionner PerfServlet.

Modifier l’ensemble de statistiques actuellement surveillé

Par défaut, votre serveur d’application est uniquement configuré pour la surveillance « Basic ». Pour bénéficier d’une visibilité totale sur votre JVM, vos connexions JDBC et vos connexions servlet, remplacez la valeur de l’ensemble de statistiques actuellement surveillé pour votre serveur d’application « Basic » par « All ».

Depuis la console d’administration de WebSphere, vous pouvez accéder à ce réglage depuis Application servers > <VOTRE_SERVEUR_APP> > Performance Monitoring Infrastructure (PMI).

Une fois ce changement effectué, cliquez sur « Apply » pour enregistrer la configuration et redémarrer votre serveur d’application. Les métriques JDBC, JVM et servlet supplémentaires apparaissent quelques instants plus tard dans Datadog.

Configuration

Host

Suivez les instructions ci-dessous pour configurer ce check lorsque l’Agent est exécuté sur un host. Consultez la section Environnement conteneurisé pour en savoir plus sur les environnements conteneurisés.

Collecte de métriques
  1. Modifiez le fichier ibm_was.d/conf.yaml dans le dossier conf.d/ à la racine du répertoire de configuration de votre Agent pour commencer à recueillir vos données de performance IBM WAS. Consultez le fichier d’exemple ibm_was.d/conf.yaml pour découvrir toutes les options de configuration disponibles.

  2. Redémarrez l’Agent.

Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

  1. La collecte de logs est désactivée par défaut dans l’Agent Datadog. Vous devez l’activer dans datadog.yaml :

    logs_enabled: true
  2. Modifiez ensuite ibm_was.d/conf.yaml en supprimant la mise en commentaire des lignes logs en bas du fichier. Mettez à jour la ligne path en indiquant le bon chemin vers vos fichiers de log WAS.

    logs:
     - type: file
       path: /opt/IBM/WebSphere/AppServer/profiles/InfoSphere/logs/server1/*.log
       source: ibm_was
       service: websphere
  3. Redémarrez l’Agent.

Environnement conteneurisé

Consultez la documentation relative aux modèles d’intégration Autodiscovery pour découvrir comment appliquer les paramètres ci-dessous à un environnement conteneurisé.

Collecte de métriques
ParamètreValeur
<NOM_INTÉGRATION>ibm_was
<CONFIG_INIT>vide ou {}
<CONFIG_INSTANCE>{"servlet_url": "http://%%host%%:%%port%%/wasPerfTool/servlet/perfservlet"}
Collecte de logs

Disponible à partir des versions > 6.0 de l’Agent

La collecte des logs est désactivée par défaut dans l’Agent Datadog. Pour l’activer, consultez la section Collecte de logs avec Kubernetes.

ParamètreValeur
<CONFIG_LOG>{"source": "ibm_was", "service": "<NOM_SERVICE>"}

Validation

Lancez la sous-commande status de l’Agent et cherchez ibm_was dans la section Checks.

Données collectées

Métriques

ibm_was.can_connect
(gauge)
The ability of the integration to connect to the Perf Servlet to collect metrics
ibm_was.jdbc.create_count
(gauge)
The total number of managed connections that were created since pool creation.
Shown as connection
ibm_was.jdbc.close_count
(gauge)
The total number of managed connections that were destroyed since pool creation.
Shown as connection
ibm_was.jdbc.allocate_count
(gauge)
The total number of managed connections that were allocated since pool creation.
Shown as connection
ibm_was.jdbc.return_count
(gauge)
The total number of managed connections that were returned since pool creation.
Shown as connection
ibm_was.jdbc.pool_size
(gauge)
The size of the connection pool.
ibm_was.jdbc.free_pool_size
(gauge)
The number of managed connections that are in the free pool.
Shown as connection
ibm_was.jdbc.waiting_thread_count
(gauge)
The number of threads that are currently waiting for a connection.
Shown as thread
ibm_was.jdbc.fault_count
(gauge)
The total number of faults, such as timeouts, in the connection pool.
ibm_was.jdbc.percent_used
(gauge)
The percent of the pool that is in use.
ibm_was.jdbc.percent_maxed
(gauge)
The percent of the time that all connections are in use.
ibm_was.jdbc.use_time
(gauge)
The average time in milliseconds that a connection is in use.
Shown as millisecond
ibm_was.jdbc.wait_time
(gauge)
The average waiting time in milliseconds until a connection is granted if a connection is not currently available.
Shown as millisecond
ibm_was.jdbc.managed_connection_count
(gauge)
The total number of managed connections in the free, shared, and unshared pools.
Shown as connection
ibm_was.jdbc.connection_handle_count
(gauge)
The number of connections that are in use. Can include multiple connections that are shared from a single managed connection.
Shown as connection
ibm_was.jdbc.prep_stmt_cache_discard_count
(gauge)
The total number of statements that are discarded by the least recently used (LRU) algorithm of the statement cache.
ibm_was.jdbc.jdbc_time
(gauge)
The average time in milliseconds spent running in the JDBC driver that includes time that is spent in the JDBC driver, network, and database.
Shown as millisecond
ibm_was.jvm.heap_size
(gauge)
Deprecated, use ibm_was.jvm.heap_size_gauge instead
ibm_was.jvm.free_memory
(gauge)
Deprecated, use ibm_was.jvm.free_memory_gauge instead
ibm_was.jvm.used_memory
(gauge)
Deprecated, use ibm_was.jvm.used_memory_gauge instead
ibm_was.jvm.up_time
(gauge)
Deprecated, use ibm_was.jvm.up_time_gauge instead
ibm_was.jvm.process_cpu_usage
(gauge)
Deprecated, use ibm_was.jvm.process_cpu_usage_gauge instead
Shown as percent
ibm_was.jvm.heap_size_gauge
(gauge)
The total memory in the JVM run time
Shown as thread
ibm_was.jvm.free_memory_gauge
(gauge)
The free memory in the JVM run time
Shown as thread
ibm_was.jvm.used_memory_gauge
(gauge)
The used memory in the JVM run time
Shown as byte
ibm_was.jvm.up_time_gauge
(gauge)
The amount of time that the JVM is running
Shown as second
ibm_was.jvm.process_cpu_usage_gauge
(gauge)
The CPU Usage (in percent) of the Java virtual machine.
Shown as percent
ibm_was.thread_pools.create_count
(gauge)
The total number of threads created
Shown as thread
ibm_was.thread_pools.destroy_count
(gauge)
The total number of threads destroyed
Shown as thread
ibm_was.thread_pools.active_count
(gauge)
The number of concurrently active threads
Shown as thread
ibm_was.thread_pools.pool_size
(gauge)
The average number of threads in pool
Shown as thread
ibm_was.thread_pools.percent_maxed
(gauge)
The average percent of the time that all threads are in use
Shown as percent
ibm_was.thread_pools.declaredthread_hung_count
(gauge)
The number of threads declared hung
Shown as thread
ibm_was.thread_pools.cleared_thread_hang_count
(gauge)
The number of thread hangs cleared
Shown as thread
ibm_was.thread_pools.concurrent_hung_thread_count
(gauge)
The number of concurrently hung threads
Shown as thread
ibm_was.thread_pools.active_time
(gauge)
The average time in milliseconds the threads are in active state
Shown as millisecond
ibm_was.servlet_session.create_count
(gauge)
The number of sessions that were created
Shown as session
ibm_was.servlet_session.invalidate_count
(gauge)
The number of sessions that were invalidated
Shown as session
ibm_was.servlet_session.life_time
(gauge)
The average session life time in milliseconds (time invalidated - time created)
Shown as millisecond
ibm_was.servlet_session.active_count
(gauge)
The number of concurrently active sessions. A session is active if the WebSphere Application Server is currently processing a request that uses that session.
Shown as session
ibm_was.servlet_session.live_count
(gauge)
The number of local sessions that are currently cached in memory from the time at which this metric is enabled.
Shown as session
ibm_was.servlet_session.no_room_for_new_session_count
(gauge)
Applies only to session in memory with AllowOverflow=false. The number of times that a request for a new session cannot be handled because it exceeds the maximum session count.
ibm_was.servlet_session.cache_discard_count
(gauge)
The number of session objects that have been forced out of the cache. A least recently used (LRU) algorithm removes old entries to make room for new sessions and cache misses. Applicable only for persistent sessions.
Shown as session
ibm_was.servlet_session.external_read_time
(gauge)
The time (ms) taken in reading the session data from the persistent store. For multirow sessions, the metrics are for the attribute; for single row sessions, the metrics are for the entire session. Applicable only for persistent sessions. When using a JMS persistent store, only available if replicated data is serialized.
Shown as millisecond
ibm_was.servlet_session.external_read_size
(gauge)
Size of the session data read from persistent store. Applicable only for (serialized) persistent sessions; similar to external Read Time.
ibm_was.servlet_session.external_write_time
(gauge)
The time (milliseconds) taken to write the session data from the persistent store. Applicable only for (serialized) persistent sessions. Similar to external Read Time.
Shown as millisecond
ibm_was.servlet_session.external_write_size
(gauge)
The size of the session data written to persistent store. Applicable only for (serialized) persistent sessions. Similar to external Read Time.
Shown as request
ibm_was.servlet_session.affinity_break_count
(gauge)
The number of requests that are received for sessions that were last accessed from another web application. This value can indicate failover processing or a corrupt plug-in configuration.
Shown as request
ibm_was.servlet_session.time_since_last_activated
(gauge)
The time difference in milliseconds between previous and current access time stamps. Does not include session time out.
Shown as millisecond
ibm_was.servlet_session.timeout_invalidation_count
(gauge)
The number of sessions that are invalidated by timeout.
Shown as session
ibm_was.servlet_session.activate_non_exist_session_count
(gauge)
The number of requests for a session that no longer exists, presumably because the session timed out. Use this counter to help determine if the timeout is too short.
Shown as request
ibm_was.servlet_session.session_object_size
(gauge)
The size in bytes of (the serializable attributes of ) in-memory sessions. Only session objects that contain at least one serializable attribute object is counted. A session can contain some attributes that are serializable and some that are not. The size in bytes is at a session level.

Checks de service

ibm_was.can_connect :
Renvoie CRITICAL si l’Agent ne parvient pas à se connecter au PerfServlet pour une raison quelconque. Si ce n’est pas le cas, renvoie OK.

Événements

IBM WAS n’inclut aucun événement.

Dépannage

Besoin d’aide ? Contactez l’assistance Datadog.