Для того, чтобы смотреть записанные в Influx данные, я, особо не заморачиваясь, взял Grafana. Потыкался в настройки — и обнаружил среди интересных фишек Influx HTTP API, позволяющее делать запросы к базе данных прямо из браузера — точнее, из выполняющегося в браузере Javascript. Удобно? Не то слово!
А если подумать немного дальше — то при таком подходе не нужна и Grafana. Достаточно статики в виде нескольких HTML-страниц, чуточку CSS и Javascript, чтобы делать те же самые запросы к HTTP API и отображать графики. Развивая мысль чуть дальше — в нежно мной любимом CC3200 есть встроенный веб-сервер. В общем, понятно, к чему я клоню? В одном из девайсов возникла необходимость показывать на подключенном по WiFi ПК данные от датчиков устройства — разумеется, в виде графиков. Нарисовалось вот такое ТЗ «чисто для фронтенда»:
Разработать одностраничное приложение, которое раз в секунду «стучится» на определенный URL, забирает оттуда данные (несколько числовых рядов) в виде JSON, и отображает их в виде графиков (например, на canvas из HTML5). Для определенности — предположим, что каждую секунду отдается 8 «рядов» по 250 точек каждый, а на графиках надо отображать данные за последние 5 секунд.
Разумеется, есть и ограничения — их два: во-первых, нельзя обращаться к каким-либо внешним ресурсам, а во-вторых — страничка вместе со всеми ресурсами (изображения, CSS, скрипты) должна «весить» не более 512 кБ.
Ну и вопрос: в какой объем можно уместить что-то такое, применяя современные подходы к фронтенду?
Chart.js — 60kb
https://www.chartjs.org/samples/latest/
Правда, нужно помнить, что при помощи JS нельзя просто так взять и взять произвольный JSON с другого домена. Так что некоторые действия на стороне сервера тоже скорее всего прийдется производить.
60? Или все 206 (Chart.bundle.min.js весит столько)? С другой стороны, пока в заданные требования укладываемся.
Домен будет тот же, это не проблема.
Да, точно. Все 206. Но можно попробовать упаковать в gzip прямо на сервере. Тогда 63 выходит.
Там встроенный сервер gzip точно не умеет: http://www.ti.com/lit/pdf/swru368 , раздел 12.
Он и js не умеет, похоже. Но это не то, что бы проблема.
• Supported file types: .html, .htm, .css, .xml, .png, .gif
В целом, по месту можно уложиться вполне. если обойтись без картинок и видео.