故障排查

常见问题的诊断与解决

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

订阅后收不到数据

检查:

  1. Topic 格式是否正确:inteagle/{customerId}/p/{projectId}/#
  2. 设备是否在线并上报数据
  3. 使用通配符 # 测试是否有任何消息

频繁断线

解决:

  • Keep Alive 设为 60 秒
  • 使用唯一 Client ID
  • 实现自动重连逻辑

数据问题

时间戳转换

API 返回毫秒时间戳,转换时需除以 1000:

Instant instant = Instant.ofEpochMilli(ts);
LocalDateTime dateTime = LocalDateTime.ofInstant(instant, ZoneId.systemDefault());

查询不到历史数据

检查:

  • 时间范围:endTs > startTs
  • 数据点数量限制:单次最多 1000 点
  • 监测点是否有数据:先查询最新数据确认

需要帮助?

请联系技术支持。