全链路监控

随着微服务架构的流行,服务按照不同的维度进行拆分,一次请求 往往需要涉及到多个服务。这些服务可能不同编程语言开发,不同 团队开发,可能部署很多副本。因此,就需要一些可以帮助理解系 统行为、用于分析性能问题的工具,以便发生故障的时候,能够快 速定位和解决问题。全链路监控组件就在这样的问题背景下产生了。

全链路性能监控 从整体维度到局部维度展示各项指标,将跨应用的 所有调用链性能信息集中展现,可方便度量整体和局部性能,并且 方便找到故障产生的源头,生产上可极大缩短故障排除时间。

全链路监控解决什么问题

• 请求链路追踪:通过分析服务调用关系,绘制运行时拓扑信息,可视化展示

• 调用情况衡量:各个调用环节的性能分析,例如吞吐量、响应时间、错误次数

• 容器规划参考:扩容/缩容、服务降级、流量控制

• 运行情况反馈:告警,通过调用链结合业务日志快速定位错误信息

全链路监控选择依据

全链路监控系统有很多,应从这几方面选择:

• 探针的性能消耗

APM组件服务的影响应该做到足够小,数据分析要快,性能占用小。

• 代码的侵入性 即也作为业务组件,应当尽可能少入侵或者无入侵其他业务系统, 对于使用方透明,减少开发人员的负担。

• 监控维度 分析的维度尽可能多。

• 可扩展性 一个优秀的调用跟踪系统必须支持分布式部署,具备良好的可扩展 性。能够支持的组件越多当然越好。

主流系统:zipkin、skywalking、pinpoint

Pinpoint 介绍

Pinpoint是一个APM(应用程序性能管理)工具,适用于用Java/PHP编写的大型分布式系统。

特性:

 服务器地图(ServerMap)通过可视化分布式系统的模块和他们之间的相互联系来理解系统拓扑。点击某个节点 会 展示这个模块的详情,比如它当前的状态和请求数量。

 实时活动线程图 (Realtime Active Thread Chart) :实时监控应用内部的活动线程。

 请求/响应分布图( Request/Response Scatter Chart ) :长期可视化请求数量和应答模式来定位潜在问题。 通过在图表上拉拽可以选择请求查看 更多的详细信息。

 调用栈( CallStack ):在分布式环境中为每个调用生成代码级别的可视图,在单个视图中定位瓶颈和失败点。

 检查器( Inspector ) :查看应用上的其他详细信息,比如CPU使用率,内存/垃圾回收,TPS,和JVM参数。

Pinpoint 部署

安装dockeryum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager \--add-repo \

https://download.docker.com/linux/centos/docker-ce.repo

yum install docker-ce -y

curl-sSL https://get.daocloud.io/daotools/set_mirror.sh | sh -shttp://bc437cce.m.daocloud.io

systemctl start docker

systemctl enable docker

安装Docker-compose

#sudo curl -L "https://github.com/docker/compose/releases/download/1.23.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

#chmod +x /usr/local/bin/docker-compose

# docker-compose --version

docker-compose version 1.23.1, build b02f1306

安装pinpoint

git clone https://github.com/naver/pinpoint-docker.git

cd pinpoint-docker

docker-compose pull && docker-compose up -d

# dockerps -a |awk '{print $2}'ID

pinpointdocker/pinpoint-quickstart

pinpointdocker/pinpoint-agent:1.8.5pinpointdocker/pinpoint-web:1.8.5pinpointdocker/pinpoint-collector:1.8.5flink:1.3.1flink:1.3.1zookeeper:3.4zookeeper:3.4pinpointdocker/pinpoint-hbase:1.8.5zookeeper:3.4pinpointdocker/pinpoint-mysql:1.8.5

Pinpoint 主要由 3 个组件外加 Hbase 数据库组成,三个组件分别为:Agent、Collector 和 Web UI

Agent组件:用于收集应用端监控数据,无侵入式,只需要在启动命令中加入部分参数即可

Collector组件:数据收集模块,接收Agent发送过来的监控数据,并存储到HBase

WebUI:监控展示模块,展示系统调用关系、调用详情、应用状态等,并支持报警等功能

Quickstart:官方提供了一个测试用的应用

Pinpoint-Mysql是使用“报警”功能所必需的。它的服务器在端口13306上运行,并包含用于注册要发送的用户,组和警报的数据结构。如果不需要可以不安装

浏览器访问PinPoint WEB

我们启动pinpoint-quickstart演示实例,过一会数据采集完成,可以在浏览器看到数据。

Pinpoint Agent部署

Tomcat:

# catalina.shCATALINA_OPTS="$CATALINA_OPTS -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.agentId=$AGENT_ID"CATALINA_OPTS="$CATALINA_OPTS -Dpinpoint.applicationName=$APPLICATION_NAME"Jar:

java-jar -javaagent:$AGENT_PATH/pinpoint-bootstrap-$VERSION.jar -Dpinpoint.agentId=$AGENT_ID -Dpinpoint.applicationName=$APPLICATION_NAME xxx.jar

