首页 > Web开发 > 详细

asp.net core监控—引入Prometheus(六)

时间:2021-01-02 22:53:49      阅读:23      评论:0      收藏:0      [点我收藏+]
在前面的系列博文中,我们说自定义业务计数器步骤:

  1. 分析业务,规划好监控跟踪指标
  2. 定义指标收集器
  3. 侵入编程(尽量在开发时分离业务实现与监控指票的收集代码)收集指标
  4. 开发grafana展示模板,完成展示
    结合《asp.net core监控—引入Prometheus》二,三,四,五4种模版的demo,来较为深入分析了解一下这些步骤。


本系列是Prometheus和Grafan组合,这个组合擅长展示系统的实时跟踪数据,如果是统计数据,它们不一定是最佳选择。

1. 分析业务,规划好监控跟踪指标

这一点是最难的,首先要了解自己的项目解决的主要问题是什么,比如商城第一要务是卖东西,单位时间内卖了多少,卖了多钱,是比较重要的,再考虑相对次要的问题,比如单位时间内什么东西卖的多,单位时间内用户的增加量等信息,罗马不是一天建成的,建议先从重要的开始,逐渐在构建自己的监控跟踪系统。

2.定义指标收集器

本系列博文中说到Prometheus四种类型的收集器,按照规划好的监控指标,选择适当的使用,一般情况下Counter(计数器)、Gauge(仪表盘)直观,通俗易懂,Histogram(直方图)、Summary(摘要)比较抽像,但它们更能从宏观上展示业务状况,统计学上更科学。

3.侵入编程(尽量在开发时分离业务实现与监控指票的收集代码)收集指标

这部分我们在demo中有做分享,可能不是最好的解决方案,这部分可能要根据每个项目的架构来处理,努力把类似监控,日志,跟踪等非业务功能与业务代码区分开来,减少耦合。另一方便,有一些监控数据对业务系统的耦合是比较紧的,比如《asp.net core监控—引入Prometheus(三)》的Gauge(仪表盘)中,展示的是订单每个阶段的数量,其实是不准确的,因为当我们系统重启时,这些值就会置零,如果修改代码,每次启动系统,从数据库里查询出订单各个阶段的数量,来初始化仪表盘,表面上是可以的,但如果系统是分布式部署,就会引来一个问题,每个节点或Pod都有一份数据,当用Grafana集中展示时,就要把节点累加,造成数据重复,系统运行后,每次下单,支付,发货,触发的是单节点仪表盘上的数值变化,这样,运行一段时间就会造成数据即不是倍数关系,也不是增量关系;其实如果我们仔细分析的话,每个订单实时的量不适合这种在应用中用加减来对外吐值,可以换一个数据库或缓存的数据源来查询展示,俗话说,不能在一个树上吊死,我们要利用grafana不同的面板数据源都是独立的这个特点,分别对待。

4.开发grafana展示模板,完成展示

这是个技术活了,首先要熟悉grafana的使用了,grfafan的相关的文章还不少;在grafana中,不同的数据源取数据的方式不尽相同,这个是学习点,还有grfana的一些函数也是很好的选择,自动提示引入函数的功能能让我们配置起来更简便,还有不同的面板类型,有很多的属性,能给我们的图表锦上添花,多探索,多琢磨。

《asp.net core监控—引入Prometheus》的系列到这篇就完成了,仅把自己的粗略认识分享给大家,欢迎指正!

asp.net core监控—引入Prometheus(六)

原文:https://blog.51cto.com/axzxs/2580737

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!