Integrate TiDB Cloud with Prometheus and Grafana (Preview)
TiDB Cloud provides a Prometheus API endpoint. If you have a Prometheus service, you can monitor key metrics of TiDB Cloud from the endpoint easily.
This document describes how to configure your Prometheus service to read key metrics from the TiDB Cloud Essential endpoint and how to view the metrics using Grafana.
Prerequisites
To integrate TiDB Cloud with Prometheus, you must have a self-hosted or managed Prometheus service.
To set up third-party metrics integration for TiDB Cloud, you must have the
Organization OwnerorInstance Manageraccess in TiDB Cloud. To view the integration page, you need at least theProject ViewerorInstance Viewerrole to access the target TiDB Cloud Essential cluster under your Organization in TiDB Cloud.
Limitation
- Prometheus and Grafana integrations are not available for TiDB Cloud Starter clusters.
- Prometheus and Grafana integrations are not available when the cluster status is CREATING, RESTORING, PAUSED, or RESUMING.
Steps
Step 1. Get a scrape_config file for Prometheus
Before configuring your Prometheus service to read metrics of TiDB Cloud, you need to generate a scrape_config YAML file in TiDB Cloud first. The scrape_config file contains a unique bearer token that allows the Prometheus service to monitor your target cluster.
- In the TiDB Cloud console, navigate to the Clusters page, and then click the name of your target TiDB Cloud Essential cluster to go to its overview page.
- In the left navigation pane, click Integrations > Integration to Prometheus(Preview).
- Click Add File to generate and show the
scrape_configfile for the current TiDB Cloud Essential cluster. - Make a copy of the
scrape_configfile content for later use.
Step 2. Integrate with Prometheus
In the monitoring directory specified by your Prometheus service, locate the Prometheus configuration file.
For example,
/etc/prometheus/prometheus.yml.In the Prometheus configuration file, locate the
scrape_configssection, and then copy thescrape_configfile content obtained from TiDB Cloud to the section.In your Prometheus service, check Status > Targets to verify that the new
scrape_configfile has been read. If not, you might need to restart the Prometheus service.
Step 3. Use Grafana GUI dashboards to visualize the metrics
After your Prometheus service reads metrics from TiDB Cloud, you can use Grafana GUI dashboards to visualize the metrics as follows:
Download the Grafana dashboard JSON file for TiDB Cloud Essential from the following link:
Import this JSON to your own Grafana GUI to visualize the metrics.
(Optional) Customize the dashboard as needed by adding or removing panels, changing data sources, and modifying display options.
For more information about how to use Grafana, see Grafana documentation.
Best practice for rotating scrape_config
To improve data security, periodically rotate scrape_config file bearer tokens.
- Follow Step 1 to create a new
scrape_configfile for Prometheus. - Add the content of the new file to your Prometheus configuration file.
- Once you confirm that your Prometheus service can read from TiDB Cloud, remove the content of the old
scrape_configfile from your Prometheus configuration file. - On the Integrations page of your cluster, delete the corresponding old
scrape_configfile to block anyone else from using it to read from the TiDB Cloud Prometheus endpoint.
Metrics available to Prometheus
Prometheus tracks the following metric data for your cluster.
FAQ
Why does the same metric have different values on Grafana and the TiDB Cloud console at the same time?
Grafana and TiDB Cloud use different aggregation calculation logic, so the displayed aggregated values might differ. You can adjust the
mini stepconfiguration in Grafana to get more fine-grained metric values.