kong prometheus plugin
The kong-prometheus is a lua library that can be used with Kong to collect metrics. It exposes metrics related to Kong and proxied upstream services in Prometheus exposition format, which can be scraped by a Prometheus Server. SkyWalking leverages OpenTelemetry Collector to transfer the metrics toOpenTelemetry receiver and into the Meter System.
curl -i -X POST http://{KONG-HOST}:{KONG_ADMIN_PORT}/plugins \ --data name=prometheus \ --data config.per_consumer=true \ --data config.status_code_metrics=true \ --data config.ai_metrics=true \ --data config.latency_metrics=true \ --data config.bandwidth_metrics=true \ --data config.upstream_health_metrics=true
KONG prometheus plugin provide multiple dimensions metrics for KONG server, upstream, route etc. Accordingly, SkyWalking observes the status, requests, and latency of the KONG server, which is cataloged as a LAYER: KONG
Service
in the OAP. Each Kong server is cataloged as a LAYER: KONG
instance
, meanwhile, the route rules would be recognized as a LAYER: KONG
endpoint
.
Monitoring Panel | Unit | Metric Name | Description | Data Source |
---|---|---|---|---|
Bandwidth | bytes | meter_kong_service_http_bandwidth meter_kong_instance_http_bandwidth meter_kong_endpoint_http_bandwidth | Total bandwidth (ingress/egress) throughput | Kong |
HTTP Status | count | meter_kong_service_http_status meter_kong_instance_http_status meter_kong_endpoint_http_status | HTTP status codes per consumer/service/route in Kong | Kong |
HTTP Request | count | meter_kong_service_http_requests meter_kong_instance_http_requests | Total number of requests | Kong |
Monitoring Panel | Unit | Metric Name | Description | Data Source |
---|---|---|---|---|
DB | count | meter_kong_service_datastore_reachable meter_kong_instance_datastore_reachable | Datastore reachable from Kong | Kong |
DB | bytes | meter_kong_instance_shared_dict_bytes | Allocated slabs in bytes in a shared_dict | Kong |
DB | bytes | meter_kong_instance_shared_dict_total_bytes | Total capacity in bytes of a shared_dict | Kong |
DB | bytes | meter_kong_instance_memory_workers_lua_vms_bytes | Allocated bytes in worker Lua VM | Kong |
Monitoring Panel | Unit | Metric Name | Description | Data Source |
---|---|---|---|---|
Latency | ms | meter_kong_service_kong_latency meter_kong_instance_kong_latency meter_kong_endpoint_kong_latency | Latency added by Kong and enabled plugins for each service/route in Kong | Kong |
Latency | ms | meter_kong_service_request_latency meter_kong_instance_request_latency meter_kong_endpoint_request_latency | Total latency incurred during requests for each service/route in Kong | Kong |
Latency | ms | meter_kong_service_upstream_latency meter_kong_instance_upstream_latency meter_kong_endpoint_upstream_latency | Latency added by upstream response for each service/route in Kong | Kong |
Monitoring Panel | Unit | Metric Name | Description | Data Source |
---|---|---|---|---|
Nginx | count | meter_kong_service_nginx_metric_errors_total | Number of nginx-lua-prometheus errors | Kong |
Nginx | count | meter_kong_service_nginx_connections_total meter_kong_instance_nginx_connections_total | Number of connections by subsystem | Kong |
Nginx | count | meter_kong_service_nginx_timers meter_kong_instance_nginx_timers | Number of Nginx timers | Kong |
You can customize your own metrics/expression/dashboard panel. The metrics definition and expression rules are found in /config/otel-rules/kong
. The KONG dashboard panel configurations are found in /config/ui-initialized-templates/kong
.