Kong Gateway OSS 2.6 Release

By on October 4, 2021

Kong Gateway (OSS) 2.6 Released

Hello, Kong Nation 👋! 

Constructed from the combined efforts of the open source community and the core engineers at Kong, Inc., today we are very proud to release the Kong Gateway (OSS) version 2.6. Please read on for more release information. 

Tuning the Engine

It was just this year that we celebrated the 6th anniversary of the Kong Gateway (OSS) and reflected on critical workloads the gateway orchestrates for organizations all over the world. One of the primary reasons that the Kong Gateway is the world’s most popular API gateway is its unparalleled performance, both in terms of its lightweight footprint, and its ability to process orders of magnitude higher requests per second with lower latency than previous generation gateways. To ensure the high-performance bar expected from our users and commercial customers is fully realized, version 2.6 includes: enhancements to our performance benchmarking system, a significant refactor to the underlying load-balancer functionality, and a number of improvements to Gateway performance itself – highlighted below:

  • Reduced unnecessary reads of ngx.var #7840
  • Loaded more indexed variables #7849
  • Optimized table creation in Balancer #7852
  • Reduce calls to ngx.update_time #7853
  • Use read-only replica for PostgreSQL meta-schema reading #7454
  • URL escaping detects cases when it’s not needed and early-exists #7742
  • Accelerated variable loading via indexes #7818
  • Removed unnecessary call to get_phase in balancer #7854

The preliminary Gateway test results with these performance improvements are looking significant 🎉. When combining the multiple test runs for 2.6 using this performance benchmarking test, the gateway is showing a 12% increase in the average requests per second (RPS) and a reduction in latency average from 2ms to 1.25ms when compared with the previous 2.5 release. 

Kong Gateway Test Results

Plugin Developments

  • AWS-Lambda: The plugin will now attempt to detect the AWS region by using AWS_REGION and AWS_DEFAULT_REGION environment variables (when not specified with the plugin configuration). This allows to specify a ‘region’ on a per Kong node basis, hence adding the ability to invoke the Lamda in the same region where Kong is located. #7765. See section “AWS Region as Environment Variable”
  • Datadog: The host and port config options can be configured from the environment variables KONG_DATADOG_AGENT_HOST and KONG_DATADOG_AGENT_PORT. This allows developers to set different destinations on a per Kong node basis, making multi-DC setups easier and in Kubernetes allows to run the Datadog agents as a daemon-set. #7463. See section “Setting host and port per Kong node basis”
  • Prometheus: A new metric data_plane_cluster_cert_expiry_timestamp is added to expose the Data Plane’s cluster_cert expiry timestamp for improved monitoring in Hybrid Mode. #7800 See section “New in 1.4.x”
  • Request Termination: A New trigger config option, which makes the plugin only activate for any requests with a header or query parameter named like the trigger. This can be a great debugging aid, without impacting actual traffic being processed. Additionally a new request-echo config option. If set, the plugin responds with a copy of  the incoming request. This eases troubleshooting when Kong is behind one or more other proxies or LB’s, especially when combined with the new ‘trigger’ option. See #6744. See descriptions in the “Parameters” table. 
  • GRPC-Gateway: Fields of type .google.protobuf.Timestamp on the gRPC side are now transcoded to and from ISO8601 strings on the REST side. #7538 And URI arguments like ..?foo.bar=x&foo.baz=y are interpreted now as structured fields, equivalent to {"foo": {"bar": "x", "baz": "y"}}. #7564 See the bottom of “Usage” for more details

– 📓 A full list of fixes and related PRs are in the CHANGELOG here.

– 🗣️ Kong Gateway (OSS) Distributions are available for download here as well.

THANK YOU

The community collectively benefits from the expertise, care and attention of individual contributors like you. With gratitude and a special thank you, we’d like to recognize the following contributors to the 2.6 release: @rallyben, @git-torrent, @EpicEric, @jiachinzhao, @flrgh, @agile6v, @utix.

Tags: