查看运行日志(新版)
概述
华为云物联网平台支持记录平台与应用侧及平台与设备侧之间的消息交互情况,并以日志的形式上报到云日志服务(LTS),由LTS提供实时查询、海量存储、结构化处理和可视化图表分析能力。
与旧版运行日志相比,使用新版运行日志时,不需要您手动创建日志组、日志流、流转规则及动作,平台将自动为您完成相关配置,并且您可以直接在华为云物联网平台中查看运行日志的内容。
使用限制
目前运行日志仅支持记录MQTT设备的业务运行日志,详细请参考表1 业务类型。
业务类型 |
业务流程 |
---|---|
设备状态 |
|
设备下线 |
|
设备消息 |
|
设备命令 |
|
设备属性 |
|
设备事件 |
|
物联网平台接收设备下载升级包的事件 |
|
批量任务 |
批量任务的子任务执行结果,详细请参考表2 批量任务运行日志格式 |
设备自注册 |
设备自动注册的结果,详细请参考设备自注册 |
设备鉴权 |
字段 |
说明 |
---|---|
appId |
应用ID |
deviceId |
设备ID |
categoryName |
日志类型:batch.task |
operation |
动作,这里为批量任务的task_id,详情参考创建批量任务 |
request |
请求内容,json格式, { "task_type" : "createDevices",// 任务类型 "package_id" : "f2303267a6e8f0053037c2a9",//软固件升级包 "package_ids" : ["65f3ebe2682b9f4bcc38baad"] //软固件升级包 }
说明:
当批量任务任务类型为softwareUpgrade或firmwareUpgrade,支持参数package_id和package_ids |
response |
响应内容,json格式, 成功的场景内容为 { "output" : "xxxxxxxxxxxx" } 失败的场景为 { "error" : { "error_code" : "IOTDA.XXXXX", "error_msg" : "XXXXX." } } |
status |
执行结果,这里为子任务的状态,支持Success、Fail、Stopped和Removed |
运行日志使用说明
- 访问设备接入服务,单击“管理控制台”,进入设备接入控制台。选择您的实例,单击实例卡片进入。
- 选择左侧导航栏的 。
- 若您当前在使用旧版运行日志,那么您可以单击右上角“前往新版”按钮,进入新版运行日志页面。若您已使用新版运行日志,则自动进入新版页面。
图2 运行日志-前往新版
- 首次使用,需要单击“启动并配置”按钮,此时您可以选择两种方式进行运行日志的配置
- 一键配置:
- 自定义配置:
采用自定义配置后,可以选择自己创建的规则及日志组和日志流来创建运行日志,该方式更加灵活。
若您在日志流中配置了结构化,平台也将会对结构化进行修改。
图4 运行日志-自定义配置
请谨慎删除数据来源为“运行日志”的转发规则,否则会影响功能的正常使用。
- 启动并配置成功后,您可以在物联网平台中查看或搜索运行日志(支持按时间,日志类型,设备ID,动作以及请求内容进行搜索),对业务进行分析。运行日志保存在云日志服务(LTS)中,默认保存30天,如果当前存储时长不能满足业务要求,您可以在界面上进行修改,最长可保存365天。
图5 运行日志-日志数据
图6 运行日志-修改存储时间
- 运行日志支持开启一个或多个业务类型,您可单击“配置日志开关”,在弹出框中修改日志收集的类型;所有类型均不选择时,即为关闭运行日志收集功能。
图8 运行日志-配置日志开关
运行日志使用示例
本部分介绍如何使用JAVA SDK上报消息,触发运行日志流转至LTS,并在物联网平台页面查看消息上报的日志。本示例使用的开发环境为JDK 1.8及以上版本。
前提条件如下:
- 已在物联网平台注册设备。
- 已启用并配置新版运行日志,并开启了设备消息日志开关。
配置设备侧SDK步骤如下:
- 配置设备侧SDK的Maven依赖。
<dependency> <groupId>com.huaweicloud</groupId> <artifactId>iot-device-sdk-java</artifactId> <version>1.1.4</version> </dependency>
- 配置设备侧SDK,设备连接参数。注意:实际代码中请替换域名(domain),设备ID(deviceId)以及设备密钥(secret)。
//加载iot平台的ca证书,获取连接参考:https://support.huaweicloud.com/devg-iothub/iot_02_1004.html#section3 URL resource = BroadcastMessageSample.class.getClassLoader().getResource("ca.jks"); File file = new File(resource.getPath()); //注意格式为:ssl://域名信息:端口号。 //域名获取方式:登录华为云IoTDA控制台左侧导航栏“总览”页签,在选择的实例基本信息中,单击“接入信息”。选择8883端口对应的接入域名。 String serverUrl = "ssl://{domain}:8883"; //在IoT平台创建的设备ID。 String deviceId = "{deviceId}"; //设备ID对应的密钥。 String deviceSecret = "{secret}"; //创建设备 IoTDevice device = new IoTDevice(serverUrl, deviceId, deviceSecret, file); if (device.init() != 0) { return; }
- 上报消息
1 2 3 4 5 6 7 8 9 10 11
device.getClient().reportDeviceMessage(new DeviceMessage("hello"), new ActionListener() { @Override public void onSuccess(Object context) { log.info("reportDeviceMessage ok"); } @Override public void onFailure(Object context, Throwable var2) { log.error("reportDeviceMessagefail: "+ var2); } });
测试验证步骤如下:
- 运行设备侧SDK代码,控制台打印如下信息说明设备上线并上报消息成功
2023-04-27 17:05:26 INFO MqttConnection:88 - Mqtt client connected. address :ssl://{domain}:8883 2023-04-27 17:05:26 INFO MqttConnection:214 - publish message topic = $oc/devices/{deviceId}/sys/messages/up, msg = {"name":null,"id":null,"content":"hello","object_device_id":null} 2023-04-27 17:05:26 INFO MessageSample:43 - reportDeviceMessage ok
- 在控制台中查看运行日志,运行日志界面可查询设备上下线以及设备上报消息的记录。
图9 运行日志-日志示例