---
title: Zenoh router
description: Collect network metrics from the Zenoh routers.
breadcrumbs: Docs > Integrations > Zenoh router
---

# Zenoh router
Supported OS Integration version1.1.1
## Overview{% #overview %}

This check monitors Zenoh router.

[Zenoh](https://zenoh.io/) is an open source Zero Overhead Network Protocol.

Zenoh (/zeno/) is a pub/sub/query protocol unifying data in motion, data at rest, and computations. It elegantly blends traditional pub/sub with geo distributed storage, queries, and computations, while retaining a level of time and space efficiency that is well beyond any of the mainstream stacks.

The Zenoh router integration allows you to monitor router metrics and router/peer/client connection statuses in Datadog.

## Setup{% #setup %}

### Installation with the Datadog Agent (v7.21+ and v6.21+){% #installation-with-the-datadog-agent-v721-and-v621 %}

For Agent v7.21+ / v6.21+, follow the instructions below to install Zenoh router check on your host.

1. On your host, run the following command to install the Agent integration:

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

Note:

- The datadog-zenoh_router integration version 1.0.0 is compatible with Zenoh router versions below 1.0.
- For Zenoh router versions above or equal 1.0, integration version 1.1.0 should be used.

### Installation from the source code{% #installation-from-the-source-code %}

To install the Zenoh router check on your host:

1. Install the [developer toolkit](https://docs.datadoghq.com/developers/integrations/python.md) on any machine.

1. Run `ddev release build zenoh_router` to build the package.

1. Upload the build artifact to any host with [the Agent installed](https://app.datadoghq.com/account/settings/agent/latest)

1. On the host, run `datadog-agent integration install -w path/to/zenoh_router/dist/<ARTIFACT_NAME>.whl`.

### Configuration{% #configuration %}

1. Make sure that the [Zenoh REST API plugin](https://zenoh.io/docs/apis/rest/) is enabled.

Note:

- The default Zenoh router provides only session information.
- To access full statistics, this feature needs to be enabled at Zenoh router build time using the stats feature. For example:

```shell
cargo build --features stats
```

Alternatively, you can use routers from the [Zetta Platform](https://www.zettascale.tech/zetta/)

Edit the `zenoh_router.d/conf.yaml` file in the `conf.d/` folder at the root of your [Agent's configuration directory](https://docs.datadoghq.com/agent/guide/agent-configuration-files.md#agent-configuration-directory) to start collecting your Zenoh router metrics. See the [sample zenoh_router.d/conf.yaml](https://github.com/DataDog/integrations-extras/blob/master/zenoh_router/datadog_checks/zenoh_router/data/conf.yaml.example) for all available configuration options.

[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 `zenoh_router` under the Checks section.

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

### Metrics{% #metrics %}

|  |
|  |
| **zenoh.router.sessions**(count)                | The number of active sessions*Shown as connection*                          |
| **zenoh.router.rx\_bytes**(gauge)               | The number of received bytes*Shown as byte*                                 |
| **zenoh.router.rx\_n\_dropped**(gauge)          | The number of dropped network messages*Shown as message*                    |
| **zenoh.router.rx\_n\_msgs**(gauge)             | The number of received network messages*Shown as message*                   |
| **zenoh.router.rx\_t\_msgs**(gauge)             | The number of received transport messages*Shown as message*                 |
| **zenoh.router.rx\_z\_del\_msgs**(gauge)        | The number of received zenoh del messages*Shown as message*                 |
| **zenoh.router.rx\_z\_put\_msgs**(gauge)        | The number of received zenoh put messages*Shown as message*                 |
| **zenoh.router.rx\_z\_put\_pl\_bytes**(gauge)   | The number of received bytes in zenoh put message payloads*Shown as byte*   |
| **zenoh.router.rx\_z\_query\_msgs**(gauge)      | The number of received zenoh query messages*Shown as message*               |
| **zenoh.router.rx\_z\_query\_pl\_bytes**(gauge) | The number of received bytes in zenoh query message payloads*Shown as byte* |
| **zenoh.router.rx\_z\_reply\_msgs**(gauge)      | The number of received zenoh reply messages*Shown as message*               |
| **zenoh.router.rx\_z\_reply\_pl\_bytes**(gauge) | The number of received bytes in zenoh reply message payloads*Shown as byte* |
| **zenoh.router.tx\_bytes**(gauge)               | The number of sent bytes*Shown as byte*                                     |
| **zenoh.router.tx\_n\_dropped**(gauge)          | The number of dropped network messages*Shown as message*                    |
| **zenoh.router.tx\_n\_msgs**(gauge)             | The number of sent network messages*Shown as message*                       |
| **zenoh.router.tx\_t\_msgs**(gauge)             | The number of sent transport messages*Shown as message*                     |
| **zenoh.router.tx\_z\_del\_msgs**(gauge)        | The number of sent zenoh del messages*Shown as message*                     |
| **zenoh.router.tx\_z\_put\_msgs**(gauge)        | The number of sent zenoh put messages*Shown as message*                     |
| **zenoh.router.tx\_z\_put\_pl\_bytes**(gauge)   | The number of sent bytes in zenoh put message payloads*Shown as byte*       |
| **zenoh.router.tx\_z\_query\_msgs**(gauge)      | The number of sent zenoh query messages*Shown as message*                   |
| **zenoh.router.tx\_z\_query\_pl\_bytes**(gauge) | The number of sent bytes in zenoh query message payloads*Shown as byte*     |
| **zenoh.router.tx\_z\_reply\_msgs**(gauge)      | The number of sent zenoh reply messages*Shown as message*                   |
| **zenoh.router.tx\_z\_reply\_pl\_bytes**(gauge) | The number of sent bytes in zenoh reply message payloads*Shown as byte*     |

### Events{% #events %}

Zenoh router does not include any events.

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

**zenoh.router.can\_connect**

Returns `CRITICAL` if the Agent can't connect to the Zenoh router, OK otherwise

*Statuses: ok, critical*

## Troubleshooting{% #troubleshooting %}

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