Vitals Overview
Use Kong Vitals (Vitals) to monitor Kong Enterprise health and performance, and to understand the microservice API transactions traversing Kong. Vitals uses visual API analytics to see exactly how your APIs and Gateway are performing. Quickly access key statistics, monitor vital signs, and pinpoint anomalies in real time.
Use Kong Admin API to access Vitals data via endpoints. Additional visualizations, including creating dashboards of Vitals data alongside data from other systems, can be achieved using the Vitals API to integrate with common monitoring systems.
Use Kong Manager to view visualizations of Vitals data, including the Workspaces Overview Dashboard, Workspace Charts, Vitals tab, and Status Codes.
Prerequisites
Vitals is enabled by default in Kong Enterprise and available upon the first login of a Super Admin.
You can use one of the following storage strategies with Vitals:
- Kong database:
- PostgresSQL 9.5+
- Separate storage engine:
- InfluxDB
- Prometheus
Guidelines for viewing Vitals
When using Vitals, note:
- Vitals is enabled by default and accessible the first time a Super Admin logs in.
- To enable or disable Vitals, see Enable or Disable Vitals.
- Any authorized user can view Vitals for the entire Kong cluster or for a particular Workspace.
- If a user does not have access to a Workspace, its Vitals are hidden from view.
- If a user does not have access to Vitals data, charts will not display.
Vitals API
Vitals data is available using the Vitals API. Access to these endpoints can be managed using RBAC.
The Vitals API is described using the Open API Specification. You can view it by downloading the vitals.yaml file. Use the API to retrieve health and traffic information from your cluster.
For example, you can use the API to retrieve the number of requests for a service in a workspace by issuing the following GET
request:
curl -i -X GET http://localhost:8001/WORKSPACE_NAME/vitals/status_codes/by_service \
-d "service_id=030f4ade-69ed-48b0-b3e1-cd088a1f2a09" \
-d "interval=minutes"
A successful request returns a payload with the following data:
{
"stats": {
"cluster": {
"1673366520": {
"200": 44
},
"1673366580": {
"200": 49
},
"1673366460": {
"200": 13
}
}
},
"meta": {
"earliest_ts": 1673343331,
"latest_ts": 1673366580,
"stat_labels": [
"status_codes_per_service_total"
],
"level": "cluster",
"entity_type": "service",
"interval": "minutes",
"workspace_id": "af622cf4-f636-4ae4-9aa5-2726d6713edf"
}
}
Viewing Vitals in Kong Manager
View Vitals information in Kong Manager using any of the following:
- Overview Dashboard, available from the Workspaces page for an overview of your Kong cluster, or an individual Workspace for an overview of the selected Workspace.
- Workspace charts, which display on the Workspaces page beneath the Overview Dashboard. These charts give a quick overview of the status of an individual Workspace.
- Vitals tab, which provides detailed information about your Kong cluster, including total requests, latency, and cache information.
- Status Codes to view cluster-wide status code classes.
Overview Dashboard
When you log in to Kong Manager, the Workspaces page displays by default. The top of the page displays the Vitals Overview Dashboard summarizing your Kong cluster, including the health and performance of your APIs and Gateway, total requests, average error rate, total consumers, and total services. This Vitals Overview Dashboard makes it easy for an Admin to quickly identify any issues that need attention.
Workspace charts
On the Workspaces page, beneath the Overview Dashboard, the Workspaces section displays each Workspace with a chart showing Vitals for the most recently added services, consumers, and plugins for that Workspace. Hover over a coordinate to view the exact number of successes and errors at a given timestamp, or drilldown into the Workspace chart for more details.
Vitals tab
The Vitals tab, or Vitals view, displays metrics about the health and performance of Kong nodes and Kong-proxied APIs. The Vitals View displays total requests, latency, and cache information.
Options to populate the Vitals view, or areas in the chart, include:
Option | Description |
---|---|
Time frame Selector | A time frame selector controls the time frame of data visualized, which indirectly controls the granularity of the data. For example, the “Last 5 Minutes” selection displays 1-second resolution data, while longer time frames display 1-minute resolution data. |
View | Select to populate the Vitals chart by Hostname, Hostname + ID, or ID. |
Total Requests | The Total Requests chart displays a count of all proxy requests received. This includes requests that were rejected due to rate-limiting, failed authentication, and so on. |
Cluster and Node Data | Metrics are displayed on Vitals charts at both node and cluster level. Controls are available to show cluster-wide metrics and/or node-specific metrics. Clicking on individual nodes will toggle the display of data from those nodes. Nodes are identified by a unique Kong node identifier, by hostname, or by a combination of the two. |
Status Codes
The Status Codes view displays visualizations of cluster-wide status code classes (1xx, 2xx, 3xx, 4xx, 5xx). The Status Codes view contains the counts of status code classes graphed over time, as well as the ratio of code classes to total requests. See Status Codes.
Note: The Status Codes view does not include non-standard code classes (6xx, 7xx, etc.). Individual status code data can be viewed in the Consumer, Route, and Service details pages under the Activity tab. Both standard and non-standard status codes are visible in these views.
Enable or disable Vitals
Kong Enterprise ships with Vitals enabled by default. To enable or disable Vitals, edit the configuration file or environment variables.
Using kong.conf
Using environment variables
Edit the configuration file to enable or disable Vitals:
# via your Kong configuration file; e.g., kong.conf
vitals = on # vitals is enabled
vitals = off # vitals is disabled
Restart Kong.
Use environment variables to enable or disable Vitals:
# or via environment variables
export KONG_VITALS=on
export KONG_VITALS=off
Restart Kong.