【性能看板】Logkit + InfluxDB + Grafana- 开源时序数据看板解决方案

Logkit + InfluxDB + Grafana 性能看板解决方案

这里借用 Logkit 的一张图片简单说明三者之间的关系:

在这里插入图片描述

如上图所示,Logkit、InfluxDB 以及 Grafana 在性能监控任务中的分工为:

  • Logkit:数据采集
  • InfluxDB:数据持久化
  • Grafana:数据可视化

Logkit:数据采集

在这里插入图片描述

笔者所在项目团队实际用的是 Logkit 的开源版本,这里简要介绍下 Logkit 的大致功能:

logkit-community(社区版)是七牛智能日志管理平台开发的一个配套的日志收集工具,支持海量的数据源,方便地发送到七牛智能日志管理平台以及其他常见的数据存储服务进行分析,除了基本的数据发送功能,logkit 还有容错、并发、监控、删除等功能。其主要的工作流程为:

在这里插入图片描述

InfluxDB:数据持久化

以下内容整理自:https://zh.wikipedia.org/zh-hans/InfluxDB

InfluxDB是一个由InfluxData开发的开源时序型数据库,它着力于高性能地查询与存储时序型数据。InfluxDB被广泛应用于存储系统的监控数据,IoT行业的实时数据等场景。

在这里插入图片描述

  • InfluxDB在技术实现上充分利用了Go语言的特性,无需任何外部依赖即可独立部署。
  • InfluxDB提供了一个类似于SQL的查询语言并且一系列内置函数方便用户进行数据查询。
  • InfluxDB存储的数据从逻辑上由 Measurement, tag组以及 field组以及一个时间戳组成的:
    • Measurement: 由一个字符串表示该条记录对应的含义。
    • tag组: 由一组键值对组成,表示的是该条记录的一系列属性信息。同样的measurement数据所拥有的tag组不一定相同,它是无模式的(Schema-free)。tag信息是默认被索引的。
    • field组:也是由一组键值对组成,表示的是该条记录具体的value信息(有名称)。field组中可定义的value类型包括:64位整型,64位浮点型,字符串以及布尔型。Field信息是无法被索引的。
    • 时间戳:就是该条记录的时间属性。如果插入数据时没有明确指定时间戳,则默认存储在数据库中的时间戳则为该条记录的入库时间。
  • InfluxDB支持基于HTTP的数据插入与查询。同时也接受直接基于TCP或UDP协议的连接。
  • InfluxDB允许用户定义数据保存策略来实现对存储超过指定时间的数据进行删除或者降采样。

Grafana:数据可视化

直接先看官方给的介绍:

The analytics platform for all your metrics
Grafana allows you to query, visualize, alert on and understand your metrics no matter where they are stored. Create, explore, and share dashboards with your team and foster a data driven culture.

在我们实际使用而言,Grafana 一大特色就是支持用户根据项目需要灵活的定制看板内容,而且官方也提供了大量的基础 panels (30+)以及 dashboard(1000+)以便快速接入。

例如,Jmeter性能测试结果就可以 Grafana 官网仓库中的 Dashboard 进行展示,效果如下:

在这里插入图片描述

Logkit + InfluxDB + Grafana 性能看板的优缺点分析

优点

  • 通过 InfluxDB, 将数据采集与数据可视化完全解耦,功能扩展性超强
  • 无论是 Logkit 还是 Grafana,都具备很高的易操作性(拥有前端配置页面)、可扩展性(插件式设计)

缺点

  • 重大缺陷:Grafana 设计上仅支持时序数据的展示,用作展示各版本的性能数据略显尴尬
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
基于 Echarts 和 Python,我们可以创建一个动态实时的销售数据。首先,我们需要使用 Python 来处理和获取销售数据。可以从各种数据源如数据库、API或者文件中获取数据,并进行必要的数据处理和计算。 接下来,我们可以使用 Echarts 来可视化这些数据。Echarts 是一个开源的 JavaScript 数据可视化库,它提供了丰富的图表类型和交互功能。可以使用 Echarts 的 Python 接口来生成图表,并与后台数据进行交互。 在销售数据中,我们可以创建各种图表,如柱状图、折线图、饼图等,来展示销售数据的不同方面。例如,我们可以创建一个柱状图来显示每个月的销售额,折线图来展示销售额的趋势,饼图来展示不同产品的销售比例等。 为了实现动态实时的效果,我们可以使用定时任务来定时获取最新的销售数据,并更新图表。可以使用 Python 的定时任务库如 schedule 或者 apscheduler 来触发数据更新动作,并通过 Echarts 的 Python 接口重新生成图表。然后,可以使用前端的 WebSocket 技术来将更新后的图表数据传递给前端页面,使页面可以动态地展示最新的数据。 除了图表展示外,我们还可以添加一些交互功能,例如点击柱状图可以查看各个月份的详细销售数据,或者通过下拉框筛选特定的产品的销售数据等。 总之,基于 Echarts 和 Python,我们可以创建一个动态实时的销售数据,通过可视化的图表展示销售数据,帮助业务人员更好地了解销售情况,并进行数据分析和决策。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值