启动时添加参数
-Dorg.apache.shardingsphere.tracing.opentracing.tracer.class=org.apache.skywalking.apm.toolkit.opentracing.SkywalkingTracer
调用初始化方法
ShardingTracer.init();
ShardingTracer.init(new SkywalkingTracer());
注意:使用 SkyWalking 的 OpenTracing 探针时,不能同时使用 Apache ShardingSphere Agent 的 OpenTracing 插件,以防止两种插件互相冲突。
请参考 SkyWalking 部署手册。
在agent.yaml中填写好配置即可,例如将 Traces 数据导出到 Zipkin。
OpenTelemetry:
props:
otel.resource.attributes: "service.name=shardingsphere-agent"
otel.traces.exporter: "zipkin"
otel.exporter.zipkin.endpoint: "http://127.0.0.1:9411/api/v2/spans"
无论使用哪种方式,都可以方便的将APM信息展示在对接的系统中,以下以 SkyWalking 为例。
使用 ShardingSphere-Proxy 访问两个数据库 192.168.0.1:3306
和 192.168.0.2:3306
,且每个数据库中有两个分表。
从图中看,用户访问 18 次 ShardingSphere-Proxy 应用,每次每个数据库访问了两次。这是由于每次访问涉及到每个库中的两个分表,所以每次访问了四张表。
从跟踪图中可以能够看到 SQL 解析和执行的情况。
/Sharding-Sphere/parseSQL/
: 表示本次 SQL 的解析性能。
/Sharding-Sphere/executeSQL/
: 表示具体执行的实际 SQL 的性能。
从跟踪图中可以能够看到发生异常的节点。
/Sharding-Sphere/executeSQL/
: 表示执行 SQL 异常的结果。
/Sharding-Sphere/executeSQL/
: 表示执行 SQL 异常的日志。