常见问题

更新时间:

本文介绍TSDB的常见问题。

如何选择 TSDB 的实例规格?

您可根据以下两个指标选择 TSDB 的实例规格:

  • 时间线数:对应设备上的采集点数。一个采集点可以是某个设备上需要上传数据的一个传感器。计算公式:设备规模(总设备数) × 单个设备的采集点数或传感器数。

  • 写入效率:全局每秒需要写入时序数据库的平均数据点数(数据记录数)。计算公式:时间线数 × 单条时间线每秒需要写入的平均数据点数。

说明

在多值模型中,数据点数 = 数据点的个数 × 每个数据点中的字段个数

TSDB 支持公网访问吗?

TSDB 支持公网访问,但您需要先使用 VPC 网络创建实例,然后在 TSDB 控制台开启公网连接,具体操作方式请参见网络连接文档的公网连接一节。

TSDB 如何进行数据可视化展示?

TSDB 目前支持通过接入 Grafana 对数据进行可视化展示。详情请见可视化-接入Grafana

实例访问超时,显示错误码“Connection timed out”,如何解决?

由于 TSDB 实例默认是专有网络 VPC 的模式,这种模式下如果访问机器和 TSDB 实例不在同一个 VPC 环境内,会出现网络不通,连接超时的错误。解决办法如下:

如果写入机器和实例在同一个区域 Region 内,可将写入测试机器加入到 TSDB 所在实例的 VPC 网关下即可。具体操作方式请参见单ECS迁移示例

请求返回:“Exceed Max TS counter xxxx”,如何解决?

返回这个结果表示 TSDB 实例的时间线(timelines or time series)总数量已经超过当前定义的产品规格

(请参见产品规格和定价),需进行扩容。

请求返回:“a null credential specified in the authorization field”, 如何解决?

返回这个结果表示TSDB实例开启了用户管理功能,但业务发起的请求中没有带上用户认证信息。

建议在用户管理功能开启后,需要调整业务逻辑,保证向TSDB发起的写入/查询请求必须带上对应的用户认证信息。

用户管理对读写请求的影响

TSQL 查询返回错误 “INTERNAL: Missing start time.”

用户在 TSDB 控制台中的“TSQL数据开发”界面执行 SQL 查询时,有可能会遇到执行报错,错误信息如下:

Error in calling SQL restful api with error { "errorMessage" : "INTERNAL_ERROR ERROR: io.grpc.StatusRuntimeException: INTERNAL: Missing start time.\nTSDB query execution failure \n …… }

这种错误的原因是因为用户执行的 SQL 语句中,未在 WHERE 语句中指定查询起始时间,比如:

select * from metric_name

因为不带时间范围的 SQL 查询会执行全表扫描,当数据量较大时可能会影响实例性能,因此我们在新版 TSDB (版本号 >= 2.5.14) 之中添加了这个查询语句限制,要求 SQL 查询像 HTTP 查询接口一样,也必须指定查询的起始时间。

因此用户需要在 SQL 语句中指定查询起始时间,才可以正确执行查询,比如:

select * from metric_name where `timestamp` >= '2020-01-01 00:00:00 +0800'