IBM WAS
セキュリティモニタリングが使用可能です セキュリティモニタリングが使用可能です

IBM WAS

Agent Check Agentチェック

Supported OS: Linux Mac OS Windows

概要

このチェックは、Datadog Agent を通じて IBM Websphere Application Server (WAS) を監視します。このチェックは IBM WAS バージョン >= 8.5.5 をサポートします。

セットアップ

ホストで実行されている Agent 用にこのチェックをインストールおよび構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照してこの手順を行ってください。

IBM WAS Datadog インテグレーションは、有効になっている PMI カウンターを WebSphere Application Server 環境から収集します。セットアップでは PerfServlet を有効にする必要があります。PerfServlet は、Datadog が WAS からパフォーマンスデータを取得する方法を提供します。

このチェックはデフォルトで、JDBC、JVM、スレッドプール、および Servlet Session Manager のメトリクスを収集します。オプションで追加のメトリクスを指定して、”custom_queries” セクションに収集することができます。例については、サンプルチェック構成を参照してください。

インストール

IBM WAS チェックは Datadog Agent パッケージに含まれています。

PerfServlet の有効化

サーブレットの .ear ファイル (PerfServletApp.ear) は、<WAS_HOME>/installableApps ディレクトリにあります。ここで、<WAS_HOME> は WebSphere Application Server のインストールパスです。

パフォーマンスサーブレットは、他のサーブレットとまったく同様にデプロイされます。ドメイン内の単一のアプリケーションサーバーインスタンスに、サーブレットをデプロイします。

: バージョン 6.1 から PerfServlet を動作させるには、アプリケーションセキュリティを有効にする必要があります。

現在モニターされている統計セットの変更

デフォルトでは、アプリケーションサーバーは “基本” 監視用に構成されています。JVM、JDBC 接続、およびサーブレット接続を完全に可視化するには、現在モニターされているアプリケーションサーバーの統計セットを “基本” から “すべて” に変更します。

この設定は、Websphere 管理コンソールの Application servers > <YOUR_APP_SERVER> > Performance Monitoring Infrastructure (PMI) にあります。

この変更を行ったら、”適用” をクリックしてコンフィギュレーションを保存し、アプリケーションサーバーを再起動します。この変更を行ってからしばらくすると、追加した JDBC、JVM、およびサーブレットのメトリクスが Datadog に表示されます。

コンフィギュレーション

ホスト

ホストで実行中の Agent でこのチェックを構成する場合は、以下の手順に従ってください。コンテナ環境の場合は、コンテナ化セクションを参照してください。

メトリクスの収集
  1. IBM WAS のパフォーマンスデータの収集を開始するには、Agent の構成ディレクトリのルートにある conf.d/ フォルダーの ibm_was.d/conf.yaml ファイルを編集します。使用可能なすべてのコンフィギュレーションオプションの詳細については、サンプル ibm_was.d/conf.yaml を参照してください。

  2. Agent を再起動します

ログの収集

Agent バージョン 6.0 以降で利用可能

  1. Datadog Agent で、ログの収集はデフォルトで無効になっています。以下のように、datadog.yaml ファイルでこれを有効にします。

    logs_enabled: true
  2. 次に、下部にある logs 行のコメントを解除して、ibm_was.d/conf.yaml を編集します。ログの path を WAS ログファイルの正しいパスで更新してください。

    logs:
     - type: file
       path: /opt/IBM/WebSphere/AppServer/profiles/InfoSphere/logs/server1/*.log
       source: ibm_was
       service: websphere
  3. Agent を再起動します

コンテナ化

コンテナ環境の場合は、オートディスカバリーのインテグレーションテンプレートのガイドを参照して、次のパラメーターを適用してください。

メトリクスの収集
パラメーター
<インテグレーション名>ibm_was
<初期コンフィギュレーション>空白または {}
<インスタンスコンフィギュレーション>{"servlet_url": "http://%%host%%:%%port%%/wasPerfTool/servlet/perfservlet"}
ログの収集

Agent バージョン 6.0 以降で利用可能

Datadog Agent で、ログの収集はデフォルトで無効になっています。有効にする方法については、Kubernetes ログ収集のドキュメントを参照してください。

パラメーター
<LOG_CONFIG>{"source": "ibm_was", "service": "<SERVICE_NAME>"}

検証

Agent の status サブコマンドを実行し、Checks セクションの ibm_was を探します。

収集データ

メトリクス

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.

サービスのチェック

ibm_was.can_connect:
何らかの理由で Agent が PerfServlet サーバーに接続できない場合は、CRITICAL を返します。それ以外の場合は、OK を返します。

イベント

IBM WAS には、イベントは含まれません。

トラブルシューティング

ご不明な点は、Datadog のサポートチームまでお問い合わせください。