Комплексная телеметрическая визуализация и обработка - PullRequest
0 голосов
/ 27 июня 2018

У меня есть несколько устройств IoT (код Java), которые в свою очередь подключены к нескольким устройствам локально. Каждый из этих модулей сообщает данные устройству IoT, а устройство IoT публикует все данные в массиве переменных вложенных объектов, которые также имеют массивы:

{
  "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 и просмотреть график, показывающий a, b, c на sensorData, который является плоским и фиксированным, но также показывает " Единица 1 "и" Единица 2 "отдельно представлены в виде кривых, как, например," Единица 1 - а "," Единица 1 - b "," Единица 1 - с ", или объединить их в сумму как" Единица 1 - общая сумма ". Возможно ли это с представленными данными?

Example

Итак, я

  • Опубликовать эти данные "как есть" и каким-то образом использовать нотацию для получения вложенных данных и агрегирования?
  • Обработайте его на устройстве IoT для выравнивания, например, unit1_name, unit1_address, unit1_connector_1_a, unit1_connector_1_b, unit1_connector_1_c и т. Д.
  • Отправьте эти данные "как есть" и обработайте / выровняйте данные в лазури так же, как я бы делал это локально, прежде чем они достигнут приложения (через потоковую аналитику?)

Все образцы, которые я видел, имеют "плоскую" структуру, такую ​​как температура и давление на корневой объект json, поэтому я не уверен, каков наилучший способ продвинуться здесь.

Как это вписывается в Application Insights? У меня также есть такие события, как «запущен», «остановлен» и т. Д. Следует ли мне использовать для этого клиента телеметрии (в Application Insights for Java)? Как насчет регистрации? Использование log4j2. Все проходит через DeviceClient, а затем анализируется и распространяется через Stream Analytics?

Спасибо!

1 Ответ

0 голосов
/ 29 октября 2018

IoT Central в настоящее время поддерживает только плоский JSON для измерений устройства. Так что распрямите JSON на устройстве при формировании полезной нагрузки для публикации в IoT Hub. Для таких событий, как «запущен», «остановлен», вы можете использовать Измерение состояния .

Azure IoT Central - это продукт, отличный от Application Insights. Основное внимание в Application Insights уделяется мониторингу приложений / пользователей, тогда как IoT Central сосредоточен исключительно на сценариях IoT и имеет совершенно другой стек.

...