Skip to content

Add redis otel input package - #17285

Merged
mrodm merged 26 commits into
mainfrom
add-redis-otel-input-package
Feb 16, 2026
Merged

Add redis otel input package#17285
mrodm merged 26 commits into
mainfrom
add-redis-otel-input-package

Conversation

@mrodm

@mrodm mrodm commented Feb 6, 2026

Copy link
Copy Markdown
Collaborator

Proposed commit message

This PR adds a new Redis OpenTelemetry Input Package (redis_input_otel) that enables Elastic users to collect metrics from Redis servers using the OpenTelemetry Collector's redisreceiver through the EDOT (Elastic Distribution of OpenTelemetry) collector.

New Package: redis_input_otel

The package provides:

  • Connection settings: endpoint, username, password, transport (tcp/unix)
  • TLS settings: insecure mode, skip verification, CA/cert/key files, server name override
  • Collection settings: collection interval, initial delay

Configuration Options

Setting Required Default Description
Endpoint Yes localhost:6379 The Redis server endpoint (host:port)
Username No - Redis ACL username (requires Redis 6.0+)
Password No - Redis password
Transport No tcp Network to use (tcp or unix)
Disable TLS No true Set to false to enable TLS
Collection Interval No 10s Time between metric collections
Initial Delay No 1s Delay before starting collection

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.
  • I have verified that any added dashboard complies with Kibana's Dashboard good practices

Author's Checklist

  • [ ]

How to test this PR locally

Related issues

Screenshots

image

Generated with Claude Code
Logo generated also with the assistance of copilot.

perk and others added 13 commits January 29, 2026 15:37
1. Fixed Duration Field Types
Changed collection_interval and initial_delay from type: text to type: duration in manifest.yml.

2. Added Missing TLS Configuration Options
Added to manifest.yml and input.yml.hbs:
tls_min_version - Minimum TLS version (1.0, 1.1, 1.2, 1.3)
tls_max_version - Maximum TLS version
tls_include_system_ca_certs_pool - Include system CA pool alongside custom CA

3. Added Dialer Timeout Option
Added dialer_timeout (duration type) for configuring connection timeout.

