一 概述
基础设施监控对于确保系统的稳定性和性能至关重要。而要有效地监控和管理基础设施,可视化是一种强大的工具。本文将介绍如何使用Grafana和Flowcharting来实现基础设施监控的可视化,包括监控指标的收集、数据展示和报警通知等方面。通过合理的设计和配置,我们可以快速建立起一个直观、实时、可操作的监控系统,提高基础设施的可靠性和响应能力。
关键词:Grafana、Flowcharting、基础设施监控、可视化、监控指标。
二 背景
flowcharting是grafana社区提供的一款插件,其借助开源绘图工具drawio可以实现定制化的的业务链路动态监控,将各项监控指标以更加面向业务的图表形式进行展示,可以实现网络拓扑图、流程图、架构图等等各种图形,将比较分散的指标统一成可视化的监控图形。
三 特点
Grafana结婚Flowcharting可以实现可视化架构图,集成数据指标和流程的特点:
- 数据可视化: Grafana提供了丰富的图表和仪表盘,可以将数据以图形化的方式展示出来,而Flowcharting则可以用来描述数据处理和流程中的步骤和关系,通过两者的结合,可以更全面地展示和理解数据流程。
- 数据监控和警报: Grafana作为一个监控平台,可以实时监控数据指标并生成警报。结合Flowcharting,可以通过流程图形式展示监控流程和警报触发条件,使得监控和警报的流程更加清晰和可视化。
- 故障排查和优化: 当系统出现故障或性能问题时,结合Grafana和Flowcharting可以帮助进行故障排查和性能优化。Grafana提供了实时的性能指标和日志数据,而Flowcharting可以用来描述系统流程和各个组件之间的关系,通过结合两者,可以更准确地定位问题所在并进行优化。
- 可视化工作流程: Flowcharting可以用来表示工作流程和业务流程,而Grafana可以将与工作流程相关的数据可视化展示出来。通过结合两者,可以更好地理解和分析工作流程,并做出相应的调整和优化。
- 辅助决策和沟通: Grafana和Flowcharting的结合可以帮助决策者更好地理解数据和流程,从而做出更准确的决策。同时,将数据和流程可视化也有助于与团队成员或利益相关者进行沟通和交流,促进共识和合作。
四 实战
4.1 Flowcharting部署
在Grafana插件中寻查询Flowcharting插件,并进行部署

4.2 利用Drawio.io 绘制业务架构图
draw.io 是一款免费的在线图表编辑工具, 可以用来编辑工作流, BPM, org charts, UML, ER图, 网络拓朴图等 ,开源免费,并且支持多平台,图形可以多种形式导出,并且可以复制图形的XML导入到flowcharting中。
draw.io的在线地址为:www.draw.io/index.html
也可以私有化部署draw.io,再次使用K8s部署draw.io,进行架构图绘制


使用draw.io画好了图形以后,使用Extras->Edit Diagram,复制XML。


4.2 架构图绘制
点击+->Create,创建DashBoard,点击"Add new panel",在Visualization中选择FlowCharting选项,panel中会出现如下自带默认案例图:
选择FlowCharting类型

一共包含四个指标

4.2.1 Panel options

4.2.2 Flowchart
Flowchart Flowchart小节重要的内容是Definition,其中的"source type"代表导入的图形数据的类型,支持XML和CSV,一般使用draw.io画的图形导入使用XML类型
注意:直接利用Edit Draw绘制的图形无法显示,需先在drawio.io中绘制然后复制xml,之后可以利用grafana中的edit draw进行编辑修改。
"source content"就是draw.io图形导出的XML黏贴的地方。 还有Advanced小节的内容,主要配置项如下:

其他属性:
- Scale 对图形进行缩放。
- Center 图形居中进行显示。
- Grid 背景显示网格。
- Bg Color 用于配置图形的背景色。
- Lock 对图形上的元素对象进行锁定,不允许拖动修改。
- Allow draw.io.source 允许从draw.io下载图形。
- Enable animation 启用动画效果。
- Tooltip 允许提示信息,当鼠标经过时提示相应的信息。
4.2.3 Mapping
Mapping顾名思义,是将图形中的元素和Grafana中的查询指标进行映射关联,并有多种展现形式及根据指标显示的交互状态。

Rule name:为规则名称
Apply to metrics:为利用grafana查询出来的结果,也是规则与查询匹配的关联条目
Aggregation:查询结果的呈现方式
Type:为查询结果的显示类型,可以为数字、字符串、日期等。
Unit:为查询结果的显示单位;
Decimals:结果为数字,小数点保留位数;

Thresholds为定义数据显示的状态,可以为基础正常,警告、紧急等,可以根据指标定制多个等级。

Tooltips为显示标签内容
label:需要自定义显示内容;
When state is:为显示条件
Direction:为显示方式,垂直或水平

Graph Tooltips为鼠标移动到对应图形上有图形展示
Graph type:可以图标展示形式为线形,或直方图;
Graph Size:图表显示大小,可以自适应,或者大中小等;
Y-Min/Y-Max:自定义x、y轴
Scale type:显示为你的数据可视化选择合适的刻度类型

Color/Tooltip Mappings,颜色和提升工具的映射
identify by:通过图形的label或者id来执行映射,
之后是映射条件,what为那个图形,when为什么条件执行,how执行什么动作。

Label/Text Mappings展示图形关联文本

链接映射,点击图形可以跳转到对应链接地址

事件动画映射。
可以Copy Rule快速创建第二条规则。
4.2.4 Inspect
Inspect可以帮助用户查看图像ID,实现ID与查询结果的映射。

五 展示
再次仅简单展示部分图表,可根据自身业务架构绘制对应架构图,同时可根据不同场景绘制不同应用架构。
查看LB的入口流量

查看到Node11的流量

查看node11的资源情况

查看负载均衡信息

点击具体资,可调整到详细资源图表查看

六 其他
-
需要提前在drawio中绘制好图形,在复制到grafana中,直接使用Flowcharting中的编辑,导致图形丢失bug。
-
如果图形复杂,需要有较多的query和rule,配置起来较麻烦。
-
如果架构图中元素更改了,需要更新其中配置,因此适用于变化较少的架构,弹性架构不合适。
-
如果不生效需要先保存然后F5强刷下!有时还会应为网络原因部分数据无法加载。
七 总结
结合Grafana和Flowcharting可以实现数据可视化、流程描述、故障排查、优化和决策辅助等功能,提高工作效率和结果的准确性。