Skip to content

Conversation

@timcovar
Copy link

No description provided.

akondapuram and others added 30 commits February 7, 2024 08:08
Signed-off-by: alekhya.kondapuram <alekhya.kondapuram@salesforce.com>
Bumps [actions/setup-go](https://github.com/actions/setup-go) from 2.2.0 to 5.0.0.
- [Release notes](https://github.com/actions/setup-go/releases)
- [Commits](actions/setup-go@v2.2.0...0c52d54)

---
updated-dependencies:
- dependency-name: actions/setup-go
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: alekhya.kondapuram <alekhya.kondapuram@salesforce.com>
Default gostats store flood messages on stderr except if statd or
if GOSTATS_LOGGING_SINK_DISABLED is set to "true".
This commit init store in a unambiguous way.

Signed-off-by: Guilhem Lettron <guilhem@barpilot.io>
fix #520 trailing line

Signed-off-by: Guilhem Lettron <guilhem@barpilot.io>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 2.2.4 to 3.24.9.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@v2.2.4...1b1aada)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/checkout](https://github.com/actions/checkout) from 2.7.0 to 4.1.2.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](actions/checkout@v2.7.0...9bb5618)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [docker/setup-buildx-action](https://github.com/docker/setup-buildx-action) from 1.7.0 to 3.2.0.
- [Release notes](https://github.com/docker/setup-buildx-action/releases)
- [Commits](docker/setup-buildx-action@f211e3e...2b51285)

---
updated-dependencies:
- dependency-name: docker/setup-buildx-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
only the last descriptor uses the provided descriptor value in case of
detailed metrics. when traversing the list of descriptors, the code
"loses" the previous keys. this leads to metrics like:
"test-domain.first-key_.second-key_second-value", where the last
descriptor properly uses the detailed metric descriptor value, but all
other descriptors (the first one here) are missing the value.

this patch introduces a new string builder, that builds the detailed
metric as the iteration of the input descriptor is happening.
a unit test is attached to show the behavior. it fails without the new
code, and successfully preserves all descriptor keys with the patched
code.

Signed-off-by: Johannes Brüderl <johannes.bruederl@gmail.com>
…onfigured with env vars (#549)

Signed-off-by: Zak Henry <zak@cloudnc.com>
Bumps [github.com/stretchr/testify](https://github.com/stretchr/testify) from 1.8.4 to 1.9.0.
- [Release notes](https://github.com/stretchr/testify/releases)
- [Commits](stretchr/testify@v1.8.4...v1.9.0)

---
updated-dependencies:
- dependency-name: github.com/stretchr/testify
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](actions/setup-python@0a5c615...82c7e63)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go) from 1.21.0 to 1.24.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.21.0...v1.24.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.59.0 to 1.62.1.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.59.0...v1.62.1)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.21.5 to 1.22.1.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#534)

Bumps golang from 1.21.5 to 1.22.1.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.59.0 to 1.63.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.59.0...v1.63.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: alexhwcheng <121998721+alexhwcheng@users.noreply.github.com>
…uf` (#553)

Signed-off-by: Matthieu MOREL <matthieu.morel35@gmail.com>
* Add support for unix domain sockets

Signed-off-by: Alex Reid <areid@akamai.com>

* Add documentation

Signed-off-by: Alex Reid <areid@akamai.com>

---------

Signed-off-by: Alex Reid <areid@akamai.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.9 to 3.24.10.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@1b1aada...4355270)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.22.1 to 1.22.2.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.62.1 to 1.63.0.
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.62.1...v1.63.0)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/lyft/gostats](https://github.com/lyft/gostats) from 0.4.12 to 0.4.13.
- [Release notes](https://github.com/lyft/gostats/releases)
- [Commits](lyft/gostats@v0.4.12...v0.4.13)

---
updated-dependencies:
- dependency-name: github.com/lyft/gostats
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…#561)

Bumps golang from 1.22.1 to 1.22.2.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3.1.0 to 4.3.3.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](actions/upload-artifact@3cea537...6546280)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/lyft/gostats](https://github.com/lyft/gostats) from 0.4.13 to 0.4.14.
- [Release notes](https://github.com/lyft/gostats/releases)
- [Commits](lyft/gostats@v0.4.13...v0.4.14)

---
updated-dependencies:
- dependency-name: github.com/lyft/gostats
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.24.10 to 3.25.7.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@4355270...f079b84)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…604)

Bumps [go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc](https://github.com/open-telemetry/opentelemetry-go) from 1.21.0 to 1.27.0.
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.21.0...v1.27.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps alpine from `51b6726` to `77726ef`.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
stefansedich and others added 30 commits January 11, 2025 00:39
Signed-off-by: Stefan Sedich <stefan.sedich@gmail.com>
* chore: replace dots in ipv4 addresses with slashes

Signed-off-by: Rolf Ahrenberg <rolf.ahrenberg@saunalahti.fi>

* chore: tweak default mapper configuration for Prometheus

Signed-off-by: Rolf Ahrenberg <rolf.ahrenberg@saunalahti.fi>

---------

Signed-off-by: Rolf Ahrenberg <rolf.ahrenberg@saunalahti.fi>
Bumps golang from 1.23.3 to 1.23.5.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.23.3 to 1.23.5.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.23.5 to 1.24.0.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps alpine from 3.20.3 to 3.21.3.

---
updated-dependencies:
- dependency-name: alpine
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.24.0 to 1.24.1.

---
updated-dependencies:
- dependency-name: golang
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Signed-off-by: Prabhjot <psb@tetrate.io>
Signed-off-by: Ignasi Barrera <nacx@apache.org>
…/net (#894)

Signed-off-by: Emese Ban <emese.ban@cloudnc.com>
Co-authored-by: Emese Ban <emese.ban@cloudnc.com>
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3.27.5 to 3.29.2.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](github/codeql-action@f09c1c0...181d5ee)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: 3.29.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.24.3 to 1.24.5.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.24.5
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.23.5 to 1.24.5.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.24.5
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…mit units (#941)

Updates the go-control-plane/ratelimit module to v0.1.1-0.20250812085011
which includes support for MONTH, WEEK, and YEAR rate limit units that
were added in commit acb1b95dadd4859dea1a0c62f1c0997786c102ec.

This fixes the issue where rate limit configurations using "Month" unit
were failing with "invalid rate limit unit '5'" error because the
previous version did not include the enum definitions for these units.

Fixes envoyproxy/ratelimit#XXX

Signed-off-by: Dmitry K <okdas@pm.me>
Bumps golang from 1.24.5 to 1.24.6.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.24.6
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps alpine from 3.21.3 to 3.22.2.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 3.22.2
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps alpine from `1e42bbe` to `4b7ce07`.

---
updated-dependencies:
- dependency-name: alpine
  dependency-version: 4b7ce07002c69e8f3d704a9c5d6fd3053be500b7f1c69fc0d80990c2ad8dd412
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.24.6 to 1.25.3.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.25.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps golang from 1.24.5 to 1.25.3.

---
updated-dependencies:
- dependency-name: golang
  dependency-version: 1.25.3
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…980)

Bumps google.golang.org/protobuf from 1.36.7 to 1.36.10.

---
updated-dependencies:
- dependency-name: google.golang.org/protobuf
  dependency-version: 1.36.10
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
#993)

* Replace Alpine with Google's distroless static image for enhanced security
and simplified maintenance. Includes CA certificates automatically and
provides debug variant for troubleshooting.

* security: pin distroless image to SHA and use nonroot variant

- Pin gcr.io/distroless/static-debian12:nonroot to specific SHA digest
- Ensures deterministic builds and prevents supply chain attacks
- Use nonroot variant for enhanced security (runs as UID 65532)
- Follows same pattern as Envoy proxy for consistency
- Update documentation to reflect security improvements
* Add field to add unspecified value to metric

Signed-off-by: xuannam230201 <xuannam230201@gmail.com>
Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Update README.md to pass docs_check_format check

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Update format to pass pre-commit check

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Update based on comments and add more unit tests

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

---------

Signed-off-by: xuannam230201 <xuannam230201@gmail.com>
Signed-off-by: Nam Dang <xuannam230201@gmail.com>
* Add share_threshold to make wild card values can share rate limit threshold

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Implement lazy initilization based on reviews

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

---------

Signed-off-by: Nam Dang <xuannam230201@gmail.com>
* (fixes): local cache stat test fixes

Signed-off-by: Sagar Waidande <sagar10018233@gmail.com>

* (fixes): invoke TestOverLimitWithStopCacheKeyIncrementWhenOverlimitConfig local cache stat tests

Signed-off-by: Sagar Waidande <sagar10018233@gmail.com>

---------

Signed-off-by: Sagar Waidande <sagar10018233@gmail.com>
* Fix: Preserve metrics for wild card

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Fix: Unify matchedWildCardKey for if-else statement

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Fix: Remove hasShareThreshold conditional check in non-wild-card block

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Fix: Prevent log debug to creating stats from executing twice per request

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Fix: Remove redundant assignment

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Fix: Remove dead code

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

* Refactor: unify logic to include value to stats

Signed-off-by: Nam Dang <xuannam230201@gmail.com>

---------

Signed-off-by: Nam Dang <xuannam230201@gmail.com>
…1018)

* feat: Add Pool On-Empty Behavior Configuration for Redis Connections

Signed-off-by: notdu <huudutg@gmail.com>

* update

Signed-off-by: notdu <huudutg@gmail.com>

* update

Signed-off-by: notdu <huudutg@gmail.com>

* update

Signed-off-by: notdu <huudutg@gmail.com>

---------

Signed-off-by: notdu <huudutg@gmail.com>
* fix: apply TLS and auth config to Redis Sentinel connections

When using Redis Sentinel with TLS enabled, the client was failing
to connect to Sentinel nodes because the TLS configuration was not
being applied to the SentinelConnFunc. This caused "SSL wrong version
number" errors and connection resets.

This fix adds a sentinelDialFunc that properly applies:
- TLS configuration (when REDIS_TLS=true)
- Authentication settings (when REDIS_AUTH is set)
- Connection timeout settings

The fix mirrors the approach used for the main Redis connection
dial function, ensuring consistent configuration across both
Sentinel and data node connections.

Fixes connection to Redis Sentinel over TLS.
Signed-off-by: Stefan Kolesnikowicz <stefan@sandnetworks.com>
Signed-off-by: stekole <stefan@sandnetworks.com>

* fix: apply TLS and auth config to Redis Sentinel connections

When using Redis Sentinel with TLS enabled, the client was failing
to connect to Sentinel nodes because the TLS configuration was not
being applied to the SentinelConnFunc. This caused "SSL wrong version
number" errors and connection resets.

This fix adds a sentinelDialFunc that properly applies:
- TLS configuration (when REDIS_TLS=true)
- Authentication settings (when REDIS_AUTH is set)
- Connection timeout settings

The fix mirrors the approach used for the main Redis connection
dial function, ensuring consistent configuration across both
Sentinel and data node connections.

Fixes connection to Redis Sentinel over TLS.
Signed-off-by: Stefan Kolesnikowicz <stefan@sandnetworks.com>
Signed-off-by: stekole <stefan@sandnetworks.com>

* fix: apply TLS and auth config to Redis Sentinel connections

When using Redis Sentinel with TLS enabled, the client was failing
to connect to Sentinel nodes because the TLS configuration was not
being applied to the SentinelConnFunc. This caused "SSL wrong version
number" errors and connection resets.

This fix adds a sentinelDialFunc that properly applies:
- TLS configuration (when REDIS_TLS=true)
- Authentication settings (when REDIS_AUTH is set)
- Connection timeout settings

The fix mirrors the approach used for the main Redis connection
dial function, ensuring consistent configuration across both
Sentinel and data node connections.

Fixes connection to Redis Sentinel over TLS.
Signed-off-by: Stefan Kolesnikowicz <stefan@sandnetworks.com>
Signed-off-by: stekole <stefan@sandnetworks.com>

---------

Signed-off-by: Stefan Kolesnikowicz <stefan@sandnetworks.com>
Signed-off-by: stekole <stefan@sandnetworks.com>
* add support for response dynamic metadata

Signed-off-by: zirain <zirain2009@gmail.com>

* address Colin's comment

Signed-off-by: zirain <zirain2009@gmail.com>

---------

Signed-off-by: zirain <zirain2009@gmail.com>
* feat: upgrade radix from v3 to v4

Upgrade radix Redis client from v3.8.1 to v4.1.4.

Main changes:
- Import paths: radix/v3 -> radix/v4
- Pool/Cluster/Sentinel use Config.New() instead of New()
- All client operations require context.Context parameter
- Dialer setup changed from functional options to struct config
- Pipelining uses radix.NewPipeline() and Append()
- Write buffering via Dialer.WriteFlushInterval

Breaking from v3:
- Pool on-empty behavior (WAIT/CREATE/ERROR) not available
- REDIS_PIPELINE_LIMIT setting deprecated (no effect in v4)

Tested with existing test suite - all tests passing.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* docs: update pipeline settings for radix v4

Update documentation to reflect radix v4's pipeline behavior:

- REDIS_PIPELINE_WINDOW now sets WriteFlushInterval (auto-flush timing)
- REDIS_PIPELINE_LIMIT deprecated - no effect in v4
- Add REDIS_USE_EXPLICIT_PIPELINE for manual pipeline control
- Required for Redis Cluster: PIPELINE_WINDOW must be non-zero

Update terminology from "implicit pipelining" to "write buffering"
to better match radix v4's actual behavior.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* test: update tests for radix v4

- Add useExplicitPipeline parameter to test client creation
- Update error assertions for v4's error message format
  (v4 prefixes with "response returned from Conn:")
- Handle different connection errors (EOF, connection reset, broken pipe)
- Update radix.FlatCmd usage for v4 API

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* chore: add deprecation warning for REDIS_PIPELINE_LIMIT

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* test: fix Redis cluster test config for radix v4

Replace deprecated RedisPipelineLimit with RedisPipelineWindow in
configRedisCluster function. Radix v4 requires WriteFlushInterval
(RedisPipelineWindow) for cluster mode buffering instead of the
deprecated pipeline limit setting.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* style: fix gofmt struct field alignment in settings.go

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* fix: fail fast on unsupported REDIS_POOL_ON_EMPTY_BEHAVIOR settings

Radix v4 does not support CREATE or ERROR behaviors for
REDIS_POOL_ON_EMPTY_BEHAVIOR. Previously, these settings were logged
as errors but the application would continue with blocking behavior,
which could cause unexpected issues in production.

Changes:
- Panic at startup when CREATE or ERROR is detected
- Prevent silent behavior changes that could cause blocking
- Update tests to verify panic behavior
- Improve migration documentation in comments

This ensures users are immediately notified of incompatible
configuration rather than experiencing unexpected blocking in production.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* fix: change REDIS_POOL_ON_EMPTY_BEHAVIOR default to WAIT

The default value 'CREATE' is not supported in radix v4 and causes
integration tests to panic at startup. Changed default to 'WAIT' which
matches radix v4's actual pool behavior (always blocks when empty).

This fixes integration test failures where tests without explicit
REDIS_POOL_ON_EMPTY_BEHAVIOR settings would panic during initialization
with: "REDIS_POOL_ON_EMPTY_BEHAVIOR=CREATE is not supported in radix v4"

Also updated documentation to clarify that CREATE/ERROR are not supported
and marked RedisPoolOnEmptyWaitDuration as deprecated.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* test: fix cluster connection timeout and context bug

- Fix WaitForTcpPort to use timeoutCtx instead of ctx
  This ensures the timeout parameter is actually respected when
  dialing TCP connections.

- Increase gRPC server startup timeout from 1s to 10s
  Radix v4 cluster connection initialization takes longer,
  especially when establishing connections to multiple cluster nodes.
  This prevents "connection refused" errors in integration tests.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* refactor: extract dialer creation logic to reduce duplication

Consolidates Redis and Sentinel dialer setup into a reusable createDialer
helper function, eliminating ~30 lines of duplicated code. Improves logging
by including connection target details (e.g., "sentinel(master,host1,host2)")
instead of generic "sentinel" string.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* refactor: remove deprecated REDIS_POOL_ON_EMPTY_WAIT_DURATION settings

Remove the deprecated poolOnEmptyWaitDuration parameter and related
configuration settings as they have no effect in radix v4. The pool
always blocks until a connection is available when using WAIT behavior.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* refactor: auto-select pipeline mode based on Redis type

Remove REDIS_USE_EXPLICIT_PIPELINE configuration option and
automatically determine pipeline mode based on Redis deployment type:

- Cluster mode: uses grouped pipeline (groups same-key commands)
  - INCRBY + EXPIRE for same key are pipelined together (same slot)
  - Reduces round-trips from 2 to 1 per key in cluster mode

- Single/Sentinel mode: uses explicit pipeline (batches all commands)
  - All commands in one pipeline for minimal latency
  - Optimal for non-cluster deployments

This simplifies configuration by removing user-facing options while
automatically choosing the optimal pipeline strategy for each Redis type.

Breaking changes:
- Remove REDIS_USE_EXPLICIT_PIPELINE env var
- Remove REDIS_PERSECOND_USE_EXPLICIT_PIPELINE env var
- Remove UseExplicitPipeline() interface method

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* docs: remove non-existent REDIS_USE_EXPLICIT_PIPELINE from README

The REDIS_USE_EXPLICIT_PIPELINE and REDIS_PERSECOND_USE_EXPLICIT_PIPELINE
settings were documented in README but do not exist in settings.go.
Removed the documentation to match the actual implementation.

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

* style: fix gofmt formatting in settings.go

Signed-off-by: seonghyun <seonghyunoh@gmail.com>

---------

Signed-off-by: seonghyun <seonghyunoh@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.