基于flowcharting实现定制化业务链路动态监控

简介: flowcharting是grafana社区提供的一款插件,其借助开源绘图工具drawio可以实现定制化的的业务链路动态监控,将各项监控指标以更加面向业务的图表形式进行展示,可以实现网络拓扑图、流程图、架构图等等各种图形,将比较分散的指标统一成可视化的监控图形。

flowcharting是grafana社区提供的一款插件,其借助开源绘图工具drawio可以实现定制化的的业务链路动态监控,将各项监控指标以更加面向业务的图表形式进行展示,可以实现网络拓扑图、流程图、架构图等等各种图形,将比较分散的指标统一成可视化的监控图形。

一、安装drawio工具

draw.io 是一款免费的在线图表编辑工具, 可以用来编辑工作流, BPM, org charts, UML, ER图, 网络拓扑图等 ,开源免费,并且支持多平台,图形可以多种形式导出,并且可以复制图形的XML导入到flowcharting中。

draw.io的在线地址为:
https://www.draw.io/index.html

也可以下载免安装桌面版,下载地址如下:
https://github.com/jgraph/,提供了各种版本,本人主要使用Mac版本和windows免安装版本:

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

二、flowcharting安装

flowcharting的安装非常简单,只需要下载flowcharting插件包,放到grafana plugins目录下,重启grafana即可,还可以使用grafana-cli plugin ls查看,以下使用0.9.0版本为示例:

$ mv algenty-grafana-flowcharting-0.9.0-0 /appdata/grafana/plugins/algenty-grafana-flowcharting
$ systemctl restart grafana-server
$ grfana-cli plugins ls

以下输出证明已经安装成功:

[root@node1 bin]# ./grafana-cli plugins ls
installed plugins:bragenty-flowcharting-panel @ 0.9.0

此时"Add new panel"可以看到Visualizationg中存在FlowCharting选择项:

flowcharting-1.png

三、配置flowcharting

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

flowcharting-2.png

右侧将会出现配置面板,面板中最重要的各个小节的配置作用说明如下:

  • Settings
    Settings主要是针对panel的配置,包括panel title和描述信息。
  • Flowchart
    Flowchart小节重要的内容是Definition,其中的"source  type"代表导入的图形数据的类型,支持XML和CSV,一般使用draw.io画的图形导入使用XML类型,"source  content"就是draw.io图形导出的XML黏贴的地方。
    还有Advanced小节的内容,主要配置项如下:
    1、Scale
    对图形进行缩放。
    2、Center
    图形居中进行显示。
    3、Grid
    背景是否显示网格。
    4、Bg Color
    用于配置图形的背景色。
    5、Lock
    对图形上的元素对象进行锁定,不允许拖动修改。
    6、Allow draw.io.source
    允许从draw.io下载图形。
    7、Enable animation
    启用动画效果。
    8、Tooltip
    允许提示信息,当鼠标经过时提示相应的信息。

flowcharting-config-1.png

