Skip to main content
Version: NG-3.1

Kong API Gateway

Introduction​

Kong Gateway is a lightweight, fast, and flexible cloud-native API gateway. An API gateway is a reverse proxy that lets you manage, configure, and route requests to your APIs.

Getting Started​

Compatibility​

vuSmartMaps supports the monitoring of the Kong API Gateway metric using prometheus endpoint.

Data Collection Method​

vuSmartMaps collects Kong API Gateway metrics through a data collector deployed within the vuSmartMaps platform, which uses prometheus plugin to retrieve performance and health metrics.

Prerequisites​

Inputs for Configuring Data Source​

  • Kong API Server: The IP Address/FQDN of the Kong API server. This field is the key to identify each server you add here.
  • Kong Server's Endpoint: The URL to Kong API Server endpoint. Eg: http://127.0.0.1, https://127.0.0.1, http://127.0.0.1:8080 or https://127.0.0.1:8080
  • Period (in seconds): Time interval for polling data from the Kong API Server. Period should be between 60 seconds – 3000 seconds.
Applications​

Firewall Requirement​

To collect data from this O11ySource, ensure the following ports are opened:

Source IPDestination IPDestination PortProtocolDirection
vuSmartMaps Collection/Ingress node IPIP address or FQDN of the Kong API Gateway service8001*/8444*TCPOutbound

*Before providing the firewall requirements, please update the port based on the customer environment.

Configuring the Target​

Option 1 - Recommended Approach Using Status API

Step 1: Enable the Status APIEdit kong.conf:status_listen = 0.0.0.0:8100Alternatively, using environment variables:export KONG_STATUS_LISTEN=0.0.0.0:8100Restart Kong:kong restartStep 2: Enable the Prometheus PluginExecute the following command:curl -i -X POST http://localhost:8001/plugins --data "name=prometheus"Expected response:{ "name": "prometheus", "enabled": true }Step 3: Verify the Metrics EndpointAccess the metrics endpoint:curl http://localhost:8100/metricsExpected output:# HELP kong_http_status HTTP status codes

TYPE kong_http_status counter

Option 2 - Access Metrics via Admin API

If the Status API is not enabled, metrics can also be accessed through the Admin API endpoint.Metrics URL:http://localhost:8001/metricsVerification command:curl http://localhost:8001/metricsNote: Using the Admin API endpoint for metrics exposure is not recommended in production environments.

Configuration Steps​

Metrics Collected​

NameDescriptionData Type
@timestampTimestamp at which the data is collected by agentString
timestampPrecise event timestamp with millisecondsDateTime64(3)
targetServer from where the data is collectedString
tags_hostServer from where the data is collectedString
doc_typeDocument type of the entryString
tenant_idTenant ID for the metrics entryLowCardinality(String)
bu_idBusiness Unit ID for the entryLowCardinality(String)
tags_urlURL endpoint from where the request is being madeString
tags_serviceService name related to the APIString
tags_routeRoute associated with the APIString
tags_directionDirection of the API call (inbound/outbound)String
tags_codeHTTP status codeUInt16
tags_shared_dictShared dictionary in useString
tags_subsystemSubsystem generating the metricString
tags_kong_subsystemKong subsystemString
tags_stateState of the requestString
tags_node_idNode ID of the Kong instanceString
metric_nameName of the metric being recordedString
metric_valueValue of the recorded metricFloat64
metric_value_diffDifference in metric valueFloat64
tags_pidProcess ID of the Kong instanceUInt32
hostHost on which Kong is runningString
PortPort of the Kong instanceString
tags_targetTarget of the upstream serviceString
tags_upstreamUpstream service in the requestString
tags_addressAddress of the service or hostString