pinpoint如何检测mysql_微服务链路监控系统-Pinpoint相关推荐

  1. Spring Cloud Sleuth+Zipkin 构建微服务链路跟踪系统

    什么是链路跟踪系统? 在微服务中,多个服务分布在不同物理机器上,各个服务之间相互调用.如何清晰地记录服务调用过程,并在出现问题的时候能够通过查看日志和服务之间的调用关系来定位问题,这样的系统就叫做链路 ...

  2. 百度商业大规模微服务分布式监控系统——凤睛

    导读:作为凤睛早期的接入方.后期的核心成员,笔者经历了整个项目前后四年的变迁,看过项目的艰难开端.中期的默默积累以及后期的蓬勃发展.每一次架构的变迁都带着技术浪潮的烙印,也看到项目成员利用有限资源来解 ...

  3. 百度商业大规模微服务分布式监控系统-凤睛

    导读:作为凤睛早期的接入方.后期的核心成员,笔者经历了整个项目前后四年的变迁,看过项目的艰难开端.中期的默默积累以及后期的蓬勃发展.每一次架构的变迁都带着技术浪潮的烙印,也看到项目成员利用有限资源来解 ...

  4. 布道微服务_11监控系统选型与常见方案

    Pre 布道微服务_06微服务调用的监控中我们聊了聊监控系统的实现原理,简单来说主要包含 数据收集 数据传输 数据处理 数据展示 不同的监控系统实现方案,在这四个环节所使用的技术方案不同,适合的业务场 ...

  5. 主流微服务全链路监控系统之战

    点击上方蓝色"方志朋",选择"设为星标"回复"666"获取独家整理的学习资料!问题背景随着微服务架构的流行,服务按照不同的维度进行拆分,一次 ...

  6. 微服务链路追踪SkyWalking第一课 SkyWalking简介

    开篇词:从剖析 SkyWalking 源码到吃透 APM 核心知识 你好,我是你的 SkyWalking 老师徐郡明,网名吴小胖,你也可以叫我胖哥.进入互联网行业工作多年,主要从事基础组件开发相关的工 ...

  7. 微服务链路追踪SkyWalking

    微服务链路追踪SkyWalking 链路追踪介绍 skywalking是什么 SkyWalking环境搭建部署 SkyWalking跨多个微服务跟踪 SkyWalking UI介绍 SkyWalkin ...

  8. Observability:从零开始创建 Java 微服务并监控它 (一)

    在本教程中,你将学习如何使用 Elastic 可观察性监控 Java 应用程序:日志.基础设施指标.APM 和正常运行时间.通过本教程,你将学到: 创建示例 Java 应用程序. 使用 Filebea ...

  9. 爱奇艺号基于Prometheus的微服务应用监控实践

    前 言 微服务架构是目前各大互联网公司普遍采用的软件架构方式.在微服务架构中,系统被拆分为多个小的.相互独立的服务,这些服务运行在自己的进程中,可以独立的开发和部署.在业务快速变化时,微服务单一职责. ...

最新文章

  1. 大型网站架构之JAVA中间件
  2. FPGA基础之LUT详解
  3. 日均5亿查询量的京东订单中心,为什么舍MySQL用ElasticSearch?
  4. CoffeeScript 学习笔记
  5. 【java】java中内存映射文件和IO
  6. SQL Server 2012 显式授权示例
  7. 吉林大学校园网linux客户端,吉林大学校园网认证客户端 v5.2.1 pc版
  8. ie浏览器升级的正确姿势
  9. java8收费_java8为什么要收费?
  10. Caused by: java.lang.IllegalStateException: Process 9461 exceeded cursor quota 100, will kill it
  11. java 实现短信验证码
  12. 软件测试验收测试的重点是什么,实施软件验收测试的常用策略
  13. 机器学习“剧透”权游大结局:三傻最先领盒饭,龙妈、小恶魔笑到最后
  14. 怎么做ssl证书配置?
  15. 测试当前访问百度的IP地址(代理IP)
  16. 2023最新素材解析网站源码搭建和原理,附带PHP小例子。
  17. 高等数学(第七版)同济大学 习题6-2 (后18题)个人解答
  18. 大学生阅读小说网页设计模板代码 小说书籍网页作业成品 学校书籍网页制作模板 学生简单书籍阅读网站设计成品
  19. dwr框架查看外放方法_硬核!教你三种方法,实现微信自定义修改地区!
  20. 微信公众号推文发布方法(内含详细步骤)

热门文章

  1. .tcl文件_TCL电视自己安装的软件,有声音但没有画面?详细解决步骤奉上
  2. mysql 自动递增值归零_修改MySQL自动递增值
  3. python实现语音播放_python通过wxPython打开一个音频文件并播放的方法
  4. pythonstdin和stdout_如何使用os.execv()在python中继承stdin和stdout
  5. python字典的键有什么要求_在Python中使用范围作为字典键,我有什么选择?
  6. java中怎么跨盘搜索_求解:在盘符中搜索文件(listFiles())出现NullPointerException
  7. 只有ajax会跨域吗_为什么跨域Ajax是安全问题?
  8. clob存base64文件存不进去_工行信用卡这几个提额方法,你知道吗?一般人我不告诉他!...
  9. vue 指令 v-bind
  10. Spring 创建Bean的三种方式