---
title: flume
description: Track Sink, Channel and Source of Apache Flume Agent
breadcrumbs: Docs > Integrations > flume
---

# flume
Supported OS 
## Overview{% #overview %}

This check monitors [Apache Flume](https://flume.apache.org/).

## Setup{% #setup %}

The Flume check is not included in the [Datadog Agent](https://app.datadoghq.com/account/settings/agent/latest) package, so you need to install it.

### Installation{% #installation %}

For Agent v7.21+ / v6.21+, follow the instructions below to install the Flume check on your host. See [Use Community Integrations](https://docs.datadoghq.com/agent/guide/use-community-integrations.md) to install with the Docker Agent or earlier versions of the Agent.

1. Run the following command to install the Agent integration:

   ```shell
   datadog-agent integration install -t datadog-flume==<INTEGRATION_VERSION>
   ```

1. Configure your integration similar to core [integrations](https://docs.datadoghq.com/getting_started/integrations.md).

### Configuration{% #configuration %}

1. Configure the Flume agent to enable JMX by adding the following JVM arguments to your [flume-env.sh](https://flume.apache.org/FlumeUserGuide.html#jmx-reporting):

```gdscript3
export JAVA_OPTS="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=5445 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"
```

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

This check has a limit of 350 metrics per instance. The number of returned metrics is indicated in the status output. You can specify the metrics you are interested in by editing the configuration below. For detailed instructions on customizing the metrics to collect, see the [JMX Checks documentation](https://docs.datadoghq.com/integrations/java.md). If you need to monitor more metrics, contact [Datadog support](https://docs.datadoghq.com/help/).

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

### Validation{% #validation %}

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

### Component metrics{% #component-metrics %}

The metrics retrieved by this check depend on the source, channel, and sink used by your Flume agent. For a full list of metrics exposed by each component, review [Available Component Metrics](https://docs.datadoghq.com/agent/guide/agent-commands.md#start-stop-and-restart-the-agent) from the Apache Flume documentation. For a list of the metrics that you can see in Datadog, see the Metrics section on this page.

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

### Metrics{% #metrics %}

|  |
|  |
| **flume.channel.capacity**(gauge)                      | The maximum number of events that can be queued in the channel at any time. For channel types without a capacity limit the value will be zero.*Shown as event* |
| **flume.channel.fill\_percentage**(gauge)              | The channel fill percentage.*Shown as percent*                                                                                                                 |
| **flume.channel.size**(gauge)                          | The number of events currently queued in the channel.*Shown as event*                                                                                          |
| **flume.channel.event\_put\_attempt\_count**(count)    | The total number of events that have been attempted to be put into the channel.*Shown as event*                                                                |
| **flume.channel.event\_put\_success\_count**(count)    | The total number of events that have successfully been put into the channel.*Shown as event*                                                                   |
| **flume.channel.event\_take\_attempt\_count**(count)   | The total number of attempts that have been made to take an event from the channel.*Shown as event*                                                            |
| **flume.channel.event\_take\_success\_count**(count)   | The total number of events that have successfully been taken from the channel.*Shown as event*                                                                 |
| **flume.channel.kafka\_commit\_timer**(gauge)          | The timer for the Kafka channel commits.*Shown as time*                                                                                                        |
| **flume.channel.kafka\_event\_get\_timer**(gauge)      | The timer for the kafka channel retrieving events.*Shown as time*                                                                                              |
| **flume.channel.kafka\_event\_send\_timer**(gauge)     | The timer for the Kafka channel sending events.*Shown as time*                                                                                                 |
| **flume.channel.rollbackcount**(count)                 | The count of rollbacks from the kafka channel.*Shown as event*                                                                                                 |
| **flume.sink.event\_write\_fail**(count)               | The total number of failed write events.*Shown as event*                                                                                                       |
| **flume.sink.batch\_empty\_count**(count)              | The number of append batches attempted containing zero events.*Shown as event*                                                                                 |
| **flume.sink.channel\_read\_fail**(count)              | The number of failed read events from the channel.*Shown as event*                                                                                             |
| **flume.sink.batch\_complete\_count**(count)           | The number of append batches attempted containing the maximum number of events supported by the next hop.*Shown as event*                                      |
| **flume.sink.batch\_underflow\_count**(count)          | The number of append batches attempted containing less than the maximum number of events supported by the next hop.*Shown as event*                            |
| **flume.sink.connection\_closed\_count**(count)        | The number of connections closed by this sink.*Shown as connection*                                                                                            |
| **flume.sink.connection\_failed\_count**(count)        | The number of failed connections.*Shown as connection*                                                                                                         |
| **flume.sink.connection\_created\_count**(count)       | The number of connections created by this sink. Only applicable to some sink types.*Shown as connection*                                                       |
| **flume.sink.event\_drain\_attempt\_count**(count)     | The total number of events that have been attempted to be drained to the next hop.*Shown as event*                                                             |
| **flume.sink.event\_drain\_success\_count**(count)     | The total number of events that have successfully been drained to the next hop*Shown as event*                                                                 |
| **flume.sink.kafka\_event\_sent\_timer**(gauge)        | The timer for the Kafka sink sending events.*Shown as time*                                                                                                    |
| **flume.sink.rollbackcount**(gauge)                    | The count of rollbacks from the Kafka sink.*Shown as event*                                                                                                    |
| **flume.source.event\_read\_fail**(count)              | The total number of failed read source events.*Shown as event*                                                                                                 |
| **flume.source.channel\_write\_fail**(count)           | The total number of failed channel write events.*Shown as event*                                                                                               |
| **flume.source.event\_accepted\_count**(count)         | The total number of events successfully accepted, either through append batches or single-event appends.*Shown as event*                                       |
| **flume.source.event\_received\_count**(count)         | The total number of events received, either through append batches or single-event appends.*Shown as event*                                                    |
| **flume.source.append\_accepted\_count**(count)        | The total number of single-event appends successfully accepted.*Shown as event*                                                                                |
| **flume.source.append\_received\_count**(count)        | The total number of single-event appends received.*Shown as event*                                                                                             |
| **flume.source.open\_connection\_count**(count)        | The number of open connections*Shown as connection*                                                                                                            |
| **flume.source.generic\_processing\_fail**(count)      | The total number of generic processing failures.*Shown as event*                                                                                               |
| **flume.source.append\_batch\_accepted\_count**(count) | The total number of append batches accepted successfully.*Shown as event*                                                                                      |
| **flume.source.append\_batch\_received\_count**(count) | The total number of append batches received.*Shown as event*                                                                                                   |
| **flume.source.kafka\_commit\_timer**(gauge)           | The timer for the Kafka source committing events.*Shown as time*                                                                                               |
| **flume.source.kafka\_empty\_count**(count)            | The count of empty events from the Kafka source.*Shown as event*                                                                                               |
| **flume.source.kafka\_event\_get\_timer**(gauge)       | The timer for the Kafka source retrieving events.*Shown as time*                                                                                               |

### Events{% #events %}

Flume does not include any events.

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

**flume.can\_connect**

Returns `CRITICAL` if the Agent is unable to connect to and collect metrics from the monitored Flume instance. Returns `OK` otherwise.

*Statuses: ok, critical*

## Troubleshooting{% #troubleshooting %}

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