Units follow the case-sensitive UCUM form (e.g. s, By).
Kong Event Gateway metrics
http.client.request.duration
| Type | Unit |
|---|---|
| Histogram | s |
Duration of outbound HTTP client requests.
Labels:
kong.http.client.name: Logical name of the outbound HTTP client, set by the caller to tell multiple clients apart.http.request.method: HTTP request method. Any method outside the known set maps to_OTHER. (one ofCONNECT,DELETE,GET,HEAD,OPTIONS,PATCH,POST,PUT,TRACE)server.address: Host name of the server the request was sent to.server.port: Port of the server the request was sent to.url.scheme: URL scheme of the request, e.g.https. (one ofhttp,https)network.protocol.version: Negotiated HTTP version of the response. Absent when the request did not succeed. (one of1.0,1.1,2,3)http.response.status_code: The status code of an http response. Absent if a request did not succeed.error.type: The error type encountered on executing http request. Absent if a request was successful. (one oftimeout,connect,unknown)
kong.capability_manager.batches_sent
| Type | Unit |
|---|---|
| Counter | {batch} |
Total number of signal batches sent to the client.
Labels:
kong.control_plane: The Control Plane URL a source is polling.
kong.capability_manager.channel_send_retries
| Type | Unit |
|---|---|
| Counter | {retry} |
Total number of retries sending batches to the client channel (channel full).
Labels:
kong.control_plane: The Control Plane URL a source is polling.
kong.capability_manager.client_processing_duration
| Type | Unit |
|---|---|
| Histogram | s |
Time between sending batch to client and receiving acknowledgment.
Labels:
kong.control_plane: The Control Plane URL a source is polling.
kong.capability_manager.consecutive_failures
| Type | Unit |
|---|---|
| Gauge | {failure} |
Current number of consecutive poll failures.
Labels:
kong.control_plane: The Control Plane URL a source is polling.
kong.capability_manager.signals_received
| Type | Unit |
|---|---|
| Counter | {signal} |
Total number of signals received from the control plane (before filtering).
Labels:
kong.control_plane: The Control Plane URL a source is polling.kong.capability.type: The capability type (e.g.config_sync).
kong.capability_manager.signals_sent
| Type | Unit |
|---|---|
| Counter | {signal} |
Total number of signals sent to the client (after filtering).
Labels:
kong.control_plane: The Control Plane URL a source is polling.
kong.core.task_registry.tracked_tasks
| Type | Unit |
|---|---|
| Gauge | {task} |
Number of active tasks currently tracked by the task tracker.
Labels:
None.
kong.dataplane.analytics.events
| Type | Unit |
|---|---|
| Counter | {event} |
Analytics events handed to the pipeline.
Labels:
None.
kong.dataplane.analytics.messages.sent
| Type | Unit |
|---|---|
| Counter | {message} |
Analytics batches written to the backend.
Labels:
None.
kong.dataplane.analytics.sent
| Type | Unit |
|---|---|
| Counter | By |
Compressed analytics payload bytes written to the backend.
Labels:
None.
kong.dataplane.analytics.serializer.errors
| Type | Unit |
|---|---|
| Counter | {event} |
Errors on the analytics serializer queue.
Labels:
None.
kong.dataplane.analytics.websocket.errors
| Type | Unit |
|---|---|
| Counter | {error} |
Errors on an established analytics websocket.
Labels:
None.
kong.dataplane.lifecycle.component.ready
| Type | Unit |
|---|---|
| Gauge | {state} |
Is a specific component ready; the service being ready implies all components are ready.
Labels:
kong.dataplane.component: The component name
kong.dataplane.lifecycle.service.healthy
| Type | Unit |
|---|---|
| Gauge | {state} |
Is the service healthy.
Labels:
None.
kong.dataplane.lifecycle.service.ready
| Type | Unit |
|---|---|
| Gauge | {state} |
Is the service ready.
Labels:
None.
kong.keg.config.errors
| Type | Unit |
|---|---|
| Counter | {error} |
Count of errors when loading the config received from the control plane.
Labels:
None.
kong.keg.config.loaded
| Type | Unit |
|---|---|
| Gauge | 1 |
Version number of the configuration loaded from the control plane. Updated each time the control plane pushes a new config.
Labels:
None.
kong.keg.kafka.acl.attempts
| Type | Unit |
|---|---|
| Counter | {attempt} |
Counts the results of every ACL attempt.
Labels:
kong.keg.acl.resource_type: The type of Kafka resource being accessed (one oftransactional_id,group,topic,cluster)kong.keg.result: The result of the ACL check (allowed or denied) (one ofallowed,denied)kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.auth.virtual_cluster.processing.duration
| Type | Unit |
|---|---|
| Histogram | s |
The time spent validating client credentials against virtual cluster auth rules. Passthrough rules are always considered successful even if the backend cluster rejects the authentication.
Labels:
kong.keg.auth.mechanism: The authentication mechanism used by the clientkong.keg.result: The result of the operation (success or failure) (one ofsuccess,fail)kong.keg.auth.mediation: How the proxy mediates authentication between the client and the backend cluster. Empty when no rule matched the requested mechanism. (one ofpassthrough,validate_forward,terminate, ``)kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.backend.connection.errors
| Type | Unit |
|---|---|
| Counter | {connection} |
The number of connection errors to the backend cluster.
Labels:
kong.keg.connection.error.origin: The origin of the connection error (one ofio,peer,local)
kong.keg.kafka.backend.roundtrip.duration
| Type | Unit |
|---|---|
| Histogram | s |
The time spent communicating with backend cluster (send request and receive response).
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.connection.errors
| Type | Unit |
|---|---|
| Counter | {connection} |
The number of proxied connections that resulted in an error.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.listener.id: The Konnect listener identifierkong.konnect.listener.name: The Konnect listener namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.connections
| Type | Unit |
|---|---|
| Gauge | {connection} |
The number of active proxied connections.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.listener.id: The Konnect listener identifierkong.konnect.listener.name: The Konnect listener namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.decrypt.attempts
Deprecated. Use
kong.keg.kafka.policy.invocationsinstead.
| Type | Unit |
|---|---|
| Counter | {attempt} |
The number of attempts to decrypt records. This includes both successful and failed calls
Labels:
kong.keg.result: The result of the operation (success or failure) (one ofsuccess,fail)kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.encrypt.attempts
Deprecated. Use
kong.keg.kafka.policy.invocationsinstead.
| Type | Unit |
|---|---|
| Counter | {attempt} |
The number of attempts to encrypt records. This includes both successful and failed calls
Labels:
kong.keg.result: The result of the operation (success or failure) (one ofsuccess,fail)kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.metadata.update.duration
| Type | Unit |
|---|---|
| Histogram | s |
The time to update the metadata from the backend broker.
Labels:
kong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.namespace.topic.conflict
| Type | Unit |
|---|---|
| Gauge | 1 |
Indicates whether the namespace topic mapping encountered conflicts (1) or not (0).
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster name
kong.keg.kafka.policy.condition.failures
| Type | Unit |
|---|---|
| Counter | {failure} |
The number of times the policy condition failed to execute due to an error.
Labels:
kong.konnect.policy.id: The Konnect policy identifierkong.konnect.policy.name: The Konnect policy namekong.keg.component: The component name
kong.keg.kafka.policy.invocation.duration
| Type | Unit |
|---|---|
| Histogram | s |
The time to process a policy.
Labels:
kong.keg.failure_mode: The configured policy failure mode (one oferror,reject,passthrough,mark,skip)kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.policy.invocations
| Type | Unit |
|---|---|
| Counter | {invocation} |
The number of policy invocation for policies. This includes both successful and failed invocations.
Labels:
kong.keg.failure_mode: The configured policy failure mode (one oferror,reject,passthrough,mark,skip)kong.keg.result: The result of the operation (success or failure) (one ofsuccess,fail)kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.proxy.duration
| Type | Unit |
|---|---|
| Histogram | s |
The end-to-end time for the entire proxy operation.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.request.processing.duration
| Type | Unit |
|---|---|
| Histogram | s |
The time spent processing the received request before forwarding it to the backend cluster.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.request.received
| Type | Unit |
|---|---|
| Counter | {request} |
The number of requests coming from the client.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.request.sent
| Type | Unit |
|---|---|
| Counter | {request} |
The number of requests sent to the backend broker.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.response.processing.duration
| Type | Unit |
|---|---|
| Histogram | s |
The time spent processing the received response before forwarding it to the client.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.response.received
| Type | Unit |
|---|---|
| Counter | {response} |
The number of responses received from the backend broker.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.response.received.errors
Deprecated. Use
kong.keg.kafka.response.received_errorsinstead: the old name collided withkong.keg.kafka.response.receivedas a metric namespace.
| Type | Unit |
|---|---|
| Counter | {response} |
The number of response messages received from the backend that contain at least one error. The error_code label represents the lowest error in the response.
Labels:
kong.keg.kafka.error_code: The lowest error code in the responsekong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.response.received_errors
| Type | Unit |
|---|---|
| Counter | {response} |
The number of response messages received from the backend that contain at least one error. The error_code label represents the lowest error in the response.
Labels:
kong.keg.kafka.error_code: The lowest error code in the responsekong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.response.sent
| Type | Unit |
|---|---|
| Counter | {response} |
The number of responses sent by the proxy to the client.
Labels:
kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.response.sent.errors
Deprecated. Use
kong.keg.kafka.response.sent_errorsinstead: the old name collided withkong.keg.kafka.response.sentas a metric namespace.
| Type | Unit |
|---|---|
| Counter | {response} |
The number of response messages sent back to the client that contain at least one error.
Labels:
kong.keg.kafka.error_code: The lowest error code in the responsekong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.response.sent_errors
| Type | Unit |
|---|---|
| Counter | {response} |
The number of response messages sent back to the client that contain at least one error.
Labels:
kong.keg.kafka.error_code: The lowest error code in the responsekong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.schema.validation.attempts
Deprecated. Use
kong.keg.kafka.policy.invocationsinstead.
| Type | Unit |
|---|---|
| Counter | {attempt} |
The number of attempts to validate schema. This includes both successful and failed calls
Labels:
kong.keg.record.part: The part of the record (key or value) (one ofkey,value)kong.keg.result: The result of the operation (success or failure) (one ofsuccess,fail)kong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.keg.kafka.topic_alias.conflict
| Type | Unit |
|---|---|
| Gauge | 1 |
Emitted (value=1) when a topic alias shadows a physical topic name.
Labels:
kong.keg.kafka.topic_alias.name: The alias name that caused the conflictkong.keg.kafka.topic_alias.shadowed_topic: The physical topic name that is shadowed by the aliaskong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster name
kong.keg.konnect.analytics.bytes.sent
Deprecated. Use
kong.dataplane.analytics.sentinstead.
| Type | Unit |
|---|---|
| Counter | By |
Total number of analytics bytes sent in binary websocket messages to the analytics endpoint
Labels:
None.
kong.keg.konnect.analytics.messages.sent
Deprecated. Use
kong.dataplane.analytics.messages.sentinstead.
| Type | Unit |
|---|---|
| Counter | {message} |
Total number of analytics messages sent to the analytics endpoint.
Labels:
None.
kong.keg.konnect.analytics.queue.dropped
Deprecated. Use
otel.sdk.processor.log.processedwith attributeerror.type="queue_full"instead.
| Type | Unit |
|---|---|
| Counter | {event} |
Number of events dropped from the queue because the max queue size was reached.
Labels:
None.
kong.keg.konnect.analytics.queue.events
Deprecated. Use
kong.dataplane.analytics.eventsinstead.
| Type | Unit |
|---|---|
| Counter | {event} |
Total number of events added to the queue.
Labels:
None.
kong.keg.konnect.analytics.sent
Deprecated. Use
kong.dataplane.analytics.sentinstead.
| Type | Unit |
|---|---|
| Counter | By |
Total bytes sent in binary websocket messages to the analytics endpoint.
Labels:
None.
kong.keg.konnect.analytics.websocket.errors
Deprecated. Use
kong.dataplane.analytics.websocket.errorsinstead.
| Type | Unit |
|---|---|
| Counter | {error} |
Number of times an error occurred on the analytics websocket connection while sending or receiving messages.
Labels:
None.
kong.keg.konnect.request.duration
Deprecated. Use
http.client.request.durationwith thekong.http.client.namelabel instead.
| Type | Unit |
|---|---|
| Histogram | s |
The time sending and receiving the response to a request to the Konnect control plane.
Labels:
kong.keg.konnect.api: The konnect api operation being performed (one offetch_config,update_dp_state)error.type: The error type encountered on executing http request. Absent if a request was successful. (one oftimeout,connect,unknown)http.response.status_code: The status code of an http response. Absent if a request did not succeed.
kong.keg.lifecycle.component.ready
Deprecated. Use
kong.dataplane.lifecycle.component.readyinstead.
| Type | Unit |
|---|---|
| Gauge | {state} |
Is a specific component ready; the service being ready implies all components are ready.
Labels:
kong.keg.component: The component name
kong.keg.lifecycle.service.healthy
Deprecated. Use
kong.dataplane.lifecycle.service.healthyinstead.
| Type | Unit |
|---|---|
| Gauge | {state} |
Is the service healthy.
Labels:
None.
kong.keg.lifecycle.service.ready
Deprecated. Use
kong.dataplane.lifecycle.service.readyinstead.
| Type | Unit |
|---|---|
| Gauge | {state} |
Is the service ready.
Labels:
None.
kong.keg.listener.connections.limit
| Type | Unit |
|---|---|
| Gauge | {connection} |
The number of allowed connections to the listener.
Labels:
None.
kong.keg.request_rule.condition.failures
| Type | Unit |
|---|---|
| Counter | {failure} |
The number of times a request rule expression failed to execute due to an error.
Labels:
kong.keg.kafka.request: The type of the Kafka requestkong.konnect.policy.id: The Konnect policy identifierkong.konnect.policy.name: The Konnect policy namekong.keg.component: The component name
kong.keg.request_rule.evaluations
| Type | Unit |
|---|---|
| Counter | {evaluation} |
Counts the result of every request rule evaluation. Incremented once per evaluated rule.
Labels:
kong.keg.request_rule.result: The result of the request rule evaluation (pass or violation) (one ofpass,violation)kong.keg.request_rule.action: The configured action of the evaluated rule (one ofreject,passthrough)kong.keg.kafka.request: The type of the Kafka requestkong.konnect.policy.id: The Konnect policy identifierkong.konnect.policy.name: The Konnect policy namekong.konnect.virtual_cluster.id: The Konnect virtual cluster identifierkong.konnect.virtual_cluster.name: The Konnect virtual cluster namekong.konnect.backend_cluster.id: The Konnect backend cluster identifierkong.konnect.backend_cluster.name: The Konnect backend cluster namekong.keg.component: The component name
kong.tokio.global_queue.depth
| Type | Unit |
|---|---|
| UpDownCounter | {task} |
Tasks waiting in a Tokio runtime’s global queue.
Labels:
kong.tokio.runtime: The Tokio runtime the value belongs to:mainfor the dataplane’s#[tokio::main]one,otlp_exportfor the OTLP exporters’ one, or another runtime’s own name.
kong.tokio.task.count
| Type | Unit |
|---|---|
| UpDownCounter | {task} |
Tasks alive in a Tokio runtime.
Labels:
kong.tokio.runtime: The Tokio runtime the value belongs to:mainfor the dataplane’s#[tokio::main]one,otlp_exportfor the OTLP exporters’ one, or another runtime’s own name.
kong.tokio.worker.busy.time
| Type | Unit |
|---|---|
| Counter | s |
Time a Tokio worker thread has spent processing work.
Labels:
kong.tokio.runtime: The Tokio runtime the value belongs to:mainfor the dataplane’s#[tokio::main]one,otlp_exportfor the OTLP exporters’ one, or another runtime’s own name.kong.tokio.worker: Index of the worker thread within its Tokio runtime, an integer.
kong.tokio.worker.count
| Type | Unit |
|---|---|
| UpDownCounter | {thread} |
Worker threads of a Tokio runtime.
Labels:
kong.tokio.runtime: The Tokio runtime the value belongs to:mainfor the dataplane’s#[tokio::main]one,otlp_exportfor the OTLP exporters’ one, or another runtime’s own name.
otel.sdk.processor.log.errors
Deprecated. Use
otel.sdk.processor.log.processedwith attributeerror.type="queue_full"instead.
| Type | Unit |
|---|---|
| Counter | {log_record} |
The number of log records dropped because the log processor’s queue was full.
Labels:
None.