全链路监控分析实战
Posted 慧测软件测试
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了全链路监控分析实战相关的知识,希望对你有一定的参考价值。
面试问题:
1、你们的监控方案怎么设计的?如何分析定位响应时间慢的问题?
2、线程阻塞、压力上不去、内存泄漏的问题你是怎么定位的?
这个最常见的问题,很少有回答让面试官满意的,来吧,这里给你答案。
这篇文章讲解响应时间拆分的环境部署,下篇文章介绍如何定位JVM线程阻塞问题。
这套环境你能部署下来,薪资多要3K以上没问题
Skywalking——目前最强悍的全链路分布式性能管理监控方案,监控平台涵盖前端页面,Java, .Net Core, php, NodeJS, Golang, LUA, C++等。
不懂响应时间拆分,你敢说会做性能测试?不过从今天开始你就会啦
加微信huice666,进群下载资料、视频并免费获取技术支持!
话不多说,先来几张项目实战效果图:
1、链路监控的起点——浏览器
基于前端页面的业务访问模型和性能数据统计,一目了然,之前只能在收费APM中才有的功能,现在也可以尽情使用啦!
Skywalking对前端监控的资料非常少,有不少甚至是错误的,如需帮助可以加群或者微信留言。
2、后端应用及微服务平台监控
1)调用关系拓扑图
2)响应时间分解图
拆分响应时间是分析和定位瓶颈的关键所在,有了它,分析、定位瓶颈就有底气了。
是不是很高大上?是不是很心动?开干,先把环境搞起来!
3、监控架构解析
1)官方监控架构
官方的架构图很详细,也很高大上,再来个慧测实战项目简化版的
举例说明一下Java应用监控基本流程:
- 安装Skywalking的JavaAgent到被测服务器进行信息采集;
- 将采集到的信息发送给Skywalking-OAP服务;
- Skywalking-OAP服务将数据写入到Elasticsearch数据库;
- 通过浏览器访问Skywalking-UI服务,即可看到炫酷的数据展示界面。
整体架构主要包括三个部分:
- 探针(Skywalking-Agent)
负责进行收集数据,包括Tracing和Metrics的数据,agent会被安装到服务所在的服务器上,以方便数据的获取。如果基于Docker环境部署项目,强烈建议制作项目镜像文件时将对应探针一并打包,慧测的实战项目平台就基于这种方式,非常简单、方便。(如果不清楚怎么做,可以微信给我留言)。 - 可观测性分析平台(Skywalking-OAP)
接收探针发送的数据,并在内存中使用分析引擎(Analysis Core)进行数据的整合运算,然后将数据存储到对应的存储介质上,比如Elasticsearch、mysql数据库,建议使用Elasticsearch。 - 数据展示界面(Skywalking-UI)
炫酷的界面,Skywalking提供单独的UI界面进行数据的查看,通过UI调用OAP提供的接口,获取对应的数据然后进行展示。
4、监控平台环境部署实战
强烈建议采用docker-compose一键安装,省时、省心、省力、没烦恼。考虑到篇幅和容错问题,这里把docker-compose.yml的截图发出来,需要源文件及相关部署文档的小朋友请进群下载!
将docker-compose.yml上传到Linux指定目录,终端执行如下命令即可安装完成:
docker-compose up -d
基础环境搭建完成后,接下来就是安装不同应用的探针(Agent)了。
关于docker及docker-compose的安装及使用,如有不明白的请进群发问。
以上需要用到的文件及安装文档会在下篇文章中给大家分享出来!
下篇见!
Flink实战系列Flink 如何实现全链路延迟监控
Flink 如何实现全链路延迟监控
需求 & 背景
在实际的生产环境中,我们希望可以监控一个任务整个链路的延迟情况,用来分析 Flink 应用的性能表现.
分析
Flink 的全链路延迟监控指的是从任务的 source 经过中间的 operator 到最后的 sink 端到端的延迟,这是一个非常重要的指标,可以用来衡量 Flink 任务的整体性能和响应延迟,下面就来介绍一下如何实现全链路的监控.
思考
既然要计算端到端的延迟,很容易想到的办法就是在 source 端获取一个时间戳,然后在 sink 的时候再获取一个时间戳,用 sink 时的时间戳减去source 时的时间戳就是整个链路的延迟.这个结果是一个比较准备的值,那具体要怎么实现呢?
实现
一般我们流式的计算 source 都是 MQ,这里拿 kafka 来举例,再读取 kafka 的数据时候可以获取到 kafka 的 timestamp 时间戳,代码实现如下:
package flink.utils;
import bean.JasonEntity;
import com.alibaba
以上是关于全链路监控分析实战的主要内容,如果未能解决你的问题,请参考以下文章
工作随笔——pinpoint分布式性能监控工具(docker安装)