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

在前面的系列博文中,我们说自定义业务计数器步骤:

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》的系列到这篇就完成了,仅把自己的粗略认识分享给大家,欢迎指正!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/307214.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

软件构造学习笔记-实验4

磕磕绊绊也算是完成了最后一个实验。记录一下实验中遇到的问题。 IDEA中SpotBugs的安装和使用 从网上找教程,都说IDEA没有使用版权。结果我直接在插件中就找到了。点击安装并重启即可。 使用时,选择需要操作的项目/包/类点击右键,就能看到S…

使用ML.NET模型生成器来完成图片性别识别

什么是ML.NET?ML.NET 使你能够在联机或脱机场景中将机器学习添加到 .NET 应用程序中。借助此功能,可以使用应用程序的可用数据进行自动预测。机器学习应用程序利用数据中的模式来进行预测,而不需要进行显式编程。ML.NET 的核心是机器学习模型…

软件构造学习笔记-第十四周、十五周

课程进入了尾声。本周内容主要是线程安全相关。线程错误比一般的错误更加难以发现和修改,甚至加入一条print语句就能改变时间分片,从而导致错误消失。重点介绍了“锁”的机制,在使用时避免对整个方法进行lock,而是对可能发生线程不…

打爆你的 CPU

通过一段代码打爆你的 CPUIntro这是这个煞笔代码系列的最后一篇——Full CPU,相对来说也比前面三个简单一些,没有那么多的知识点。今天来尝试写一段代码,把 CPU 打满,让所有处理器的 CPU 使用率达到 100%,Lets do it.如…

吴恩达DeepLearningCourse1-神经网络和深度学习

计划在9月4日(截止日期)之前完成DeepLearning的所有课程学习。每个课程对应一篇博客,根据学习进度随时更新。 参考课程文章目录(一)深度学习概论结构化数据和非结构化数据提高效果的方法(二)神经…

吴恩达DeepLearningCourse2-改善深层神经网络:超参数调试、正则化以及优化

文章目录第一周:深度学习的实用层面训练、开发、测试集偏差、方差机器学习基本步骤L2正则化Dropout(随机失活)正则化其它正则化方法正则化输入神经网络的权重初始化梯度检验第二周:优化算法Mini-Batch梯度下降法指数加权平均指数加…

面向监狱编程:一伙人植入木马程序至 559 万部手机,盈利 33 万!

2018 年下半年以来,孙某(上海宏路数据技术股份有限公司副总经理)与苏某(北京亿量科技有限公司法定代表人)商议合作开展锁屏拉起广告业务(通过在用户手机上植入带有木马程序的 SDK,可控制手机在锁…

吴恩达DeepLearningCourse3-结构化机器学习项目

文章目录第一周:机器学习策略1正交化单一数字评估指标满足和优化指标训练/开发/测试集机器学习和人的表现第二周:机器学习策略2进行误差分析修正标注错误的数据使用来自不同分布的数据进行训练和测试数据分布不匹配时的偏差与方差的分析处理数据分布不匹…

程序员过关斩将--搞定秒杀,只需要这几步!!

“灵魂拷问秒杀这种大并发的写场景,直接分库分表开干?应对秒杀活动的流量高峰很难吗?不要拿淘宝级别的秒杀忽悠我秒杀活动特点我敢说凡是做过电商的同学,都会遇到运营展开的秒杀,限时购等“高并发”的活动。市面上也有…

吴恩达DeepLearningCourse4-卷积神经网络

部分内容参考之前的笔记 PyTorch深度学习实践 文章目录第一周:卷积神经网络边缘检测Padding、Stride三维卷积卷积神经网络中的一层池化层第二周:深度卷积网络实例探究残差网络1x1卷积Inception模块和网络卷积神经网络的迁移学习第三周:目标检…

那些鼓吹国内首个.NET 5框架的,该醒醒了!

前两天看过园子里有篇【国内首个 .NET 5 框架 XX 斩获 XXX stars,XXX 发布】,一顿羡慕嫉妒恨啊。我这.net core 3.1才上手没几天,还没用热乎呢,你这.NET 5的框架都出来了。我好难啊!不过难归难咱也得跟上啊。于是一个天高云淡的的…

吴恩达DeepLearningCourse5-序列模型

终于在八月末学完了这门课程,这个月虽然为此不停地忙碌,但每天都在进步也是一种乐趣。 吴恩达教授的课程循序渐进,适合初学者,非常感谢他的辛苦付出。 文章目录第一周:循环序列模型循环神经网络(RNN&#…

IdentityServer4系列 | 客户端凭证模式

一、前言从上一篇关于 快速搭建简易项目中,通过手动或者官方模板的方式简易的实现了我们的IdentityServer授权服务器搭建,并做了相应的配置和UI配置,实现了获取Token方式。而其中我们也注意到了三点就是,有哪些用户(users)可以通过…

数据结构 - 链表

准备重启尘封一年的博客作为学习笔记,看看自己能坚持多久。 最近会记录做过的算法题,语言描述只用于会意,仅供参考。 文章目录0.从尾到头获取链表的值(不是反转链表)1.寻找/删除单链表倒数第k个节点3.寻找单链表的中点…

[读书笔记] 《修炼之道:.NET 开发要点精讲》

《修炼之道:.NET 开发要点精讲》目录《修炼之道:.NET 开发要点精讲》第 1 章 另辟蹊径:解读.NET1.7 本章思考 > 位置 465第 2 章 高屋建瓴:梳理编程约定2.2 方法与线程的关系 > 位置 5192.7 线程安全 > 位置 5952.8 调用与回调 > 位置 6612.…

数据结构 - 概述

存储方式 数据结构的存储方式只有顺序存储(对应数组)、链式存储(对应链表)两种。所有上层的数据结构,如树、堆、栈等,存储方式均属于以上两种。顺序存储的优势是支持随机访问,缺点是需要连续的…

ASP.NET Core 使用 gRPC 初探

(RPC通讯示意图)为什么突然说到gRPC呢,其实以前就想说一说这个东西,也想尝试使用一下,一直没有机会,一直看我公众号的小伙伴肯定都知道,这几天一直在录制一个《eShopOnContainer微服务架构》系列…

源码都没调试过,怎么能说熟悉 redis 呢?

一:背景 1. 讲故事记得在很久之前给初学的朋友们录制 redis 视频课程,当时结合了不少源码进行解读,自以为讲的还算可以,但还是有一个非常核心的点没被分享到,那就是源码级调试, 对,读源码还远远…

算法 - DFS/BFS

写DFS函数的时候首先确定当前位置是否已经加入路径 DFS函数大概率会传递“位置信息”,根据位置信息获取下一步的选择,(大部分是在循环中)选择、执行、回退 在哪做选择,就在哪退出选择,参考题9 def DFS()…

你想象中的Task后续,很简单?

【导读】前不久,写过一篇关于Task的简短文章,通过评论和转载得到好评,刚好我昨晚又写了一篇实现简单的消息队列也提到了Task,难道不应该是看具体执行什么操作,再考虑最佳方案?本文我们再次通过简短内容谈谈…