复杂的遥测可视化和处理
Complex telemetry visualization and processing
我有几个 IoT 设备(代码是 Java),它们依次连接到本地的多个单元。这些单元中的每一个都向物联网设备报告数据,物联网设备将所有数据发布在嵌套对象的可变数组中,该数组也有数组:
{
"data":{
"version":"1.2.3",
"sensorData":{
"a":18.50733137829912,
"b":8.165982404692084,
"c":20.75894428152493,
},
"units":[
{
"address":"192.168.254.16",
"name":"Unit 1",
"connectors":[
{
"id":1,
"measurement":{
"a":13.44,
"b":0.0,
"c":0.0
},
"status":"running"
}
]
},
{
"address":"192.168.254.17",
"name":"Unit 2",
"connectors":[
{
"id":1,
"measurement":{
"a":0.0,
"b":0.0,
"c":0.0
},
"status":"initialized",
}
]
}
]
},
"notificationType":"Status",
"type":"Notification"
}
理想情况下,我希望能够继续某些仪表板应用程序(如 Contoso 示例)并单击此 IoT 设备,并查看在 sensorData 上显示 a、b、c 的图表,该图表是平坦且固定的,但也将 "Unit 1" 和 "Unit 2" 分别显示为曲线,例如 "Unit 1 - a"、"Unit 1 - b"、"Unit 1 - c",或将它们合计为 "Unit 1 - total"。提供的数据是否可能?
所以,我
- Post 此数据 "as is" 并以某种方式使用符号来获取嵌套数据并聚合?
- 在物联网设备上对其进行处理使其变平,如unit1_name、unit1_address、unit1_connector_1_a、unit1_connector_1_b、unit1_connector_1_c等
- Post 此数据 "as is" 和 process/flatten Azure 中的数据与我在到达应用程序之前在本地的方式相同(通过流分析?)
我见过的所有样本都具有 "flat" 结构,例如根 json 对象上的温度和压力,所以我不确定在这里前进的最佳方式是什么。
这如何适应 Application Insights?我还有 "started"、"stopped" 等事件,我是否应该为此使用遥测客户端(在 Java 的 Application Insights 中)?日志记录呢?使用 log4j2。一切都通过 DeviceClient,然后通过流分析进一步分析和分发?
谢谢!
IoT Central 目前仅支持平面 JSON 设备测量。因此,在将有效载荷形成为 post 到 IoT 中心时,将设备上的 JSON 展平。对于 "started"、"stopped" 等事件,您可以使用 State measurement.
Azure IoT Central 是不同于 Application Insights 的产品。 Application Insights 的主要重点是 application/user 监控,而 IoT Central 仅专注于 IoT 场景并且具有完全不同的堆栈。
我有几个 IoT 设备(代码是 Java),它们依次连接到本地的多个单元。这些单元中的每一个都向物联网设备报告数据,物联网设备将所有数据发布在嵌套对象的可变数组中,该数组也有数组:
{
"data":{
"version":"1.2.3",
"sensorData":{
"a":18.50733137829912,
"b":8.165982404692084,
"c":20.75894428152493,
},
"units":[
{
"address":"192.168.254.16",
"name":"Unit 1",
"connectors":[
{
"id":1,
"measurement":{
"a":13.44,
"b":0.0,
"c":0.0
},
"status":"running"
}
]
},
{
"address":"192.168.254.17",
"name":"Unit 2",
"connectors":[
{
"id":1,
"measurement":{
"a":0.0,
"b":0.0,
"c":0.0
},
"status":"initialized",
}
]
}
]
},
"notificationType":"Status",
"type":"Notification"
}
理想情况下,我希望能够继续某些仪表板应用程序(如 Contoso 示例)并单击此 IoT 设备,并查看在 sensorData 上显示 a、b、c 的图表,该图表是平坦且固定的,但也将 "Unit 1" 和 "Unit 2" 分别显示为曲线,例如 "Unit 1 - a"、"Unit 1 - b"、"Unit 1 - c",或将它们合计为 "Unit 1 - total"。提供的数据是否可能?
所以,我
- Post 此数据 "as is" 并以某种方式使用符号来获取嵌套数据并聚合?
- 在物联网设备上对其进行处理使其变平,如unit1_name、unit1_address、unit1_connector_1_a、unit1_connector_1_b、unit1_connector_1_c等
- Post 此数据 "as is" 和 process/flatten Azure 中的数据与我在到达应用程序之前在本地的方式相同(通过流分析?)
我见过的所有样本都具有 "flat" 结构,例如根 json 对象上的温度和压力,所以我不确定在这里前进的最佳方式是什么。
这如何适应 Application Insights?我还有 "started"、"stopped" 等事件,我是否应该为此使用遥测客户端(在 Java 的 Application Insights 中)?日志记录呢?使用 log4j2。一切都通过 DeviceClient,然后通过流分析进一步分析和分发?
谢谢!
IoT Central 目前仅支持平面 JSON 设备测量。因此,在将有效载荷形成为 post 到 IoT 中心时,将设备上的 JSON 展平。对于 "started"、"stopped" 等事件,您可以使用 State measurement.
Azure IoT Central 是不同于 Application Insights 的产品。 Application Insights 的主要重点是 application/user 监控,而 IoT Central 仅专注于 IoT 场景并且具有完全不同的堆栈。