V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
faywong8888
V2EX  ›  程序员

请推荐最接近成品的实时数据可视化服务端(Plotly + websocket)方案?

  •  
  •   faywong8888 · 146 天前 · 1255 次点击
    这是一个创建于 146 天前的主题,其中的信息可能已经有所发展或是发生改变。

    辛苦各位技术大拿推荐下,以上只是我有限的调研和选型。如果有其他更好的,也欢迎抛出来。要求是开发工作量尽量小,能直接拿过来用最好。

    7 条回复    2024-06-29 21:43:28 +08:00
    xueling
        1
    xueling  
       146 天前   ❤️ 1
    看你侧重什么了,如果你侧重前端的交互形式,丰富、炫酷的可视化展示功能,那请忽略。但如果你侧重统计计算方面功能的完善度、性能和稳定性、支撑的数据量级,那你考虑一下我的开源项目: https://github.com/xl-xueling/xl-lighthouse 。优势很多,拿来即用,几乎没任何开发量,将数据指标的原始数据上报上来就 OK 了,既有集群版本也有单机版本,有完善的数据指标管理和权限审批机制,统计项直接在页面配置就可以了。可以考虑一下,有任何问题,我会第一时间帮你解决。
    faywong8888
        2
    faywong8888  
    OP
       145 天前
    @xueling 看到你的热心回复,态度让人感动。我主要用于做 IoT 监控大盘用。主要是实时数据的可视化和历史数据的查询,附带有账户和权限控制。


    ## 现状

    过去我其实用 ThingsBoard 搭建了一个版本,自己额外开发了社区版里缺少的一些特性,现在线上正常使用中。
    但是一个人开发维护部署 Thingsboard 架构过于庞大。所以萌生了简化架构的想法。我现在用 c++ epoll 实现了设备接入网关和告警等等,有极小的内存占用,然后把时许数据存入数据库。现在打算来做 IoT 监控大盘。调研下来,前端 echarts 、Plotly 好像生态比较大。后端我比较熟悉 Clojure ,正评估一人框架 [biff]( https://github.com/jacobobryant/biff) 中。

    ## xl-lighthouse
    我大致看了下 https://dtstep.com/zh/helloworld/02.html 里边的介绍,我定义下数据模型和统计项,通过 sdk 上报数据即可,也支持 IoT 设备上的时序数据(几点几分-> 温度/流量),趋势图/实时图。
    看起来不错,我打算周末来部署一个试试。

    中国程序员的项目,必须优先支持和反馈完善。接地气、不吹牛逼、谦逊的态度难能可贵。
    faywong8888
        3
    faywong8888  
    OP
       145 天前
    @xueling

    有几个问题:

    1. 上报数据的 sdk 现在是有 java 版本吗?是否开放协议细节,开放的地话,我后边开发一个 c++ 版本。

    2. 个人家庭 IoT 使用,是否涉及到软件授权费?如果几台设备的可视化有费用,我就不考虑了。

    3. 有适合单机部署的 docker compose 吗?
    faywong8888
        4
    faywong8888  
    OP
       145 天前
    @xueling 还有一个问题:

    后台数据发生增加/删除/更新,统计/监控前台界面是否自动刷新?
    xueling
        5
    xueling  
       145 天前
    @faywong8888 1 、目前只有 java 版本的 sdk ,还有个临时的 http 接口,如果不是 java 技术栈,数据量不大的话可以使用 http 接口上报,这样接入成本更低一点。现在 http 接口是一个单独的工程,后续我会把 http 接口和 rpc 服务融合在一起。如果数据量大的话就要考虑用 java sdk 来上报。我还没有试过在 c++中直接调用 java 版的 sdk 是否会存在太大的性能损耗,但我感觉应该没有较大问题,可以试一下。数据量大的话还有一种方案就是中间加一层类似 kafka 的消息组件,先将数据写入消息组件,然后再通过 java 消费的方式。上报方案完全取决于你的数据量。至于开放协议,暂时还没有,因为 sdk 中除了基本的上报逻辑,还涉及一些消息数据的聚合、秘钥验证等逻辑,实现起来其实有点麻烦,至于将上报协议公开,我还要再好好考虑一下看看有没有这种必要。

    2 、是否涉及软件授权费用? 企业内部或个人使用都是不收取任何费用的,而且没有任何数据量和数据指标数量的限制。但如果涉及到对外销售相关服务(比如给第三方提供可视化大屏服务并获取收益),就需要收取一定比例的授权费用。

    3 、没有单机部署的 docker compose 。不过项目本身就是一键部署,操作很简单。

    4 、后台数据发生增加/删除/更新,统计/监控前台界面是否自动刷新?
    首先,你说的后台数据是不是指上报的原始消息数据,大部分流式统计场景是不需要删除和更新操作的,只有新增。这与 OLAP,OLTP 类的技术方案不同,XL-LightHouse 本身并不维护原始消息数据,只维护统计结果状态值,所以是不支持删除和更新的,不过项目支持负值运算。
    其次,目前前端交互方面支持的功能,如果统计结果发生变化,前端图表不会自动刷新,看下面的图片,需要点击一下统计项标题旁边的刷新按钮,图表才会刷新。后续会提供数据大屏功能,可以免登录、自定义视图、图表自动刷新等功能。

    https://camo.githubusercontent.com/cf74e768875fff5628f4f5aec59a106fcffe9fac13d55624dc76771381765785/68747470733a2f2f6c69676874686f75736564702d313330303534323234392e636f732e61702d6e616e6a696e672e6d7971636c6f75642e636f6d2f73637265656e73686f745f76322f32332e6a7067

    如有问题,可以加我微信,随时联系我~
    faywong8888
        6
    faywong8888  
    OP
       144 天前
    @xueling 解释得很清楚。

    >> 临时的 http 接口
    有文档吗?我用 c++ 来尝试上报试试看。
    我的数据量很小,就家里几个 IoT 表,撑死 40 个数值。
    xueling
        7
    xueling  
       144 天前
    http 接口,现在不在项目里面,需要单独部署一下。工程地址: https://github.com/xl-xueling/lighthouse-interface ,doc 目录下有说明文档,如有问题随时反馈~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3610 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 32ms · UTC 10:40 · PVG 18:40 · LAX 02:40 · JFK 05:40
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.