This is an automated email from the ASF dual-hosted git repository.
AlinsRan pushed a change to branch fix/least-conn-conn-count-persist
in repository https://gitbox.apache.org/repos/asf/apisix.git
discard d86e82759 fix(balancer): clamp least_conn count and strengthen tests
discard 0ffc8285c fix(balancer): keep least_conn in-flight count across
upstream scaling
add b3182a5ba docs(mcp-bridge): add plugin doc and note upcoming
deprecation (#13640)
add 7fd4515ee feat(ai-cache): add semantic (L2) cache layer (#13632)
add 01cf1e9d5 refactor(cas-auth): drop unnecessary raw Cookie header
fallback (#13635)
add 11dfb1804 fix(ai-protocols): flatten structured message content in the
protocol layer (#13634)
add d2f94b024 fix(opentelemetry): give inject_core_spans its own tracer
cache key (#13633)
add f6d0ee804 fix(prometheus): truncate llm model-name labels to bound
cardinality (#13637)
add 5e5554f8d fix(forward-auth): re-frame buffered POST body for the auth
request (#13642)
add b83f32374 fix(ai-cache): preserve non-text content in exact key and L2
bypass (#13654)
add a2d34cd62 feat(ai-cache): add streaming support with format tagging
(#13644)
add bb70ec008 perf(zipkin): skip span tag construction for unsampled
requests (#13656)
add 7b9038835 perf(datadog): reuse one UDP socket per batch and coalesce
metrics (#13653)
add 475642852 perf(loggly): hoist per-request closure out of log phase
(#13648)
add 070a78320 test: assert admin metadata GET decrypts on first request
(#13645)
add d0c3ceed1 feat(prometheus): add metrics for AI cache hits, misses,
bypasses, and embedding latency (#13659)
add ca0c3187a fix(resource): support all plugin-bearing resource types in
fetch_latest_conf (#13663)
add 333f46a5d fix(dns): correct error() call in dns client initialization
(#13358)
add 2b6df4f3b refactor(ai-aws-content-moderation): moderate decoded LLM
content in access phase (#13647)
add 03a727644 feat(ai-aliyun-content-moderation): moderate system and tool
role content (#13646)
add dadce3a29 docs: update Debian APT repo instructions (#13660)
add 0e139c790 feat(router): add match_uri_encoded_slash to keep %2F in
path parameters (#13626)
add 7f67c2089 fix(log-rotate): reopen logs after partial rotation (#13375)
add a3a8138f6 fix(proxy-rewrite): query string discarded when
use_real_request_uri_… (#12843)
add 9962bee2b fix: reject consumer auth when secret reference fails to
resolve (#13667)
add 809455eb1 test(file-logger): cover per-node upstream_unresolved_host
mapping (#13669)
add 99106e53e fix(admin): harden stream_route superior_id dependency
checks (#13672)
add a28d9bb50 fix(ai-proxy): correct Anthropic Messages to OpenAI Chat
request conversion (#13674)
add 08aafa560 docs: improve README with quickstart, AI Gateway section,
and TOC (#13677)
add 8f327869e fix: remove dead chaos tests and bump vulnerable test
dependencies (#13679)
add c7a76b25c fix(grpc-transcode): encode empty repeated fields as JSON
arrays (#13678)
add 2f0898c1e fix: invalidate secret LRU cache on /secrets changes (#13668)
add 100be4c76 fix(datadog): cap coalesced DogStatsD datagram size, fall
back to per-metric sends (#13665)
add cbd264a31 fix(opentelemetry): validate x-request-id before using it as
trace_id (#12990)
add 1f16a6c88 fix: fetch secrets from upstream ssl config (#13062)
add 2790b2fc0 feat: raise default sizes for non-evictable shared dicts
(#13688)
add 26cd8bcce fix(balancer): keep least_conn load state across upstream
scaling
This update added new revisions after undoing existing revisions.
That is to say, some revisions that were in the old version of the
branch are not in the new version. This situation occurs
when a user --force pushes a change and generates a repository
containing something like this:
* -- * -- B -- O -- O -- O (d86e82759)
\
N -- N -- N refs/heads/fix/least-conn-conn-count-persist
(26cd8bcce)
You should already have received notification emails for all of the O
revisions, and so the following emails describe only the N revisions
from the common base, B.
Any revisions marked "omit" are not gone; other references still
refer to them. Any revisions marked "discard" are gone forever.
No new revisions were added by this update.
Summary of changes:
Makefile | 4 +
README.md | 115 +-
apisix/admin/stream_routes.lua | 22 +-
apisix/balancer.lua | 6 +-
apisix/balancer/least_conn.lua | 153 +-
apisix/balancer/priority.lua | 4 +-
apisix/cli/config.lua | 7 +-
apisix/cli/file.lua | 2 +-
apisix/cli/ngx_tpl.lua | 4 +-
apisix/cli/ops.lua | 2 +-
apisix/consumer.lua | 15 +-
apisix/discovery/consul/schema.lua | 2 +-
apisix/discovery/dns/init.lua | 2 +-
apisix/discovery/kubernetes/schema.lua | 2 +-
apisix/init.lua | 77 +-
apisix/plugins/ai-aliyun-content-moderation.lua | 86 +-
apisix/plugins/ai-aws-content-moderation.lua | 167 ++-
apisix/plugins/ai-cache.lua | 261 +++-
.../ai-cache/embeddings/azure_openai.lua} | 34 +-
apisix/plugins/ai-cache/embeddings/base.lua | 59 +
.../ai-cache/embeddings/openai.lua} | 34 +-
apisix/plugins/ai-cache/key.lua | 59 +-
apisix/plugins/ai-cache/schema.lua | 85 +-
apisix/plugins/ai-cache/semantic.lua | 349 +++++
apisix/plugins/ai-cache/stream.lua | 102 ++
apisix/plugins/ai-cache/vector-search/redis.lua | 136 ++
apisix/plugins/ai-lakera-guard.lua | 29 +-
apisix/plugins/ai-protocols/anthropic-messages.lua | 62 +-
apisix/plugins/ai-protocols/bedrock-converse.lua | 111 +-
.../anthropic-messages-to-openai-chat.lua | 380 +++--
apisix/plugins/ai-protocols/openai-chat.lua | 59 +-
apisix/plugins/ai-protocols/openai-embeddings.lua | 15 +-
apisix/plugins/ai-protocols/openai-responses.lua | 139 +-
apisix/plugins/ai-providers/base.lua | 11 +
apisix/plugins/cas-auth.lua | 26 +-
apisix/plugins/datadog.lua | 144 +-
apisix/plugins/forward-auth.lua | 6 +-
apisix/plugins/grpc-transcode/proto.lua | 7 +
apisix/plugins/log-rotate.lua | 8 +-
apisix/plugins/loggly.lua | 24 +-
apisix/plugins/opentelemetry.lua | 51 +-
apisix/plugins/prometheus.lua | 1 +
apisix/plugins/prometheus/exporter.lua | 167 ++-
apisix/plugins/proxy-rewrite.lua | 15 +
apisix/plugins/zipkin.lua | 46 +-
apisix/resource.lua | 31 +-
apisix/secret.lua | 4 +-
apisix/ssl.lua | 8 +-
apisix/ssl/router/radixtree_sni.lua | 8 +-
ci/linux_openresty_common_runner.sh | 7 +
ci/redhat-ci.sh | 6 +-
conf/config.yaml.example | 5 +
docs/en/latest/config.json | 3 +-
docs/en/latest/discovery/kubernetes.md | 6 +-
docs/en/latest/installation-guide.md | 8 +-
.../latest/plugins/ai-aliyun-content-moderation.md | 3 +-
.../en/latest/plugins/ai-aws-content-moderation.md | 61 +-
docs/en/latest/plugins/ai-cache.md | 193 ++-
docs/en/latest/plugins/mcp-bridge.md | 69 +
docs/en/latest/plugins/prometheus.md | 28 +-
docs/en/latest/plugins/skywalking.md | 6 +
docs/en/latest/plugins/zipkin.md | 6 +
docs/en/latest/router-radixtree.md | 44 +
docs/en/latest/terminology/secret.md | 4 +-
docs/zh/latest/discovery/kubernetes.md | 6 +-
docs/zh/latest/installation-guide.md | 8 +-
.../latest/plugins/ai-aliyun-content-moderation.md | 3 +-
.../zh/latest/plugins/ai-aws-content-moderation.md | 61 +-
docs/zh/latest/plugins/ai-cache.md | 193 ++-
docs/zh/latest/plugins/prometheus.md | 28 +-
docs/zh/latest/router-radixtree.md | 19 +
docs/zh/latest/terminology/secret.md | 4 +-
t/admin/plugin-metadata3.t | 52 +-
t/admin/plugins.t | 2 +-
t/admin/stream-routes-subordinate.t | 85 ++
t/chaos/delayetcd/delayetcd.go | 203 ---
t/chaos/delayetcd/delayetcd_test.go | 40 -
t/chaos/e2e.go | 25 -
t/chaos/e2e_test.go | 31 -
t/chaos/go.mod | 73 -
t/chaos/go.sum | 602 --------
t/chaos/killetcd/killetcd.go | 170 ---
t/chaos/kubernetes/deployment.yaml | 115 --
t/chaos/kubernetes/service.yaml | 43 -
t/chaos/utils/Dockerfile | 76 -
t/chaos/utils/kube_utils.go | 130 --
t/chaos/utils/setup_chaos_utils.sh | 58 -
t/chaos/utils/utils.go | 292 ----
t/cli/test_kubernetes.sh | 4 +-
t/fixtures/openai/embeddings-capital-city.json | 80 +
t/fixtures/openai/embeddings-capital.json | 80 +
t/fixtures/openai/embeddings-largest-city.json | 80 +
t/fixtures/openai/embeddings-tire.json | 80 +
t/grpc_server_example/go.mod | 11 +-
t/grpc_server_example/go.sum | 1112 +-------------
t/kubernetes/discovery/kubernetes.t | 10 +-
t/lib/ai_cache_mock.lua | 132 ++
t/lib/mock_layer4.lua | 6 +-
t/node/client-mtls.t | 252 +++-
t/node/least_conn3.t | 78 +
t/node/upstream-mtls.t | 242 ++-
t/package.json | 8 +
t/plugin/ai-aliyun-content-moderation.t | 359 +++++
t/plugin/ai-aws-content-moderation-secrets.t | 49 +-
t/plugin/ai-aws-content-moderation.t | 156 +-
t/plugin/ai-aws-content-moderation2.t | 26 +-
t/plugin/ai-cache-semantic.t | 1572 ++++++++++++++++++++
t/plugin/ai-cache-streaming.t | 909 +++++++++++
t/plugin/ai-cache.t | 4 +-
t/plugin/ai-prompt-guard.t | 208 +++
t/plugin/ai-proxy-anthropic.t | 627 +++++++-
t/plugin/ai-proxy-multi.balancer.t | 90 ++
t/plugin/datadog.t | 72 +
t/plugin/file-logger.t | 89 ++
t/plugin/forward-auth.t | 86 ++
t/plugin/grpc-transcode.t | 76 +
t/plugin/grpc-transcode4.t | 147 ++
t/plugin/grpc-web/go.mod | 8 +-
t/plugin/grpc-web/go.sum | 6 +
t/plugin/key-auth.t | 43 +
t/plugin/log-rotate.t | 147 ++
t/plugin/loggly.t | 72 +
t/plugin/opentelemetry.t | 289 +++-
t/plugin/prometheus-ai-cache.t | 270 ++++
t/plugin/prometheus-ai-proxy.t | 71 +
t/plugin/proxy-rewrite.t | 285 ++++
t/plugin/proxy-rewrite3.t | 48 +-
t/plugin/zipkin3.t | 10 +
t/pnpm-lock.yaml | 413 ++---
.../radixtree-uri-with-parameter-encoded-slash.t | 254 ++++
t/secret/secret_lru.t | 73 +
.../consumer.t => stream-node/least_conn.t} | 76 +-
132 files changed, 10381 insertions(+), 4238 deletions(-)
copy apisix/{core/math.lua => plugins/ai-cache/embeddings/azure_openai.lua}
(59%)
create mode 100644 apisix/plugins/ai-cache/embeddings/base.lua
copy apisix/{core/math.lua => plugins/ai-cache/embeddings/openai.lua} (55%)
create mode 100644 apisix/plugins/ai-cache/semantic.lua
create mode 100644 apisix/plugins/ai-cache/stream.lua
create mode 100644 apisix/plugins/ai-cache/vector-search/redis.lua
create mode 100644 docs/en/latest/plugins/mcp-bridge.md
delete mode 100644 t/chaos/delayetcd/delayetcd.go
delete mode 100644 t/chaos/delayetcd/delayetcd_test.go
delete mode 100644 t/chaos/e2e.go
delete mode 100644 t/chaos/e2e_test.go
delete mode 100644 t/chaos/go.mod
delete mode 100644 t/chaos/go.sum
delete mode 100644 t/chaos/killetcd/killetcd.go
delete mode 100644 t/chaos/kubernetes/deployment.yaml
delete mode 100644 t/chaos/kubernetes/service.yaml
delete mode 100644 t/chaos/utils/Dockerfile
delete mode 100644 t/chaos/utils/kube_utils.go
delete mode 100755 t/chaos/utils/setup_chaos_utils.sh
delete mode 100644 t/chaos/utils/utils.go
create mode 100644 t/fixtures/openai/embeddings-capital-city.json
create mode 100644 t/fixtures/openai/embeddings-capital.json
create mode 100644 t/fixtures/openai/embeddings-largest-city.json
create mode 100644 t/fixtures/openai/embeddings-tire.json
create mode 100644 t/lib/ai_cache_mock.lua
create mode 100644 t/plugin/ai-cache-semantic.t
create mode 100644 t/plugin/ai-cache-streaming.t
create mode 100644 t/plugin/grpc-transcode4.t
create mode 100644 t/plugin/prometheus-ai-cache.t
create mode 100644 t/router/radixtree-uri-with-parameter-encoded-slash.t
copy t/{config-center-yaml/consumer.t => stream-node/least_conn.t} (53%)