4. Updated Documentation
Updated both docs/README.md and _dev/build/docs/README.md to document the new fields:
Connection Settings table - Added Dialer Timeout row
TLS Settings table - Added:
TLS Min Version
TLS Max Version
Include System CA Certs Pool
Combined the Redis logo with the OpenTelemetry logo in the bottom-right corner.
The logo is 32x32px with transparent background in SVG format.

Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
The combined logo now uses the original OpenTelemetry colors:
- Orange (#f5a800) for the outer elements
- Blue (#425cc7) for the inner elements

This replaces the previous version that used blue-only (#425CC7) for
all OTel elements.

Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
Increased the OTel icon scale from 0.44 to 0.56 and adjusted positioning
to make it more visible in the bottom-right corner while maintaining the
original OTel colors (orange #f5a800 and blue #425cc7).

Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
- Increased OTel icon scale from 0.56 to 0.66 (~18% larger)
- Adjusted positioning from translate(14, 14) to translate(11, 11)
- Maintains original OTel colors (orange #f5a800 and blue #425cc7)
- 32x32px dimensions with transparent background in SVG format

Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
Updated the OpenTelemetry icon scale from 0.66 to 2 as requested,
with adjusted positioning to keep it in the bottom-right corner.

Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
@mrodm mrodm self-assigned this Feb 6, 2026
@github-actions

github-actions Bot commented Feb 6, 2026

Copy link
Copy Markdown
Contributor

✅ Vale Linting Results

No issues found on modified lines!


The Vale linter checks documentation changes against the Elastic Docs style guide.

To use Vale locally or report issues, refer to Elastic style guide for Vale.

@github-actions github-actions Bot 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.

The SVG logo file contains embedded JavaScript (a mesh gradient polyfill, lines 129-133), which poses a security risk and differs from other OTel input packages like nginx_input_otel that use clean SVGs. Please regenerate the SVG without embedded scripts - consider exporting from the SVG editor with mesh gradients rasterized or converted to standard gradients.


Why is Claude responding? | Type @claude to interact further

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

Comment thread packages/redis_input_otel/img/logo_redis_otel.svg Outdated
Comment thread packages/redis_input_otel/changelog.yml Outdated
@mrodm
mrodm force-pushed the add-redis-otel-input-package branch from 7229d93 to 89b7269 Compare February 6, 2026 13:29

@github-actions github-actions Bot 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.

The password field uses secret: true but Fleet Server bug #6277 prevents secrets from being processed in OTel configurations. This will cause authentication failures when users configure a password. The prometheus_input_otel package uses secret: false as a workaround until the bug is resolved.

If changing to secret: false, also update _dev/test/policy/test-default.expected to reflect that the password will appear directly (not as ${SECRET_0}) and secret_references should be empty.


Why is Claude responding? | Type @claude to interact further

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

Comment thread packages/redis_input_otel/manifest.yml Outdated
Related to elastic/fleet-server#6277

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Comment thread packages/redis_input_otel/manifest.yml
Comment thread packages/redis_input_otel/manifest.yml
@andrewkroh andrewkroh added the New Integration Issue or pull request for creating a new integration package. label Feb 6, 2026
@github-actions

github-actions Bot commented Feb 9, 2026

Copy link
Copy Markdown
Contributor

Claude finished @mrodm's task in 3m 31s —— View job


Adding TLS Test Policy

  • Gather context on existing test policy structure
  • Review manifest.yml for TLS variables
  • Create new test policy with TLS settings enabled
  • Commit and push changes

I've added a new test policy that sets tls_insecure to false and includes all the TLS-related variables:

New files:

  • _dev/test/policy/test-tls.yml - Test configuration with TLS enabled
  • _dev/test/policy/test-tls.expected - Expected policy output

TLS variables included in the test:

  • tls_insecure: false
  • tls_insecure_skip_verify: false
  • tls_ca_file: "/path/to/ca.crt"
  • tls_cert_file: "/path/to/client.crt"
  • tls_key_file: "/path/to/client.key"
  • tls_server_name_override: "redis.example.com"
  • tls_min_version: "1.2"
  • tls_max_version: "1.3"
  • tls_include_system_ca_certs_pool: true

Commit: 419ba94

--- | Branch add-redis-otel-input-package


Why is Claude responding? | Type @claude to interact further

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

github-actions Bot and others added 2 commits February 9, 2026 17:19
Add test policy configuration that sets tls_insecure to false and includes
all TLS-related variables: ca_file, cert_file, key_file, server_name_override,
min_version, max_version, insecure_skip_verify, and include_system_ca_certs_pool.

Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>

@github-actions github-actions Bot 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.

The package structure looks reasonable and follows existing OTel input package patterns. A few items to address:

  1. The sample_event.json dataset doesn't match the expected policy transform - this should be reconciled to ensure documentation accuracy.

  2. Minor: The boolean handling in the Handlebars template differs from similar packages like prometheus_input_otel. When tls_insecure_skip_verify is explicitly set to false, the field is omitted rather than rendered. While this may work correctly due to receiver defaults, it's worth considering consistency with other packages.


Why is Claude responding? | Type @claude to interact further

Give us feedback! React with 🚀 if perfect, 👍 if helpful, 👎 if not.

Comment thread packages/redis_input_otel/sample_event.json
Comment thread packages/redis_input_otel/agent/input/input.yml.hbs
@mrodm
mrodm marked this pull request as ready for review February 10, 2026 15:23
@mrodm
mrodm requested a review from a team as a code owner February 10, 2026 15:23
@mrodm
mrodm requested a review from a team February 10, 2026 15:24
Comment thread packages/redis_input_otel/_dev/test/policy/test-default.expected

@teresaromero teresaromero 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.

👍🏻 looks good

@elasticmachine

Copy link
Copy Markdown

💚 Build Succeeded

History

cc @mrodm

@mrodm

mrodm commented Feb 11, 2026

Copy link
Copy Markdown
Collaborator Author

Hi @elastic/obs-infraobs-integrations, as you are codeowners of the redis package:

github: elastic/obs-infraobs-integrations

Do you have any suggestions or comments for this PR that introduces a new input OTel package for the redis receiver?

Thanks in advance!

{{/if}}
processors:
resourcedetection/system:
detectors: ["system"]

@mrodm mrodm Feb 12, 2026

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

@elastic/obs-infraobs-integrations should it be added here a variable to allow specify specific attributes like in hostmetrics_input_otel for this redis input package ?
Something like ?

processors:
  resourcedetection/system:
    detectors: ["system"]
    system: {{system_config}}

Or is it not needed at all to add this processor ?

As this uses an endpoint to gather the metrics from other services, I'm not totally sure this is needed. I would like to have your opinion here.

Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

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

Right now it follows the same approach as the nginx input otel:

processors:
resourcedetection/system:
detectors: ["system"]
service:
pipelines:
metrics:
receivers: [nginx]
processors: [resourcedetection/system]

@mrodm
mrodm merged commit 30af856 into main Feb 16, 2026
13 checks passed
@mrodm
mrodm deleted the add-redis-otel-input-package branch February 16, 2026 17:12
@elastic-vault-github-plugin-prod

Copy link
Copy Markdown
Contributor

Package redis_input_otel - 0.1.0 containing this change is available at https://epr.elastic.co/package/redis_input_otel/0.1.0/

@andrewkroh andrewkroh added the Integration:redis_input_otel Redis (OpenTelemetry) label Feb 17, 2026
jakubgalecki0 pushed a commit to jakubgalecki0/integrations that referenced this pull request Feb 19, 2026
This PR adds a new Redis OpenTelemetry Input Package (redis_input_otel)
that enables Elastic users to collect metrics from Redis servers using the
OpenTelemetry Collector's redisreceiver through the EDOT (Elastic
Distribution of OpenTelemetry) collector.

---------

Co-authored-by: Marcin "Perk" Stożek <perk@elastic.co>
Co-authored-by: Bill Easton <bill.easton@elastic.co>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
navnit-elastic pushed a commit to navnit-elastic/integrations that referenced this pull request Mar 2, 2026
This PR adds a new Redis OpenTelemetry Input Package (redis_input_otel)
that enables Elastic users to collect metrics from Redis servers using the
OpenTelemetry Collector's redisreceiver through the EDOT (Elastic
Distribution of OpenTelemetry) collector.

---------

Co-authored-by: Marcin "Perk" Stożek <perk@elastic.co>
Co-authored-by: Bill Easton <bill.easton@elastic.co>
Co-authored-by: claude[bot] <41898282+claude[bot]@users.noreply.github.com>
Co-authored-by: Mario Rodriguez Molins <mrodm@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. Integration:redis_input_otel Redis (OpenTelemetry) New Integration Issue or pull request for creating a new integration package.

6 participants