故障排查
常见问题的诊断与解决
SDK 常见问题
认证失败
可能原因:
- Access Key 或 Secret Key 错误
- 凭证已过期
解决: 确认凭证正确,联系管理员重新获取。
资源不存在 (NotFoundException)
诊断:
// 使用 CLI 验证资源是否存在
shm-cli projects list
shm-cli points list --project PROJECT_ID
请求过频 (RateLimitException)
解决:
try {
client.telemetry().query(query);
} catch (RateLimitException e) {
Thread.sleep(e.getRetryAfterMs());
// 重试
}
MQTT 连接问题
连接失败
| 错误码 | 含义 | 解决 |
|---|---|---|
| 4 | 用户名密码错误 | 检查客户 ID 和凭证 |
| 5 | 未授权 | 确认账号有 MQTT 权限 |
诊断:
# 测试端口连通性
openssl s_client -connect broker.shm.inteagle.com:8883
订阅后收不到数据
检查:
- Topic 格式是否正确:
inteagle/{customerId}/p/{projectId}/# - 设备是否在线并上报数据
- 使用通配符
#测试是否有任何消息
频繁断线
解决:
- Keep Alive 设为 60 秒
- 使用唯一 Client ID
- 实现自动重连逻辑
数据问题
时间戳转换
API 返回毫秒时间戳,转换时需除以 1000:
Instant instant = Instant.ofEpochMilli(ts);
LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());
查询不到历史数据
检查:
- 时间范围:
endTs > startTs - 数据点数量限制:单次最多 1000 点
- 监测点是否有数据:先查询最新数据确认
需要帮助?
请联系技术支持。