本文主要介绍日志服务的三种类型及日志格式。

使用说明

物联网平台支持按如下方式搜索日志:

搜索日志方式 说明
DeviceName 设备名称,该产品下设备唯一标识。可以根据DeviceName搜索出该设备的相关日志。
MessageID 消息ID,某条消息在物联网平台里的唯一标识。可以用MessageID追踪到这条消息全链路的流转状况。
状态 日志有两个状态:成功和失败。
时间范围 可以筛选某一时间段打印出的日志。
说明
  • {}是变量,日志根据实际运行打印相应结果
  • 日志提供的是英文,不会打印中文
  • 一旦出现失败状态的日志内容,非system error的原因都是由于用户使用不当或者产品限制导致的,请仔细排查。

设备行为分析

设备行为主要有设备上线(online),设备下线(offline)的日志。

可按DeviceName,时间范围来筛选日志,操作界面如下图所示:

设备离线原因中英文对查表
英文 中文
Kicked by the same device 被相同设备踢下线
Connection reset by peer TCP连接被对端重置
Connection occurs exception 通信异常,IoT服务端主动关闭连接
Device disconnect 设备主动发送MQTT断开连接请求
Keepalive timeout 心跳超时,IoT服务端关闭连接

上行消息分析

上行消息主要包括设备发送消息到topic,消息流转到规则引擎,规则引擎转发到云产品的日志。

可按DeviceName、MessageID、状态、时间范围来筛选日志,操作界面如下图所示:

上行消息中英文对查表
说明
其中包括context(打印的英文日志+中文注释),error reason(打印的英文日志),失败的原因(中文注释)。
context error reason 失败原因
Device publish message to topic:{},QoS={},protocolMessageId:{}设备发送消息到topic:{},QoS={},protocolMessageId:{} Rate limit:{maxQps},current qps:{} 限流{最大流量},当前qps:{}
No authorization 未授权
System error 系统错误
send message to RuleEngine,topic:{} protocolMessageId:{}IoT Hub发送消息给规则引擎,topic:{} protocolMessageId:{} {eg,too many requests} 失败信息,例如太多请求被限流导致失败
System error 系统错误
Transmit data to DataHub,project:{},topic:{},from IoT topic:{}规则引擎发送数据到Datahub,project:{},topic:{},来自IoT的topic:{} DataHub Schema:{} is invalid! DataHub Schema:{}无效,类型不匹配
DataHub IllegalArgumentException:{} Datahub 参数异常:{}
Write record to dataHub occurs error! errors:[code:{},message:{}] 写数据到datahub出错,错误:[code:{},message{}]
Datahub ServiceException:{} Datahub服务异常:{}
System error 系统错误
Transmit data to MNS,queue:{},theme:{},from IoT topic:{}发送数据到MNS,queue:{},topic:{},来自IoT的topic:{} MNS IllegalArgumentException:{} MNS参数异常:{}
MNS ServiceException:{} MNS服务异常:{}
MNS ClientException:{} MNS客户端异常:{}
System error 系统错误
Transmit data to MQ,topic:{},from IoT topic:{}规则引擎发送数据到MQ,topic:{},来自IoT的topic:{} MQ IllegalArgumentException:{} MQ参数异常:{}
MQ ClientException:{} MQ客户端异常:{}
System error 系统错误
Transmit data to TableStore,instance:{},tableName:{},from IoT topic:{}规则引擎发送数据到TableStore,实例名:{},表名:{},来自IoT的topic:{} TableStore IllegalArgumentException:{} TableStore参数异常:{}
TableStore ServiceException:{} TableStore服务异常:{}
TableStore ClientException:{} TableStore客户端异常:{}
System error 系统错误
Transmit data to RDS,instance:{},databaseName:{},tableName:{},from IoT topic:{}规则引擎发送数据到RDS,实例名:{},数据库名:{},表名:{} RDS IllegalArgumentException:{} RDS参数异常:{}
RDS CannotGetConnectionException:{} RDS无法连接:{}
RDS SQLException:{} RDS SQL语句异常
System error 系统错误
Republish topic, from topic:{} to target topic:{}规则引擎转发topic,从topic:{}到目标topic:{} System error 系统错误
RuleEngine receive message from IoT topic:{}规则引擎接收消息,来自IoT的topic:{} Rate limit:{maxQps},current qps:{} 限流{最大流量},当前qps:{}
System error 系统错误
Check payload, payload:{}检测payload,payload:{} Payload is not json Payload的json格式不合法

下行消息分析

下行消息主要是云端发送消息到设备的日志。

可按DeviceName、MessageID、执行状态、时间范围来筛选日志,操作界面如下图所示:

下行消息中英文对查表
说明
其中包括context(打印的英文日志+中文注释),error reason(打印的英文日志),失败的原因(中文注释)。
context error reason 失败原因
Publish message to topic:{},protocolMessageId:{}推送消息给topic:{},protocolMessageId:{} No authorization 未授权
Publish message to device,QoS={}IoT Hub发送消息给设备 IoT hub cannot publish messages 因为服务端没有得到设备的puback,会一直发消息,直到超过50条的阈值然后IoT Hub就会无法发送消息
Device cannot receive messages 设备端接受消息的通道阻塞,可能由于网络慢,或者设备端消息能力不足导致了服务端发送消息失败
Rate limit:{maxQps},current qps:{} 限流{最大流量},当前qps:{}
Publish RRPC message to deviceIoT发送RRPC消息给设备 IoT hub cannot publish messages 设备端一直没有回复response,而且服务端一直发送消息超出阈值导致发送失败
Response timeout 设备响应超时
System error 系统错误
RRPC finishedRRPC结束 {e.g rrpcCode} 错误信息,会打出相应的RRPCCode,比如UNKNOW,TIMEOUT,OFFLINE,HALFCONN
Publish offline message to device IoT Hub发送离线消息给设备 Device cannot receive messages 设备端接受消息的通道阻塞,可能由于网络慢,或者设备端消息能力不足导致了服务端发送消息失败