---
title: JBoss/WildFly
description: Gathers various JMX metrics from JBoss and WildFly Applications
breadcrumbs: Docs > Integrations > JBoss/WildFly
---

# JBoss/WildFly
Supported OS Integration version3.4.0
## Overview{% #overview %}

This check monitors [JBoss](https://developers.redhat.com/products/eap/overview) and [WildFly](http://wildfly.org) applications.

**Minimum Agent version:** 6.11.0

## Setup{% #setup %}

### Installation{% #installation %}

The JBoss/WildFly check is included in the [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) package so you don't need to install anything else on your JBoss/WildFly host.

### Configuration{% #configuration %}

This check has a limit of 350 metrics per instance. The number of returned metrics is indicated in [the status page](https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information). You can specify the metrics you are interested in by editing the configuration below. To learn how to customize the collected metrics, see the [JMX Checks documentation](https://docs.datadoghq.com/integrations/java/) for more detailed instructions. If you need to monitor more metrics, contact [Datadog support](https://docs.datadoghq.com/help/).

{% tab title="Host" %}
#### Host{% #host %}

To configure this check for an Agent running on a host:

##### Metric collection{% #metric-collection %}

1. Edit the `jboss_wildfly.d/conf.yaml` file, in the `conf.d/` folder at the root of your Agent's configuration directory to start collecting your JBoss or WildFly application server's performance data. See the [sample jboss_wildfly.d/conf.yaml](https://github.com/DataDog/integrations-core/blob/master/jboss_wildfly/datadog_checks/jboss_wildfly/data/conf.yaml.example) for all available configuration options.

Depending on your server setup (particularly when using the `remote+http` JMX scheme), you may need to specify a custom JAR to connect to the server. Place the JAR on the same machine as your Agent, and add its path to the `custom_jar_paths` option in your `jboss_wildfly.d/conf.yaml` file.

**Note**: The JMX url scheme is different according to your WildFly version:

   - For Wildfly 9 and older: `service:jmx:http-remoting-jmx://<HOST>:<PORT>`
   - For Wildfly 10+: `service:jmx:remote+http://<HOST>:<PORT>`

See the [WildFly JMX subsystem configuration page](https://docs.jboss.org/author/display/WFLY9/JMX%20subsystem%20configuration.html) for more information.

1. [Restart the Agent](https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-restart-the-agent).

##### Log collection{% #log-collection %}

*Available for Agent versions >6.0*

1. Collecting logs is disabled by default in the Datadog Agent, enable it in your `datadog.yaml` file:

   ```yaml
   logs_enabled: true
   ```

1. Next, edit `jboss_wildfly.d/conf.yaml` by uncommenting the `logs` lines at the bottom. Update the logs `path` with the correct path to your JBoss log files.

   ```yaml
   logs:
     - type: file
       path: /opt/jboss/wildfly/standalone/log/*.log
       source: jboss_wildfly
       service: '<APPLICATION_NAME>'
   ```

1. [Restart the Agent](https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-restart-the-agent).

{% /tab %}

{% tab title="Containerized" %}
#### Containerized{% #containerized %}

##### Metric collection{% #metric-collection %}

For containerized environments, see the [Autodiscovery with JMX](https://docs.datadoghq.com/agent/guide/autodiscovery-with-jmx/?tab=containerizedagent) guide.

##### Log collection{% #log-collection %}

*Available for Agent versions >6.0*

Collecting logs is disabled by default in the Datadog Agent. To enable it, see [Kubernetes Log Collection](https://docs.datadoghq.com/agent/kubernetes/log/).

| Parameter      | Value                                                      |
| -------------- | ---------------------------------------------------------- |
| `<LOG_CONFIG>` | `{"source": "jboss_wildfly", "service": "<SERVICE_NAME>"}` |

{% /tab %}

### Validation{% #validation %}

[Run the Agent's status subcommand](https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information) and look for `jboss_wildfly` under the Checks section.

## Data Collected{% #data-collected %}

### Metrics{% #metrics %}

|  |
|  |
| **jboss.jdbc\_connections.active**(gauge)            | number of active connections*Shown as connection*                                                              |
| **jboss.jdbc\_connections.count**(gauge)             | number of open connections*Shown as connection*                                                                |
| **jboss.jdbc\_connections.idle**(gauge)              | number of physical connections currently idle*Shown as connection*                                             |
| **jboss.jdbc\_connections.request\_wait**(rate)      | number of requests that had to wait to obtain a physical connection*Shown as connection*                       |
| **jboss.jdbc\_preparedstatementcache.hit**(rate)     | number of times that statements from the cache were used*Shown as hit*                                         |
| **jboss.jdbc\_preparedstatementcache.miss**(rate)    | number of times that a statement request could not be satisfied with a statement from the cache*Shown as miss* |
| **jboss.jdbc\_preparedstatementcache.size**(gauge)   | number of prepared and callable statements currently cached in the statement cache                             |
| **jboss.jdbc\_xacommit.count**(rate)                 | number of XAResource commit invocations*Shown as commit*                                                       |
| **jboss.jdbc\_xarecover.count**(rate)                | number of XAResource recover invocations*Shown as transaction*                                                 |
| **jboss.jdbc\_xarollback.count**(rate)               | number of XAResource rollback invocations*Shown as transaction*                                                |
| **jboss.transactions.aborted**(rate)                 | total number of transactions which have rolled back.*Shown as transaction*                                     |
| **jboss.transactions.application\_rollbacks**(rate)  | number of transactions rolled back by the application.*Shown as transaction*                                   |
| **jboss.transactions.committed**(rate)               | number of committed transactions.*Shown as transaction*                                                        |
| **jboss.transactions.count**(rate)                   | number of transactions (top-level and nested) created so far.*Shown as transaction*                            |
| **jboss.transactions.heuristics**(rate)              | number of transactions which have terminated with heuristic outcomes*Shown as transaction*                     |
| **jboss.transactions.inflight**(gauge)               | total number of inflight (active) transactions.*Shown as transaction*                                          |
| **jboss.transactions.nested**(rate)                  | number of nested (sub) transactions created so far.*Shown as transaction*                                      |
| **jboss.transactions.resource\_rollbacks**(rate)     | number of transactions rolled back by participants.*Shown as transaction*                                      |
| **jboss.transactions.system\_rollbacks**(rate)       | number of transactions that were rolled back due to an internal system error.*Shown as transaction*            |
| **jboss.transactions.timed\_out**(rate)              | total number of transactions rolled back due to timeout.*Shown as transaction*                                 |
| **jboss.undertow\_listener.bytes\_received**(rate)   | number of bytes that have been received*Shown as byte*                                                         |
| **jboss.undertow\_listener.bytes\_sent**(rate)       | number of bytes that have been sent out*Shown as byte*                                                         |
| **jboss.undertow\_listener.error\_count**(rate)      | number of 500 responses that have been sent*Shown as request*                                                  |
| **jboss.undertow\_listener.processing\_time**(gauge) | total processing time of all requests handed by this listener*Shown as nanosecond*                             |
| **jboss.undertow\_listener.request\_count**(rate)    | number of requests served*Shown as request*                                                                    |
| **jboss.undertow\_session.active**(gauge)            | number of active sessions*Shown as session*                                                                    |
| **jboss.undertow\_session.alivetime\_avg**(gauge)    | average time (in seconds) that expired sessions had been alive*Shown as second*                                |
| **jboss.undertow\_session.alivetime\_max**(gauge)    | longest time (in seconds) that an expired session had been alive*Shown as second*                              |
| **jboss.undertow\_session.created**(rate)            | total sessions created*Shown as session*                                                                       |
| **jboss.undertow\_session.expired**(rate)            | number of sessions that have expired*Shown as session*                                                         |
| **jboss.undertow\_session.rejected**(rate)           | number of rejected sessions*Shown as session*                                                                  |

### Events{% #events %}

The JBoss/WildFly integration does not include any events.

### Service Checks{% #service-checks %}

**jboss.can\_connect**

Returns `CRITICAL` if the Agent is unable to connect to and collect metrics from the monitored JBoss/WildFly instance, `WARNING` if no metrics are collected, and `OK` otherwise.

*Statuses: ok, critical, warning*

### Collecting metrics with JMXFetch{% #collecting-metrics-with-jmxfetch %}

You can configure the Datadog Agent to collect Java application metrics through [JMXFetch](https://docs.datadoghq.com/integrations/java). To collect the default metrics configured for the JBoss/Wildfly Datadog integration, set the system property `Ddd.jmxfetch.jboss_wildfly.enabled=true`.

## Troubleshooting{% #troubleshooting %}

Need help? Contact [Datadog support](https://docs.datadoghq.com/help/).
