Event Gateway breaking changes and known issues

Before upgrading, review any configuration or breaking changes in the version you’re upgrading to and prior versions that affect your current installation.

1.3.x breaking changes

Review the changelog for all the changes in this release.

1.3.0

Breaking changes in the Event Gateway 1.3.0 release.

Debug and profiling endpoints disabled by default

The debug and profiling endpoints (/debug/pprof/*) are disabled by default and no longer share the health and metrics listener. Because the profiling endpoints now have their own listener, you can restrict access to them without affecting health checks and metrics scraping.

To enable them, set KEG__RUNTIME__DEBUG_LISTENER_ADDRESS_PORT to the address and port the dedicated listener should use, for example 0.0.0.0:8081. The KEG__ENABLE_DEBUG_ENDPOINTS boolean has been removed.

For more information, see the Event Gateway configuration reference.

Metrics renamed

The following metrics and labels have been renamed. Event Gateway still emits the old names as deprecated aliases during the migration window, so update your dashboards and alerts to the new names.

Old name

New name

kong.keg.lifecycle.* kong.dataplane.lifecycle.*
kong.keg.component kong.dataplane.component
kong.keg.kafka.response.received.errors kong.keg.kafka.response.received_errors
kong.keg.kafka.response.sent.errors kong.keg.kafka.response.sent_errors
kong.keg.konnect.analytics.* kong.dataplane.analytics.*

The Kafka response error metrics were renamed because the old names were ambiguous.

The following metrics are deprecated:

Deprecated metric

Replacement

kong.keg.konnect.request.duration http.client.request.duration with the kong.http.client.name label
kong.keg.konnect.analytics.queue.dropped None
otel.sdk.processor.log.errors otel.sdk.processor.log.processed with the error.type="queue_full" attribute

For all metrics in 1.3.0, see the metrics reference.

Config poll interval removed

The KEG__CONFIG_POLL_INTERVAL environment variable has been removed. The control plane and data plane protocol now uses long-polling, so the interval can no longer be configured.

1.2.x breaking changes

Review the changelog for all the changes in this release.

1.2.0

Deprecations and behavior changes in the Event Gateway 1.2.0 release.

Policy invocation result reflects the real policy result

Previously, the kong.keg.result label on kong.keg.kafka.policy.invocations reported success even when a policy failed under the mark, skip, or passthrough failure modes. These invocations now report kong.keg.result=fail. If you want to ignore failures handled by those modes, use the kong.keg.failure_mode label.

Missing fields in parsed-record CEL expressions are absent

Paths like record.value.content[...] that don’t exist are no longer placed in the context map, while explicit null values remain. To check for a field before reading or comparing it, use '<path>' in record.value.content.

Deprecated metrics and headers

Deprecated

Replacement

kong.keg.kafka.decrypt.attempts, kong.keg.kafka.encrypt.attempts, kong.keg.kafka.kscheme.attempts, and kong.keg.kafka.schema.validation.attempts The unified kong.keg.kafka.policy.invocations metric
kong.keg.konnect.analytics.bytes.sent kong.keg.konnect.analytics.sent. The replacement counter is emitted alongside the deprecated one during the migration window.
The kong/sverr-{part} header of the schema_validation policy kong/policy-failure-{konnect_id}, which carries the reason for the policy failure

1.1.x breaking changes

Review the changelog for all the changes in this release.

1.1.0

Breaking changes in the Event Gateway 1.1.0 release.

Environment variable prefix for data planes

The data plane configuration prefix has changed from KEG__KONNECT__ or KONNECT_ to KONG_KONNECT_. The old environment variables are no longer accepted.

For example, to pass configuration settings to a new data plane, you would use:

docker run -d \
-e "KONG_KONNECT_REGION=us" \
-e "KONG_KONNECT_DOMAIN=konghq.com" \
-e "KONG_KONNECT_GATEWAY_CLUSTER_ID=your-gateway-id" \
-e "KONG_KONNECT_CLIENT_CERT=example-cert" \
-e "KONG_KONNECT_CLIENT_KEY=example-key" \
-p 19092-19101:19092-19101 \
kong/kong-event-gateway:1.1.0

For more information about configuring data planes at startup and all options, see the Event Gateway configuration reference.

Metrics naming convention

Event Gateway metrics have been renamed to more closely follow OpenTelemetry semantic conventions.

Key changes:

  1. Delimiter change: _ > . (Prometheus > OTel convention)
  2. Suffix stripping: _count, _seconds, _ms, and _active suffixes removed. The unit is now in metadata only.
  3. Unit normalization: All durations are now in seconds. Previously, the metrics were a mix of seconds and ms.
  4. Label namespacing: Labels now use dotted namespaces (for example, result > kong.keg.result).
  5. Common labels changed:
    • topic > messaging.destination.name
    • policy_konnect_* > kong.konnect.policy.* and kong.keg.policy.*

For example:

  • Old metric: kong_keg_kafka_backend_connection_error_count
  • New metric: kong.keg.kafka.backend.connection.errors

Removed in 1.1:

1.0 Metric

Description

kong_keg_konnect_request_count Konnect request count histogram. Merged into kong.keg.konnect.request.duration and gained a http.response.status_code label.

New in 1.1:

1.1 Metric

Description

kong.keg.config.errors Config loading error count.
kong.keg.config.loaded Config version loaded from CP.
kong.keg.kafka.connection.errors Proxied connections that have errors.
kong.keg.kafka.decrypt.attempts Decryption attempt count.
kong.keg.kafka.encrypt.attempts Encryption attempt count.
kong.keg.kafka.kscheme.attempts Kscheme script attempt count.
kong.keg.kafka.policy.condition.failures Policy condition execution errors.

For all metrics in 1.1.0, see the metrics reference.

Help us make these docs great!

Kong Developer docs are open source. If you find these useful and want to make them better, contribute today!