5
项目上有对此能力的诉求,希望能够在SQL注释中体现traceId等易于定位的信息,基于Druid如何实现?
项目上有对此能力的诉求,希望能够在SQL注释中体现traceId等易于定位的信息,基于Druid如何实现?
继承 FilterEventAdapter,实现自己的Filter,注册进去即可。 重载以下几个方法,把sql修改拼上注释之后,再调用super.statementExecuteUpdateBefore等对应方法即可。
@Override
protected void statementExecuteUpdateBefore(StatementProxy statement, String sql) {
}
@Override
protected void statementExecuteQueryBefore(StatementProxy statement, String sql) {
}
@Override
protected void statementExecuteBefore(StatementProxy statement, String sql) {
}
@Override
protected void statementExecuteBatchBefore(StatementProxy statement) {
}
不过合理的trace做法,建议应该是基于filter的这些方法,旁路采集sql生成trace即可。 我最近刚刚做了这样的实现,基于opentelemetry的sdk封装,然后通过slf4j生成trce日志即可。
不过合理的trace做法,建议应该是基于filter的这些方法,旁路采集sql生成trace即可。 我最近刚刚做了这样的实现,基于opentelemetry的sdk封装,然后通过slf4j生成trce日志即可。
感谢你的回答,当前诉求的场景是通过数据库SHOW PROCESSLIST命令就可以直接看到当前数据库慢SQL以及对应的链路信息。
不过合理的trace做法,建议应该是基于filter的这些方法,旁路采集sql生成trace即可。 我最近刚刚做了这样的实现,基于opentelemetry的sdk封装,然后通过slf4j生成trce日志即可。
感谢你的回答,当前诉求的场景是通过数据库SHOW PROCESSLIST命令就可以直接看到当前数据库慢SQL以及对应的链路信息。
那你按照我前面的方案再sql前面拼上 带traceid的注释,然后调用super方法即可。