flowcharting-config-2.png

  • Mapping
    Mapping是配置图形与监控指标的映射关系和映射规则,其主要有以下配置:
    1、Options(选项)
    Rule name : 定义一个规则名称
    Apply to metrics :该规则用在哪个metrics上
    Aggregation :metrics聚合的类型
    2、Type(类型)
    Type :数据类型
    Unit : 单位
    Decimals :metrics值的精度(保留多小数点多少位)
    3、Thresholds(阈值)
    分3个级别(Lvl),分别是0、1、2,分别对应OK、Warning、Critical。
    4、Tooltips(提示信息)
    Display metrics:是否显示metrics
    Label:显示标签名称
    When state is:当metrics处理哪种状态,可选项包括(Always总是、Warning/Critical)
    Direction:方向,可选项包括(Vertical垂直、Horizontal水平)
    Color with state:是否开启状态颜色,即鼠标经过时,看到的metrics颜色是否随状态发生变化
    5、Graph Tooltips(图形提示信息)
    该配置项的前提是开启了Tooltips的Display metrics
    Display graph:是否显示metrics的图形
    Graph type:图形类型,可选项包括(line线条、Histogram直方图)
    Graph Size:图形尺寸,可选项包括:Adjustable自适应、small小、Medium中、Large大
    Y-Min/Y-Max:Y轴最小/大值
    Scale type:刻度类型,可选项包括(linear线性、Logarithmic对数)
    6、Color/Tooltip Mappings(颜色/提示信息映射)
    Identify by:依据Id或label标签来匹配对应图上的元素,可以通过点击链接按钮在直接选中某个元素
    What :图形元素Id
    When :当处于哪种状态
    How :图形元素以及标签的填充方式,有以下可选项目:
    1、Shape Fill
    只填充形状
    2、Shape Stroke/Border
    只填充边框
    3、Label font color
    标签字体颜色
    4、Label background color
    标签背景颜色
    5、Label border color
    标签边框颜色
    6、Image background
    图像背景颜色
    7、Image border
    图像边框颜色
    7、Label/Text Mappings(标签/文本映射)
    Identify by:依据Id或label标签来匹配对应图上的元素,可以通过点击链接按钮在直接选中某个元素
    What :图形元素Id
    When :当处于哪种状态
    How :标签或文本显示方式,有以下可选项目:
  • All content
    显示所有内容,即标签映射后的值
  • Substring
    字符串,即显示标签名
  • Append(Space)
    标签名和映射值在同一行
  • Append(New line)
    标签名和映射值都显示,但映射的值新起一行

8、Link Mappings (链接映射)

Identify by:依据Id或label标签来匹配对应图上的元素,可以通过点击链接按钮在直接选中某个元素

What :图形元素Id

When :当处于哪种状态

Url:元素超链接

Params:链接参数

9、Event/Animation Mappings(事件/动画映射)

Identify by:依据Id或label标签来匹配对应图上的元素,可以通过点击链接按钮在直接选中某个元素

What :图形元素Id

When :当处于哪种状态

Action :满足条件时的动作,有以下可选项

  • Shape: Change form(text)
    改变形状,支持输入各种形状,如ellipse、card、cloud等,即可以使不同状态显示不同的图形。
  • Shape: Rotate Shape(0-360)
    旋转,值是角度,支持0-360度。
  • Shape: Blink(Frequence ms)
    闪烁,值的单位是毫秒,如在value输入1000,则表示满足闪闪烁时会1秒闪动一次。
  • Shape: Hide/Show(0|1)
    隐藏或者显示,值对应是0或者1。
  • Shape: Change height(number)
    改形形状的高度。
  • Shape: Change width(number)
    改形形状的宽度。
  • Shape: Opacity(0-100)
    不透明度,支持0-100,数字越小越不透明,比如设置10以下的数字效果比较明显。
  • Shape: Collapse/Expande(0|1)
    折叠或者展示,对应值为0或者1。
  • Shape: Change position in Bar(0-100)
    更改形状在可滑动条上的位置,值的范围在0-100,针对可滑动的特定图形。
  • Label: Replace text(text)
    文本替换。
  • Label: Font Size(numeric)
    字体大小。
  • Label: Opacity(numeric)
    字体透明度。

Value: value的可选值非常多,不再赘述

四、演示案例

这里使用自带的图形展示如何将监控指标映射到图形上,为了获取演示数据,这里下载了node_exporter-1.0.1,启动后通过prometheus进行数据收集,grafana配置prometheus数据源,这块就不再赘述。

按照以上图片所示的配置方式,增加metrics Query如下:

(node_filesystem_size_bytes{mountpoint="/"}-node_filesystem_free_bytes{mountpoint="/"}) /node_filesystem_size_bytes{mountpoint="/"} * 100

最后效果如下所示:

flowcharting-result.jpg

