---
title: Riak MDC Replication
description: Track replication performance, capacity, and health
breadcrumbs: Docs > Integrations > Riak MDC Replication
---

# Riak MDC Replication
Supported OS Integration version1.0.1
## Overview{% #overview %}

This check monitors Riak replication [riak-repl](https://docs.datadoghq.com/integrations/riak_repl.md).

## Setup{% #setup %}

The Riak-Repl 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 Riak-Repl 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-riak_repl==<INTEGRATION_VERSION>
   ```

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

### Configuration{% #configuration %}

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

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

### Validation{% #validation %}

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

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

### Metrics{% #metrics %}

|  |
|  |
| **riak\_repl.server\_bytes\_sent**(gauge)                            | Total number of bytes the primary has sent*Shown as byte*                                                                                                        |
| **riak\_repl.server\_bytes\_recv**(gauge)                            | Total number of bytes the primary has received*Shown as byte*                                                                                                    |
| **riak\_repl.server\_connects**(gauge)                               | Number of times the primary connects to the client sink*Shown as connection*                                                                                     |
| **riak\_repl.server\_connect\_errors**(gauge)                        | The number of listener to site connection errors*Shown as error*                                                                                                 |
| **riak\_repl.server\_fullsyncs**(gauge)                              | Number of fullsync operations since the server was started*Shown as occurrence*                                                                                  |
| **riak\_repl.client\_bytes\_sent**(gauge)                            | Total number of bytes sent to all connected secondaries*Shown as byte*                                                                                           |
| **riak\_repl.client\_bytes\_recv**(gauge)                            | Total number of bytes the client has received since the server has been started*Shown as byte*                                                                   |
| **riak\_repl.client\_connects**(gauge)                               | Total number of sink connections made to this node*Shown as connection*                                                                                          |
| **riak\_repl.client\_connect\_errors**(gauge)                        | Total number of sink connection errors to this node*Shown as connection*                                                                                         |
| **riak\_repl.client\_redirect**(gauge)                               | Count of client connects to a non-leader node that are redirected to a leader node*Shown as connection*                                                          |
| **riak\_repl.objects\_dropped\_no\_clients**(gauge)                  | Total number of objects dropped from a full realtime queue*Shown as object*                                                                                      |
| **riak\_repl.objects\_dropped\_no\_leader**(gauge)                   | Total number of objects dropped by a sink with no leader*Shown as object*                                                                                        |
| **riak\_repl.objects\_sent**(gauge)                                  | Total number of objects sent via realtime replication*Shown as object*                                                                                           |
| **riak\_repl.objects\_forwarded**(gauge)                             | Total number of objects forwarded to the leader*Shown as object*                                                                                                 |
| **riak\_repl.elections\_elected**(gauge)                             | Total number of times a new leader has been elected*Shown as occurrence*                                                                                         |
| **riak\_repl.elections\_leader\_changed**(gauge)                     | Total number of times a Riak node has surrendered leadership*Shown as occurrence*                                                                                |
| **riak\_repl.rt\_source\_errors**(gauge)                             | Total number of source errors detected on the source node*Shown as error*                                                                                        |
| **riak\_repl.rt\_sink\_errors**(gauge)                               | Total number of sink errors detected on the source node*Shown as error*                                                                                          |
| **riak\_repl.rt\_dirty**(gauge)                                      | Number of errors detected that can prevent objects from being replicated via realtime*Shown as error*                                                            |
| **riak\_repl.realtime\_send\_kbps**(gauge)                           | Total number of bytes realtime has sent*Shown as kibibyte*                                                                                                       |
| **riak\_repl.realtime\_recv\_kbps**(gauge)                           | Total number of bytes realtime has received*Shown as kibibyte*                                                                                                   |
| **riak\_repl.fullsync\_send\_kbps**(gauge)                           | Total number of bytes fullsync has sent*Shown as kibibyte*                                                                                                       |
| **riak\_repl.fullsync\_recv\_kbps**(gauge)                           | Total number of bytes fullsync has received*Shown as kibibyte*                                                                                                   |
| **riak\_repl.realtime\_queue\_stats.percent\_bytes\_used**(gauge)    | Percentage of realtime queue used (max_bytes/bytes)*Shown as percent*                                                                                            |
| **riak\_repl.realtime\_queue\_stats.bytes**(gauge)                   | Size in bytes of all objects currently in the realtime queue*Shown as byte*                                                                                      |
| **riak\_repl.realtime\_queue\_stats.max\_bytes**(gauge)              | Size in bytes of the realtime queue*Shown as byte*                                                                                                               |
| **riak\_repl.realtime\_queue\_stats.overload\_drops**(gauge)         | Number of put transfers dropped due to an overload of the message queue of the Erlang process responsible for processing outgoing transfers*Shown as occurrence* |
| **riak\_repl.realtime\_queue\_stats\_consumers.pending**(gauge)      | Total number of objects waiting to be sent to the sink cluster*Shown as occurrence*                                                                              |
| **riak\_repl.realtime\_queue\_stats\_consumers.unacked**(gauge)      | Total number of objects waiting to be acknowledged by a queue consumer*Shown as occurrence*                                                                      |
| **riak\_repl.realtime\_queue\_stats\_consumers.drops**(gauge)        | Total number of objects dropped from the realtime queue as the result of the queue being full or other errors*Shown as occurrence*                               |
| **riak\_repl.realtime\_queue\_stats\_consumers.errs**(gauge)         | Total number of errors while pushing/popping from the realtime queue*Shown as occurrence*                                                                        |
| **riak\_repl.realtime\_source\_conn.hb\_rtt**(gauge)                 | Realtime replication heartbeat round-trip time in milliseconds, recorded on the replication source*Shown as millisecond*                                         |
| **riak\_repl.realtime\_source\_conn.sent\_seq**(gauge)               | The last realtime queue sequence number that has been transmitted*Shown as item*                                                                                 |
| **riak\_repl.realtime\_source\_conn.objects**(gauge)                 | Total number of realtime replication objects that have been successfully transmitted to the sink cluster*Shown as object*                                        |
| **riak\_repl.realtime\_sink\_conn.deactivated**(gauge)               | Total number of realtime replication objects that have been deactivated*Shown as object*                                                                         |
| **riak\_repl.realtime\_sink\_conn.source\_drops**(gauge)             | Total number of dropped put transfers from the perspective of the sink cluster*Shown as object*                                                                  |
| **riak\_repl.realtime\_sink\_conn.expected\_seq**(gauge)             | The next realtime queue sequence number that is expected*Shown as item*                                                                                          |
| **riak\_repl.realtime\_sink\_conn.acked\_seq**(gauge)                | The last realtime queue sequence number that has been acknowledged*Shown as item*                                                                                |
| **riak\_repl.realtime\_sink\_conn.pending**(gauge)                   | Total number of objects waiting to be sent to the sink cluster*Shown as object*                                                                                  |
| **riak\_repl.fullsync\_coordinator.queued**(gauge)                   | Total number of partitions that are waiting for an available process*Shown as occurrence*                                                                        |
| **riak\_repl.fullsync\_coordinator.in\_progress**(gauge)             | Total number of partitions that are being synced*Shown as occurrence*                                                                                            |
| **riak\_repl.fullsync\_coordinator.waiting\_for\_retry**(gauge)      | Total number of partitions waiting for retry*Shown as occurrence*                                                                                                |
| **riak\_repl.fullsync\_coordinator.starting**(gauge)                 | Total number of partitions connecting to remote cluster*Shown as occurrence*                                                                                     |
| **riak\_repl.fullsync\_coordinator.successful\_exits**(gauge)        | Total number of partitions successfully synced.*Shown as occurrence*                                                                                             |
| **riak\_repl.fullsync\_coordinator.error\_exits**(gauge)             | Total number of partitions for which sync failed or was aborted*Shown as occurrence*                                                                             |
| **riak\_repl.fullsync\_coordinator.retry\_exits**(gauge)             | Total number of partitions successfully synced via retry*Shown as occurrence*                                                                                    |
| **riak\_repl.fullsync\_coordinator.soft\_retry\_exits**(gauge)       | description*Shown as occurrence*                                                                                                                                 |
| **riak\_repl.fullsync\_coordinator.busy\_nodes**(gauge)              | description*Shown as node*                                                                                                                                       |
| **riak\_repl.fullsync\_coordinator.fullsyncs\_completed**(gauge)     | Total number of fullsyncs that have been completed to the specified sink cluster*Shown as occurrence*                                                            |
| **riak\_repl.fullsync\_coordinator.last\_fullsync\_duration**(gauge) | The duration (in seconds) of the last completed fullsync*Shown as second*                                                                                        |

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

The Riak-Repl integration does not include any service checks.

### Events{% #events %}

The Riak-Repl integration does not include any events.

## Troubleshooting{% #troubleshooting %}

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