确定分布式全链路监控
链接:https://pan.baidu.com/s/1sl9dP9r密码:jsux
介绍:
,,定位是一个开源的APM((应用程序性能管理/应用性能管理)工具,基于JAVA的大规模分布式系统。
,,仿照古耳衣冠楚楚,查明通过跟踪分布式应用之间的调用来提供解决方案,以帮助分析系统的总体结构和内部模块之间如何相互联系
,,服务器地图(ServerMap):
,,,,通过可视化分布式系统的模块和他们之间的相互联系来理解系统拓扑。点击某个节点会展示这个模块的详情,比如它当前的状态和请求数量。
,,实时活动线程图表(Realtime活动线程图表)
实时监控应用内部的活动线程。
请求/应答分布图表(请求/响应散点图)
长期可视化请求数量和应答模式来定位潜在问题。通过在图表上拉拽可以选择请求查看更多的详细信息
调用栈(CallStack)
在分布式环境中为每个调用生成代码级别的可视图,在单个视图中定位瓶颈和失败点
巡查(检验员)
查看应用上的其他详细信息,比如CPU使用率,内存/垃圾回收,TPS,和JVM参数,
分布式系统调用链监控特点:
,,1、应用架构由集中式向分布式演进后,整个调用关系变得复杂
2,分布式架构由复杂且较大规模集群构成,哥哥应用之间相当独立,可能由不同团队,不同语言实现
3,系统一个完整的调用过程可能横跨多个服务及数据中心
4,复杂的调用导致系统出问题后难以定位问题
5,无法准确知道整体系统性能及运行情况
确定中的数据结构
定位中,核心数据结构由跨度,跟踪,和TraceId组成
,,1,跨度:RPC(远程过程调用/远程过程调用)跟踪的基本单元;当一个RPC调用到达时指示工作已经处理完成并包含跟踪数据。
,,为了确保代码级别的可见性,跨度拥有带SpanEvent标签的子结构作为数据结构。每个跨包含一个TraceId
2,跟踪:多个跨度的集合;由关联的RPC(跨越)组成。在同一个跟踪中的跨度共享相同的TransactionId.Trace通过SpanId和ParentSpanId整理为继承树结构。
,,3,TraceId:由TransactionId, SpanId,和ParentSpanId组成的关键的集合。TransactionId指明消息ID,而SpanId和ParentSpanId表示RPC的父-子关系。
TransactionId (TxId):在分布式系统间单个事务发送/接收的消息的ID;必须跨整个服务器集群做到全局唯一。
SpanId:当收到RPC消息时处理的工作的ID;在RPC请求到达节点时生成。
ParentSpanId (pSpanId):发起RPC调用的父跨度的SpanId。如果节点是事务的起点,这里将没有父跨度,对于这种情况,使用值1来表示这个跨度是事务的根。
谷歌Dapper和NAVER查明在术语上的不同
全链路性能监控
,,一个请求完整的调用链可能如下图,经过多个系统服务,调用关系:
,,,,,,
关注各个调用的各项性能指标,比如吞吐量(TPS)响应时间及错误记录等
吞吐量:根据拓扑可相应计算组件,平台,物理设备的实际吞吐量
响应时间:包括整体调用的响应时间和各个服务的相应时间等
错误记录:根据服务返回统计单位时间异常次数
全链路性能监控从整体维度到局部维度展示各项指标,将跨应用的所有调用链性能信息集中展现,可方便度量整体和局部性能,
并且方便找到故障产生的源头,生产上可极大缩短故障排除时间。
环境准备:
系统环境:centos 6. x以上,不要太低
JDK最好是7或8
部署HBASE(分布式用管理员可以使用内置的,单点就不需要)
搭建过程:
确定由4部分组成
1。确定代理,2。查明收集器,3。HBase 4。确定Web UI
,,1部署JDK
具体过程略:
,配置环境变量vim/etc/profile
export JAVA_HOME=/usr/地方/JDK
出口JRE_HOME=$ {JAVA_HOME}/jre
出口CLASSPATH=?$ {JAVA_HOME}/lib: $ {jre_home}/lib
出口路径=$ {JAVA_HOME}/bin:美元路径
# #配置环境变量执行:源/etc/profile
b,检查配置是否成功
[root@mysql-jiachi当地]# java - version
java版本“1.8.0_112”
java (TM) SE运行时环境(构建1.8.0_112-b15)
java HotSpot VM (TM)服务器(构建25.112去往b15,混合模式)
2,安装并启动hbase
解压hbase-1.1.11-bin.tar。广州
1,焦油-zxvf/root/pp/hbase-1.1.11-bin.tar。广州时间- c/usr/local/大敌;;# #建议重命名为hbase===在/usr/地方/hbase
2, cd/usr/local/hbase/conf