集成 TiDB Cloud 与 Datadog(PREVIEW)
TiDB Cloud 支持与 Datadog 集成。你可以将 TiDB Cloud 配置为把你的 TiDB Cloud Essential 实例的指标发送到 Datadog。完成后,你可以直接在 Datadog 仪表板中查看这些指标。
前提条件
要将 TiDB Cloud 与 Datadog 集成,你必须拥有一个 Datadog 账户以及一个 Datadog API key。首次创建 Datadog 账户时,Datadog 会为你分配一个 API key。
如果你还没有 Datadog 账户,请访问 https://app.datadoghq.com/signup 注册。
要为 TiDB Cloud 设置第三方指标集成,你必须在 TiDB Cloud 中具有 Organization Owner、Project Owner 或 Instance Manager 访问权限。要查看集成页面,你至少需要 Project Viewer 或 Instance Viewer 角色,以访问 TiDB Cloud 中你所在组织下目标 TiDB Cloud Essential 实例。
限制
- TiDB Cloud Starter 实例不支持 Datadog 集成。
- 当你的 TiDB Cloud Essential 实例状态为 CREATING、RESTORING、PAUSED 或 RESUMING 时,不支持 Datadog 集成。
步骤
第 1 步:导入预构建的 Datadog 仪表板
目前,适用于 TiDB Cloud Essential 的 TiDB Cloud 仪表板尚未在 Datadog 集成市场中提供。你需要手动下载仪表板 JSON 文件并将其导入 Datadog。
下载适用于你的实例类型的 Datadog 仪表板 JSON 文件:
https://github.com/pingcap/docs/blob/master/tidb-cloud/monitor-datadog-integration-tidb-cloud-dynamic-tracker-essential.json
登录 Datadog,然后进入 Dashboards > Dashboard List。
点击右上角的 + New Dashboard。输入仪表板名称,然后选择 Start from blank dashboard。
在新建的仪表板中,点击右上角的齿轮图标(Configure),然后选择 Import dashboard JSON...。
在弹出的对话框中,粘贴 JSON 内容,或拖放 JSON 文件。
点击 Yes, Replace 确认导入。
第 2 步:使用你的 Datadog API key 进行集成
在 TiDB Cloud console 中,进入 My TiDB 页面,然后点击目标 TiDB Cloud Essential 实例的名称,进入其实例概览页面。
在左侧导航栏中,点击 Integrations。
在 Integrations 页面上,找到 Datadog (PREVIEW) 集成并点击 Connect。
输入你的 Datadog API key,选择你的 Datadog Region,然后点击 Test Integration。
- 如果测试成功,会显示 Confirm 按钮。
- 如果测试失败,会显示错误信息。请根据提示进行故障排查,然后重试集成。
点击 Confirm 完成集成。
查看预构建的仪表板
完成集成后,要查看预构建的仪表板,请在 Datadog 中进入 Dashboards > Dashboard List,然后选择在第 1 步中导入的仪表板。在仪表板页面中,你可以按目标实例名称进行筛选并查看指标。
你也可以从 TiDB Cloud console 进入 Datadog 的 Dashboard List 页面:进入目标实例的 Integrations 页面,点击 Datadog (PREVIEW),然后点击 Dashboard。
Datadog 可用的指标
Datadog 会跟踪你的 TiDB Cloud Essential 实例的以下指标。
注意
当前,TiDB Cloud Essential 的 changefeed 功能仅按需提供,且 tidb_cloud.changefeed_* 指标不可用。
| Metric name | Metric type | Labels | Description |
|---|
tidb_cloud.db_total_connection | gauge | instance_id: <instance id>
instance_name: <instance name> | TiDB server 中当前连接数 |
tidb_cloud.db_active_connections | gauge | instance_id: <instance id>
instance_name: <instance name> | 活跃连接数 |
tidb_cloud.db_disconnections | gauge | result: Error\|...
instance_id: <instance id>
instance_name: <instance name> | 按连接结果统计的客户端断开连接数 |
tidb_cloud.db_database_time | gauge | sql_type: Select\|Insert\|...
instance_id: <instance id>
instance_name: <instance name> | TiDB 中运行的所有 SQL 语句每秒消耗的总时间,包括所有进程的 CPU 时间和非空闲等待时间 |
tidb_cloud.db_query_per_second | gauge | type: Select\|Insert\|...
instance_id: <instance id>
instance_name: <instance name> | 按语句类型统计的每秒执行 SQL 语句数 |
tidb_cloud.db_failed_queries | gauge | type: planner:xxx\|executor:2345\|...
instance_id: <instance id>
instance_name: <instance name> | 执行 SQL 语句时每秒发生的错误类型统计(例如语法错误和主键冲突) |
tidb_cloud.db_command_per_second | gauge | type: Query\|Ping\|...
instance_id: <instance id>
instance_name: <instance name> | TiDB 每秒处理的命令数 |
tidb_cloud.db_queries_using_plan_cache_ops | gauge | instance_id: <instance id>
instance_name: <instance name> | 每秒命中执行计划缓存的查询数 |
tidb_cloud.db_average_query_duration | gauge | sql_type: Select\|Insert\|...
instance_id: <instance id>
instance_name: <instance name> | 从网络请求发送到 TiDB 到响应返回给客户端之间的持续时间 |
tidb_cloud.db_transaction_per_second | gauge | type: Commit\|Rollback\|...
txn_mode: optimistic\|pessimistic
instance_id: <instance id>
instance_name: <instance name> | 每秒执行的事务数 |
tidb_cloud.db_row_storage_used_bytes | gauge | instance_id: <instance id>
instance_name: <instance name> | TiDB Cloud Essential 实例基于行存储的数据大小(字节) |
tidb_cloud.db_columnar_storage_used_bytes | gauge | instance_id: <instance id>
instance_name: <instance name> | TiDB Cloud Essential 实例基于列存储的数据大小(字节)。如果未启用 TiFlash,则返回 0。 |
tidb_cloud.resource_manager_resource_request_unit_total | gauge | instance_id: <instance id>
instance_name: <instance name> | 消耗的总 Request Units/s(RU/s) |