flowcharting的功能还很强大,例如支持动画等,能够满足大量的业务监控大盘的需求,还等什么,捣鼓起来吧。

相关文章
|
Prometheus 监控 前端开发
prometheus|云原生|grafana-9.4.3版本的主题更改
prometheus|云原生|grafana-9.4.3版本的主题更改
1739 0
|
5月前
|
运维 监控 网络协议
【运维干货】一次因 VPN 协议不一致导致的 CPE 速率异常案例
本文分享了一次企业 CPE 主备切换后速率异常的排障案例,重点分析了因主备设备 VPN 协议配置不一致(TCP vs UDP)导致的速率问题,并总结了配置一致性检查、临时改动闭环及协议选择等方面的运维经验。
|
10月前
|
存储 缓存 分布式计算
ClickHouse核心架构设计
本文深入解析了列式存储、数据压缩、向量化执行引擎、分布式计算模型及MergeTree引擎的底层原理。首先对比列式与行式存储,阐述列式存储在减少I/O、高效压缩及向量化处理方面的优势;接着分析常用压缩算法(如LZ4、ZSTD)及其优化策略。随后探讨向量化执行引擎的工作机制,包括数据块结构、SIMD指令加速及零拷贝技术,显著提升OLAP查询性能。分布式计算部分详解分片与副本机制,确保高可用与扩展性。最后聚焦MergeTree引擎,涵盖数据写入、合并、主键索引、跳数索引及分区管理等核心功能,并提供最佳实践建议。
|
Prometheus 监控 Cloud Native
Grafana 最全详解 ( 图文全面总结 )
Grafana是非常重要的微服务部署监控工具,被广泛应用于大型网站架构,本文全面详解。关注【mikechen的互联网架构】,10年+BAT架构经验倾囊相授。
Grafana 最全详解  ( 图文全面总结 )
|
编解码 Prometheus 监控
完全解读Prometheus查询(下)
完全解读Prometheus查询(下)
934 0
|
监控 Cloud Native 关系型数据库
使用 Grafana 统一监控展示 - 对接 Zabbix
使用 Grafana 统一监控展示 - 对接 Zabbix
OpenEuler配置本地yum源
本文档介绍了如何在服务器和虚拟机上挂载光盘镜像并配置本地Yum仓库,包括创建挂载点、编辑repo文件、实现挂载持久化以及通过FTP共享本地仓库的方法。适用于需要频繁安装软件包或管理多台机器的场景。
3263 0
OpenEuler配置本地yum源
|
负载均衡 网络协议 安全
DNS解析中的Anycast技术:原理与优势
【9月更文挑战第7天】在互联网体系中,域名系统(DNS)将域名转换为IP地址,但网络规模的扩张使DNS解析面临高效、稳定与安全挑战。Anycast技术应运而生,通过将同一IP地址分配给多个地理分布的服务器,并依据网络状况自动选择最近且负载低的服务器响应查询请求,提升了DNS解析速度与效率,实现负载均衡,缓解DDoS攻击,增强系统高可用性。此技术利用动态路由协议如BGP实现,未来在网络发展中将扮演重要角色。
1171 0
|
容器 Perl Kubernetes
深入 Kubernetes 网络:实战K8s网络故障排查与诊断策略
本文介绍了Kubernetes网络的基础知识和故障排查经验,重点讨论了私有化环境中Kubernetes网络的挑战。首先,文章阐述了Kubernetes网络模型的三大核心要素:Pod网络、Service网络和CNI,并强调了其在容器通信和服务发现中的作用。接着,通过三个具体的故障案例,展示了网络冲突、主节点DNS配置更改导致的服务中断以及容器网络抖动问题的解决过程,强调了网络规划、配置管理和人员培训的重要性。最后,提到了KubeSkoop exporter工具在监控和定位网络抖动问题中的应用。通过这些案例,读者可以深入了解Kubernetes网络的复杂性,并学习到实用的故障排查方法。
148906 19