Skip to content

[RedisEnterprise] Enable use_type flag for node and proxy datastreams - #8213

Merged
ritalwar merged 13 commits into
elastic:mainfrom
ritalwar:redisenterprise_usetype_8149
Nov 15, 2023
Merged

[RedisEnterprise] Enable use_type flag for node and proxy datastreams#8213
ritalwar merged 13 commits into
elastic:mainfrom
ritalwar:redisenterprise_usetype_8149

Conversation

@ritalwar

@ritalwar ritalwar commented Oct 16, 2023

Copy link
Copy Markdown
Contributor

Proposed commit message

This PR enables use_type flag for node and proxy datastreams of RedisEnterprise. This is required to correctly specify the metric_type mapping, as use_type enables a different layout for metrics storage, leveraging Elasticsearch types.

Checklist

  • I have reviewed tips for building integrations and this pull request is aligned with them.
  • I have verified that all data streams collect metrics or logs.
  • I have added an entry to my package's changelog.yml file.
  • I have verified that Kibana version constraints are current according to guidelines.

Related issues

Screenshots

Screenshot 2023-10-26 at 5 00 51 PM Screenshot 2023-10-26 at 5 00 40 PM Screenshot 2023-10-26 at 4 34 19 PM Screenshot 2023-10-26 at 4 30 11 PM
@ritalwar
ritalwar requested a review from a team as a code owner October 16, 2023 13:12
@elasticmachine

elasticmachine commented Oct 16, 2023

Copy link
Copy Markdown

💚 Build Succeeded

the below badges are clickable and redirect to their specific view in the CI or DOCS
Pipeline View Test View Changes Artifacts preview preview

Expand to view the summary

Build stats

  • Start Time: 2023-11-15T05:37:35.182+0000

  • Duration: 16 min 30 sec

Test stats 🧪

Test Results
Failed 0
Passed 5
Skipped 0
Total 5

🤖 GitHub comments

Expand to view the GitHub comments

To re-run your PR in the CI, just comment with:

  • /test : Re-trigger the build.

@elasticmachine

elasticmachine commented Oct 16, 2023

Copy link
Copy Markdown

🌐 Coverage report

Name Metrics % (covered/total) Diff
Packages 100.0% (0/0) 💚
Files 100.0% (0/0) 💚 3.832
Classes 100.0% (0/0) 💚 3.832
Methods 50.0% (4/8) 👎 -42.257
Lines 100.0% (0/0) 💚 11.395
Conditionals 100.0% (0/0) 💚
@ritalwar ritalwar added the enhancement New feature or request label Nov 1, 2023
Comment thread packages/redisenterprise/changelog.yml Outdated
"node": "1",
"instance": "host.docker.internal:8070",
"job": "prometheus"
},

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is this a coincidence that all node* metrics are gauge/value?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've already done the metric_type PR for this datastream and verified then there that all the node datastream metrics are gauges. Also please refer.

"listener_total_started_res": 0,
"listener_cmd_set_max": 0,
"listener_acc_latency_max": 0
"listener_resp2_clients_max": {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here, is this a coincidence that all proxy* metrics are counters?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will verify this again.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any changes here?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No, I verified all of them are counter fields, and this has been verified from the Prometheus endpoint where they are collected.
Screenshot 2023-11-09 at 1 11 06 PM

type: object
object_type: keyword
description: Label fields
- name: redisenterprise.node.*.value

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assuming the metric_type mapping will be taken in separate PR.

@ritalwar ritalwar Nov 2, 2023

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, those will be raised separately as part of the TSDB migration.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assuming the metric type mappsing is: redisenterprise.node.*.value will directly map to gauge and redisenterprise.proxy.*.counter to counter.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, we do need to explicitly specify the metric_type, and I will address this in the metric_type PR.

@lalit-satapathy lalit-satapathy left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM, Need to follow-up and ensure the TSDB mappings are updated accordingly.

description: >
Redisenterprise node gauge metric

- name: redisenterprise.node.*.counter

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this entry needed, since node is all gauge? Or is it a fallback if any nodes have counter in the future?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I believe it's a better idea to remove it. Instead of retaining a fallback, we can update it when a new field is introduced in a new version. I will also make sure to update the tested version for consistency.

type: object
object_type: keyword
description: Label fields
- name: redisenterprise.node.*.value

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Assuming the metric type mappsing is: redisenterprise.node.*.value will directly map to gauge and redisenterprise.proxy.*.counter to counter.

"listener_total_started_res": 0,
"listener_cmd_set_max": 0,
"listener_acc_latency_max": 0
"listener_resp2_clients_max": {

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Any changes here?

@shmsr shmsr changed the title [RedisEnterprise] Enable use_type flag for node and proxy datastreams. Nov 9, 2023
Comment thread packages/redisenterprise/data_stream/node/fields/fields.yml Outdated
Comment thread packages/redisenterprise/data_stream/node/fields/fields.yml

@agithomas agithomas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please verify if a change in the snapshot image is needed as part of the dashboard change?

@agithomas

Copy link
Copy Markdown
Contributor

I suppose there is SVR00002 exclusion (Mandatory filters in dashboard) in the package configuration. Would you be able to overturn this with the dashboard changes ?

Redis Enterprise integration provides monitoring of [redis](https://redis.com/) cluster. Monitoring is done via prometheus exported port of redis enterprise cluster. Once a redis enterprise [cluster](https://redis.com/redis-enterprise/technology/redis-enterprise-cluster-architecture/) is installed, prometheus port is available for monitoring. The url of the host:port(8070) needs to be passed to the hosts in the settings.

Redis Enterpise integration is tested with redislabs/redis:5.2.2-24 version.
Redis Enterpise integration is tested with redislabs/redis:7.2.4-72 version.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add a title ## Compatibility above this line.

@ritalwar

Copy link
Copy Markdown
Contributor Author

Please verify if a change in the snapshot image is needed as part of the dashboard change?

There aren't any major changes, just some adjustments to field names that aren't visible in the snapshot.

@ritalwar

Copy link
Copy Markdown
Contributor Author

I suppose there is SVR00002 exclusion (Mandatory filters in dashboard) in the package configuration. Would you be able to overturn this with the dashboard changes ?

Sorry, I don't understand why we need to overturn it.

@ritalwar
ritalwar requested a review from agithomas November 10, 2023 10:44
@agithomas

Copy link
Copy Markdown
Contributor

Sorry, I don't understand why we need to overturn it.

Ignore it, it can be taken up later in a separate PR and it is a part of package spec V3 issue addressal.

Comment thread packages/redisenterprise/data_stream/proxy/fields/fields.yml Outdated
Comment thread packages/redisenterprise/_dev/build/docs/README.md Outdated
@ritalwar
ritalwar requested a review from shmsr November 10, 2023 11:12
@shmsr

shmsr commented Nov 10, 2023

Copy link
Copy Markdown
Member

Left one more important comment: #8213 (comment)

@agithomas agithomas left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@ritalwar
ritalwar merged commit d31f40f into elastic:main Nov 15, 2023
@elasticmachine

Copy link
Copy Markdown

Package redisenterprise - 0.7.0 containing this change is available at https://epr.elastic.co/search?package=redisenterprise

@andrewkroh andrewkroh added the Integration:redisenterprise Redis Enterprise label Jul 22, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request Integration:redisenterprise Redis Enterprise

6 participants