Skip to content

Redis enterprise prometheus v2 metrics #2

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
e3a20e2
v2 in progress
j8-redis Feb 7, 2025
a84b11f
v2 metrics - missing dashboards due to type issue
j8-redis Feb 27, 2025
c79b1af
remove duplicated header row
j8-redis Feb 27, 2025
0eb81f0
adjust metric names for _total being stripped from count metrics by d…
j8-redis Feb 28, 2025
00a2315
add missing db_* metrics
j8-redis Feb 28, 2025
99e84e9
metrics edits
j8-redis Mar 3, 2025
81bfbb8
new process definitions
j8-redis Mar 3, 2025
34d3b6c
add new process metrics
j8-redis Mar 3, 2025
a033a1a
node_processes_* metrics
j8-redis Mar 4, 2025
b500ae0
added missing shard metrics, still lacking shard replication descript…
j8-redis Mar 4, 2025
66fd921
added shard replication data to metadata
j8-redis Mar 6, 2025
3f07e6a
removed proxy dashboard
j8-redis Mar 6, 2025
6a3441a
blocked on csv validation
j8-redis Mar 7, 2025
0207fcc
quoted descriptions that contain commas
j8-redis Mar 17, 2025
48587ee
Merge branch 'redis_enterprise-v2_metrics_update' of github.com:redis…
j8-redis Mar 17, 2025
e0460c6
missing column in metadata
j8-redis Mar 18, 2025
eccc731
changelog entries
j8-redis Mar 18, 2025
bee7eef
add tls_ciphers sections to conf.example.yaml
j8-redis Mar 19, 2025
5bd549f
edit metric units
j8-redis Mar 19, 2025
18249d3
metadata fixes
j8-redis Mar 19, 2025
a82a2d8
rename counters to counter
j8-redis Mar 19, 2025
ff9079c
add recent db_* metrics and fix conf.yaml.example
j8-redis Apr 2, 2025
64d90f9
initial commit
j8-redis Apr 7, 2025
44db823
fix metrics data, names for testing
j8-redis Apr 7, 2025
3fa7d96
initial commit: redis_enterprise_prometheus
j8-redis Apr 8, 2025
a90d7f4
validation edits
j8-redis Apr 8, 2025
e28bc8b
merged master
j8-redis Apr 8, 2025
8c1eef2
Merge branch 'DataDog:master' into redis_enterprise_prometheus
j8-redis Apr 8, 2025
6dd0e34
ddev validate ci --sync
j8-redis Apr 8, 2025
2d13a9f
quote values containing commas in manifest
j8-redis Apr 8, 2025
fb3c6f4
lint here and in the other
j8-redis Apr 8, 2025
aedccbd
Merge branch 'master' into redis_enterprise_prometheus
j8-redis Apr 8, 2025
3219977
lint
j8-redis Apr 8, 2025
5bbc743
overlay reset of redis_enterprise files - diff against master shows o…
j8-redis Apr 9, 2025
02eed9d
re-add redis_enterprise_proxy dashboard
j8-redis Apr 9, 2025
36ff37b
fix redis_enterprise_database dashboard
j8-redis Apr 9, 2025
d75e4a4
linted array
j8-redis Apr 9, 2025
e83bcf3
metrics errors
j8-redis Apr 9, 2025
d03b76d
line too long
j8-redis Apr 9, 2025
9230995
apply patch for long line
j8-redis Apr 10, 2025
e80addc
remove duplicate line in metadata
j8-redis Apr 10, 2025
75d08ee
metadata validation
j8-redis Apr 10, 2025
5b42a5b
set envs.default.env-vars
j8-redis Apr 22, 2025
60c3dcc
ephemeral values now a tuple, needs index
j8-redis Apr 22, 2025
35685db
minor lint
j8-redis Apr 22, 2025
b25b8e5
classifier tags
j8-redis Apr 22, 2025
bc7962e
minor json tweak
j8-redis Apr 22, 2025
36d1b6b
renamed dashboards -prometheus to avoid similarity with existing
j8-redis Apr 22, 2025
5455d52
remove empty monitors and saved views
j8-redis Apr 22, 2025
c154531
Merge branch 'master' into redis_enterprise_prometheus
j8-redis Apr 23, 2025
710cd39
Merge branch 'master' into redis_enterprise_prometheus
j8-redis Apr 24, 2025
72716c4
db_config
slorello89 May 20, 2025
a14935b
Added the dashboard to observe Indexes.
foogaro Jun 6, 2025
c1ae337
Updated to use metrics V2.
foogaro Jun 6, 2025
50342e5
Merge branch 'redis-field-engineering:master' into redis_enterprise_p…
foogaro Jun 6, 2025
7be0f55
Updated the db_config V1 metric to the new database_syncer_config V2 …
foogaro Jun 6, 2025
cbe93d1
Added back the db_config metric.
foogaro Jun 6, 2025
a8db7ed
couple fixes, adding node_cpu_second_total to plugin
slorello89 Jul 8, 2025
7de4f07
adding to metrics map
slorello89 Jul 8, 2025
8fdb384
stripping total off the end of the metric name
slorello89 Jul 8, 2025
5463853
more v1 cleanup
slorello89 Jul 8, 2025
6b0dba8
bdb changes
slorello89 Jul 8, 2025
9edd072
appeasing DataDogs linter
slorello89 Jul 8, 2025
859c8be
more linter work
slorello89 Jul 8, 2025
dbabb11
hopefully the last of linter work needed
slorello89 Jul 8, 2025
c58165e
tryhing to remove from test to see if that fixes the test
slorello89 Jul 9, 2025
f7d7e9e
adding ddev validation to config models
slorello89 Jul 9, 2025
3aa03e9
adding back
slorello89 Jul 9, 2025
f203fb4
fixing formatting issues introduced by fixing sync issues
slorello89 Jul 9, 2025
0dfe4d0
ok, lets try this for validating models
slorello89 Jul 9, 2025
a3bd009
fixing unit test hopefully, maybe even fixing validator
slorello89 Jul 9, 2025
ffbe324
fixing linting issues (probably will break validator)
slorello89 Jul 9, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 9 additions & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -163,6 +163,10 @@ coverage:
target: 75
flags:
- redisenterprise
Redis_Enterprise_Prometheus:
target: 75
flags:
- redis_enterprise_prometheus
Redis_Enterprise_V2:
target: 75
flags:
Expand Down Expand Up @@ -575,6 +579,11 @@ flags:
paths:
- redis_enterprise/datadog_checks/redis_enterprise
- redis_enterprise/tests
redis_enterprise_prometheus:
carryforward: true
paths:
- redis_enterprise_prometheus/datadog_checks/redis_enterprise_prometheus
- redis_enterprise_prometheus/tests
redis_sentinel:
carryforward: true
paths:
Expand Down
1 change: 1 addition & 0 deletions .github/CODEOWNERS
Original file line number Diff line number Diff line change
Expand Up @@ -164,6 +164,7 @@
/redisenterprise/ @maguec christian@redislabs.com @DataDog/ecosystems-review
/redis_cloud/ @redis-field-engineering field.engineers@redis.com
/redis_enterprise/ @redis-field-engineering field.engineers@redis.com
/redis_enterprise_prometheus/ @redis-field-engineering field.engineers@redis.com
/redis_sentinel/ @DataDog/agent-integrations
/redpanda/ @redpanda-data support@redpanda.com
/resilience4j/ @willianccs willianccs@gmail.com
Expand Down
19 changes: 19 additions & 0 deletions .github/workflows/test-all.yml
Original file line number Diff line number Diff line change
Expand Up @@ -1018,6 +1018,25 @@ jobs:
test-py3: ${{ inputs.test-py3 }}
setup-env-vars: "${{ inputs.setup-env-vars }}"
secrets: inherit
jd9748f1:
uses: DataDog/integrations-core/.github/workflows/test-target.yml@master
with:
job-name: Redis Enterprise Prometheus
target: redis_enterprise_prometheus
platform: linux
runner: '["ubuntu-22.04"]'
repo: "${{ inputs.repo }}"
python-version: "${{ inputs.python-version }}"
standard: ${{ inputs.standard }}
latest: ${{ inputs.latest }}
agent-image: "${{ inputs.agent-image }}"
agent-image-py2: "${{ inputs.agent-image-py2 }}"
agent-image-windows: "${{ inputs.agent-image-windows }}"
agent-image-windows-py2: "${{ inputs.agent-image-windows-py2 }}"
test-py2: ${{ inputs.test-py2 }}
test-py3: ${{ inputs.test-py3 }}
setup-env-vars: "${{ inputs.setup-env-vars }}"
secrets: inherit
ja8f7203:
uses: DataDog/integrations-core/.github/workflows/test-target.yml@master
with:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
{
"title": "Redis Enterprise - Proxy",
"description": "Redis Enterprise Proxy presents a single, usable endpoint that hides topological complexity",
"widgets": [
Expand Down
63 changes: 63 additions & 0 deletions redis_enterprise_prometheus/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
# CHANGELOG - Redis Enterprise

## 2.0.1 / 2025-02-28

***Added***:

* Added Search metrics to metadata
* Added Search Dashboard

## 2.0.0 / 2025-02-28

***Changed***:

* Redis v2 metrics
* Renamed prefix to rdse2
* Renamed Groups

***Added***:

* Added Security Dashboard

## 1.1.2 / 2025-02-28

***Changed***:

* Update `tls_verify` handling in check code to ensure default is set to 'True'

## 1.1.1 / 2025-01-21

***Changed***:

* Represent used memory as a percentage in Shard and Database dashboards

## 1.1.0 / 2024-10-06

***Changed***:

* Renamed Replication as Active-Active

***Added***:

* Added Shard dashboard
* Added Proxy Threads dashboard

## 1.0.1 / 2024-08-09

***Changed***:

* Fixed issue with extra_metrics not being reported
* Updated configuration documentation

***Added***:

* Added Replication and Proxy Dashboards
* Added tests to check all additional metrics
* Added node_cert_expiration_seconds to Node metrics

## 1.0.0 / 2024-05-02

***Added***:

* Initial Release

103 changes: 103 additions & 0 deletions redis_enterprise_prometheus/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
# Agent Check: Redis Enterprise Prometheus

## Overview

Redis is a fast, versatile data store that supports a variety of data structures, including strings, hashes, lists, sets, streams, and more. It also offers programmability, extensibility, persistence, clustering, and high availability. The community edition of Redis adds additional data models and capabilities, which include vector search, probabilistic data structures, JSON support, and full-text search.

This integration works with on-premises and private cloud installations of [Redis Enterprise][1] using Prometheus metrics.
The integration provides metrics for four critical cluster components: clusters, databases, nodes, and shards. This allows you to monitor database throughput, memory utilization, CPU usage, connection counts, replication health, and a variety of additional metrics within Datadog.
You can use this information to understand the overall health of your Redis Enterprise clusters, diagnose application performance issues, and prevent downtime.

For a full list of supported metrics, see the [Metrics](#metrics) section below.

## Setup

### Installation

1. Run the following command to install the Agent integration:
```shell
datadog-agent integration install -t datadog-redis_enterprise_prometheus==2.0.1
```

2. Configure the integration by setting the `openmetrics_endpoint` to your cluster's master node. See [Integration][2] for further information.

3. [Restart][3] the agent.


### Configuration

Set the `openmetrics_endpoint` to point to your cluster. See the [example][4]. Leave `tls_verify` set to false.

There are two optional parameters: `extra_metrics` and `excluded_metrics`, as noted in the example configuration file.

The extra_metrics parameter takes a list of metric groups. The following are the available groups: REDIS2.REPLICATION,
REDIS2.SHARDREPL, REDIS2.LDAP, REDIS2.NETWORK, REDIS2.MEMORY, REDIS2.X509, REDIS2.DISK, REDIS2.FILESYSTEM, REDIS2.PROCESS, REDIS2.PRESSURE, REDIS2.FLASH, REDIS2.SEARCH. The default metrics groups RDSE2.REDIS_CLUSTER,
RDSE2.REDIS_DATABASE, RDSE2.REDIS_SHARD, RDSE2.REDIS_INFO, and RDSE2.REDIS_NODE are automatically inserted by the integration.

The exclude_metrics parameter takes a list of individual metrics to exclude, meaning that this information will not be
passed on to Datadog. The individual metrics should be stripped of their prefix, e.g., 'rdse2.generation' would
become 'generation'. The full list of metrics is available on the 'Data Collected' tab of the integration page, or via the link in the [Metrics](#metrics) section.
The following groups use the associated prefixes, which can be used to search for individual metrics on
the data collected page.

| Group | Prefix | Notes |
|--------------------------|----------------------------|------------------------------------------------------|
| RDSE2.REDIS_CLUSTER | rdse2. | Cluster-level metrics |
| RDSE2.REDIS_DATABASE | rdse2.endpoint_ | Database endpoint metrics |
| RDSE2.REDIS_SHARD | rdse2.redis_server_ | Shard-level Redis server metrics |
| RDSE2.REDIS_NODE | rdse2.node_ | Node-level metrics including x509 certificates |
| RDSE2.REDIS_INFO | rdse2.node_ | Node information metrics |
| REDIS2.REPLICATION | rdse2.database_syncer_ | Database replication metrics |
| REDIS2.SHARDREPL | rdse2.redis_crdt_ | Shard-level CRDT replication metrics |
| REDIS2.LDAP | rdse2.directory_ | LDAP directory service metrics |
| REDIS2.NETWORK | rdse2.node_network_ | Network interface metrics |
| REDIS2.MEMORY | rdse2.node_memory_ | Memory usage metrics |
| REDIS2.X509 | rdse2.x509_ | X509 certificate metrics |
| REDIS2.DISK | rdse2.node_disk_ | Disk I/O metrics |
| REDIS2.FILESYSTEM | rdse2.node_filesystem_ | Filesystem usage metrics |
| REDIS2.PROCESS | rdse2.node_processes_ | Process metrics |
| REDIS2.PRESSURE | rdse2.node_pressure_ | System pressure metrics |
| REDIS2.FLASH | rdse2.node_*_flash | Flash storage metrics |
| REDIS2.SEARCH | rdse2.redis_server_search_ | RediSearch module metrics |

### Validation

1. Ensure you can ping the machine, particularly in a cloud environment. Run `wget --no-check-certificate <endpoint>`
or `curl -k <endpoint>` to ensure that you can receive metrics.

2. Check the [status][5] of the Datadog agent.


## Data Collected

The current release gathers all metrics for clusters, databases, nodes, and shards. By default, it collects metrics from the following groups: RDSE2.REDIS_CLUSTER, RDSE2.REDIS_DATABASE, RDSE2.REDIS_SHARD, RDSE2.REDIS_NODE, and RDSE2.REDIS_INFO. Optionally, via the extra_metrics parameter,
data for replication, LDAP, network, memory, X509 certificates, disk, filesystem, processes, pressure, flash storage, and search can be gathered; see the list in the [Configuration](#configuration) section.


### Metrics

See [metadata.csv][6] for a list of metrics provided by this integration.


### Service Checks

Redis Enterprise does not include any service checks.


### Events

Redis Enterprise does not include any events.


## Troubleshooting

Need help? Please contact [Redis Support][8].

[1]: https://redis.com/redis-enterprise-software/overview/
[2]: https://docs.datadoghq.com/getting_started/integrations/
[3]: https://docs.datadoghq.com/agent/guide/agent-commands/#start-stop-and-restart-the-agent
[4]: https://github.com/DataDog/integrations-extras/blob/master/redis_enterprise_prometheus/datadog_checks/redis_enterprise_prometheus/data/conf.yaml.example
[5]: https://docs.datadoghq.com/agent/guide/agent-commands/#agent-status-and-information
[6]: https://github.com/DataDog/integrations-extras/blob/master/redis_enterprise_prometheus/metadata.csv
[7]: mailto:field.engineers@redis.com
[8]: https://redis.io/support/
10 changes: 10 additions & 0 deletions redis_enterprise_prometheus/assets/configuration/spec.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
name: Redis Enterprise Prometheus
files:
- name: redis_enterprise_prometheus.yaml
options:
- template: init_config
options:
- template: init_config/default
- template: instances
options:
- template: instances/default
Loading
Loading