背景
APM
是利用性能监控的缩写。目前APM
的次要性能着眼于分布式系统的性能诊断,其次要性能包含调用链展现,利用拓扑剖析等。
ShardingSphere并不负责如何采集、存储以及展现利用性能监控的相干数据,而是将SQL解析与SQL执行这两块数据分片的最外围的相干信息发送至利用性能监控零碎,并交由其解决。
换句话说,ShardingSphere仅负责产生具备价值的数据,并通过标准协议递交至相干零碎。ShardingSphere能够通过两种形式对接利用性能监控零碎。
第一种形式是应用OpenTracing API发送性能追踪数据。面向OpenTracing协定的APM产品都能够和ShardingSphere主动对接,比方SkyWalking,Zipkin和Jaeger。应用这种形式只须要在启动时配置OpenTracing协定的实现者即可。
它的长处是能够兼容所有的与OpenTracing协定兼容的产品作为APM的展示零碎,如果采纳公司违心实现本人的APM零碎,也只须要实现OpenTracing协定,即可主动展现ShardingSphere的链路追踪信息。
毛病是OpenTracing协定倒退并不稳固,较新的版本实现者较少,且协定自身过于中立,对于个性化的相干产品的实现不如原生反对弱小。
第二种形式是应用SkyWalking的主动探针。
ShardingSphere团队与SkyWalking团队独特单干,在SkyWalking
中实现了ShardingSphere
主动探针,能够将相干的利用性能数据主动发送到SkyWalking
中。
应用办法
应用OpenTracing协定
- 办法1:通过读取零碎参数注入APM零碎提供的Tracer实现类
启动时增加参数
-Dorg.apache.shardingsphere.opentracing.tracer.class=org.apache.skywalking.apm.toolkit.opentracing.SkywalkingTracer
调用初始化办法
ShardingTracer.init();
- 办法2:通过参数注入APM零碎提供的Tracer实现类
ShardingTracer.init(new SkywalkingTracer());
留神:应用SkyWalking的OpenTracing探针时,应将原ShardingSphere探针插件禁用,以避免两种插件互相冲突
应用SkyWalking主动探针
请参考SkyWalking部署手册。
成果展现
无论应用哪种形式,都能够不便的将APM信息展现在对接的零碎中,以下以SkyWalking为例。
利用架构
应用Sharding-Proxy
拜访两个数据库192.168.0.1:3306
和192.168.0.2:3306
,且每个数据库中有两个分表。
拓扑图展现
从图中看,用户拜访18次Sharding-Proxy利用,每次每个数据库拜访了两次。这是因为每次拜访波及到每个库中的两个分表,所以每次拜访了四张表。
跟踪数据展现
从跟踪图中能够可能看到SQL解析和执行的状况。
/Sharding-Sphere/parseSQL/
: 示意本次SQL的解析性能。
/Sharding-Sphere/executeSQL/
: 示意具体执行的理论SQL的性能。
异常情况展现
从跟踪图中能够可能看到产生异样的节点。
/Sharding-Sphere/executeSQL/
: 示意执行SQL异样的后果。
/Sharding-Sphere/executeSQL/
: 示意执行SQL异样的日志。