关于数据库:ShardingSphere-4x-编排治理之应用性能监控集成

3次阅读

共计 1462 个字符,预计需要花费 4 分钟才能阅读完成。

背景

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:3306192.168.0.2:3306,且每个数据库中有两个分表。

拓扑图展现

从图中看,用户拜访 18 次 Sharding-Proxy 利用,每次每个数据库拜访了两次。这是因为每次拜访波及到每个库中的两个分表,所以每次拜访了四张表。

跟踪数据展现

从跟踪图中能够可能看到 SQL 解析和执行的状况。

/Sharding-Sphere/parseSQL/ : 示意本次 SQL 的解析性能。

/Sharding-Sphere/executeSQL/ : 示意具体执行的理论 SQL 的性能。

异常情况展现

从跟踪图中能够可能看到产生异样的节点。

/Sharding-Sphere/executeSQL/ : 示意执行 SQL 异样的后果。

/Sharding-Sphere/executeSQL/ : 示意执行 SQL 异样的日志。

正文完
 0