Skip to content

Conversation

@mrodm
Copy link
Collaborator

@mrodm mrodm commented Feb 6, 2026

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

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
Copy link
Contributor

github-actions bot commented Feb 6, 2026

✅ 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.

Copy link
Contributor

@github-actions github-actions bot left a comment

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.

@mrodm mrodm force-pushed the add-redis-otel-input-package branch from 7229d93 to 89b7269 Compare February 6, 2026 13:29
Copy link
Contributor

@github-actions github-actions bot left a comment

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.

Related to elastic/fleet-server#6277

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
show_user: false
- name: tls_server_name_override
type: text
required: false
Copy link
Contributor

Choose a reason for hiding this comment

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

⚪ LOW Consider using select type for TLS version

Why: Free-text input allows invalid TLS versions; using select would enforce valid options (1.0, 1.1, 1.2, 1.3).

Suggested change
required: false
- name: tls_min_version
type: select
required: false
title: TLS Min Version
description: Minimum acceptable TLS version.
show_user: false
options:
- text: "1.0"
value: "1.0"
- text: "1.1"
value: "1.1"
- text: "1.2"
value: "1.2"
- text: "1.3"
value: "1.3"

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

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

show_user: false
- name: tls_min_version
type: text
required: false
Copy link
Contributor

Choose a reason for hiding this comment

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

⚪ LOW Consider using select type for TLS version

Why: Free-text input allows invalid TLS versions; using select would enforce valid options (1.0, 1.1, 1.2, 1.3).

Suggested change
required: false
- name: tls_max_version
type: select
required: false
title: TLS Max Version
description: Maximum acceptable TLS version.
show_user: false
options:
- text: "1.0"
value: "1.0"
- text: "1.1"
value: "1.1"
- text: "1.2"
value: "1.2"
- text: "1.3"
value: "1.3"

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

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

@elasticmachine
Copy link

💚 Build Succeeded

History

cc @mrodm

@andrewkroh andrewkroh added New Integration Issue or pull request for creating a new integration package. documentation Improvements or additions to documentation. Applied to PRs that modify *.md files. labels Feb 6, 2026
title: TLS Server Name Override
description: Override the virtual host name of authority in TLS requests.
show_user: false
- name: tls_min_version
Copy link
Contributor

Choose a reason for hiding this comment

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

⚪ LOW Consider using select type for TLS version fields

Why: Free text input could accept invalid TLS version values, leading to runtime errors.

Suggested change
- name: tls_min_version
- name: tls_min_version
type: select
required: false
title: TLS Min Version
description: Minimum acceptable TLS version.
show_user: false
options:
- text: "1.0"
value: "1.0"
- text: "1.1"
value: "1.1"
- text: "1.2"
value: "1.2"
- text: "1.3"
value: "1.3"

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

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

"_metric_names_hash": "7774c75c9c1fa946",
"attributes": {},
"data_stream": {
"dataset": "redisreceiver.otel",
Copy link
Contributor

Choose a reason for hiding this comment

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

💬 NITPICK Dataset name differs from policy template

Why: The sample event shows dataset 'redisreceiver.otel' but the policy template configures 'redis_input_otel.redisreceiver'. This may be expected OTel behavior but could cause confusion.


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

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

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. New Integration Issue or pull request for creating a new integration package.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create Input Package: Redis receiver

5 participants