思考题看完了今天的文章
你不妨说下为什么要先有全局监控,再有定向监控?
以及我为什么不建议一开始就上代码级的监控工具呢?
读者:
思考题
为什么要先有全局监控,再有定向监控:因为首先要从大方向上,找到瓶颈在哪里;再进入细节去分析,才比较有效率
为什么不建议一开始就上代码级的监控工具呢:一上来就上代码级别的监控,一方面配置这些监控太耗时间,另一方面可能得到的数据,也用不上
另外,我们公司用的是DataDog,可以给每个机器单独的top/ps命令的记录,我们公司从框架级别支持收集一些基本的数据(比如,一个GRPC耗时多久),把AWS的相关数据也都集中在这里,还可以设置起来对应的报警;感觉颇为好用
作者回复: 挺好。工具可以让我们工作更有效率,原理让我们理解看哪些数据。
读者:
老师,请问您是如何把自己的经验沉淀成一套理论方法,其中的过程有什么方法吗?我在学一些东西的时候,经常是一些散乱的知识点,如何把它们形成一套理论方法呢?
作者回复: 这跟上学的时候学知识点是一样的道理。
像数学,一开始只学加减乘除,再学各种公式,再到高等数学。这些都只是基础,而应用数学就是融会贯通使用了。
IT的知识首先肯定是散乱的知识点。比如说linux操作系统基础操作和原理,这些必须要看一遍。比如说网络知识TCPIP协议栈,这些也必须都看一遍。再比如说.....
只有将这些内容都掌握了大概,在项目中具体的实操应用,最后才能形成完成的知识体系。
这个路子,也没什么捷径可走。
专栏可以提供的借鉴和思路,但是这条路,只能自己走完,才会形成自己的体系。
读者:
1.为什么要先有全局监控,再有定向监控?
先全局监控,才能有全面系统的数据分析,避免遗失信息,能更快速有效的发现问题。
通过分析全局、定向、分层的监控数据做分析,再根据分析的结果决定下一步要收集什么信息,然后找到完整的证据链,才能体现监控的价值。
2.为什么不建议一开始就上代码级的监控工具呢?
因为代码级的监控消耗资源,更重要的是,代码级监控数据很多,查看这些数据耗费精力,就像大海捞针,没必要像无头苍蝇乱撞。如果定位到它们有问题时再去监控、去看,更一针见血。
作者回复: 这位同学已经完全理解我的意图,非常好。
- JMeter 是如何把数据推送到 Grafana 中呢?
- 监控操作系统的计数器,监控平台中的数据和监控命令中的数据有什么区别?
读者:
老师,按照你讲的原理,其实我们需要搭建 jmeter+influxdb+grafana 和 prometheus+exports+grafana 2套系统来分别监控我们需要的性能指标,是么?
jmeter+influxdb+grafana用来监控jmeter中的线程数,响应时间和吞吐量,prometheus+exports+grafana 用来监控系统资源或者数据库以及其他资源, 对么?
并且prometheus+exports+grafana 只能监控linux和uinx系统,无法监控windows,并且只能监控mysql数据库,感觉好像就是为监控docker之内的容器而生的~
作者回复: 你可以用grafana+prometheus+一堆exporters来实现对windows/linux/mysql/jvm/redis/kafka等的监控,同时也用同一个grafana+prometheus来监控k8s+docker。有很多的exporter可以用。
对jmeter,如果你想放进去,可以用同一个granfa,再搭配一个influxdb收集jmeter的数据就行了。
读者:
JMeter 是如何把数据推送到 Grafana 中呢?
JMeter先把运行的统计结果都加到 metric 中,再使用 InfluxdbMetricsSender 发送到 Influxdb 中去;
Grafana 配置一个 InfluxDB 数据源,然后添加一个 JMeter dashboard,Grafana 就可以显示 JMeter 的统计数据了。
同样是监控操作系统的计数器,监控平台中的数据和监控命令中的数据有什么区别?
数据本身没有区别,相同的数据值都一样,只是查看方式不同而已。
疑问:Grafana 添加一个 JMeter dashboard,没太明白其中原理。
作者回复: grafana不存数据,看的时候从influxdb里拉过来。