当前位置: 首页 > news >正文

建设部网站投诉如何注册网店推广的作用是

建设部网站投诉如何注册,网店推广的作用是,设计网站页面步骤,做网站我们是认真的skywalking的相关概念我就不介绍了,有兴趣可以参看官网文档 以下提供以下简单示例手工上报一些对问题排查比较有用的一些信息。当然这些内容你也可以写成探针插件的形式,怎么开发探针插件也自行参考官方文档。此处仅在项目框架层面提供一些简单的示例&am…

skywalking的相关概念我就不介绍了,有兴趣可以参看官网文档
以下提供以下简单示例手工上报一些对问题排查比较有用的一些信息。当然这些内容你也可以写成探针插件的形式,怎么开发探针插件也自行参考官方文档。此处仅在项目框架层面提供一些简单的示例,助于你快速入门。

手动上报异常信息

一般我们在项目中都会做全局异常拦截处理,最早我的方案是在gateway统一拦截封装,这样skywalking的agent组件就会不会到对应的异常信息进行上报到skywalkingserver端。但是接手了个没有gateway的微服务项目,统一由nginx进行转发,此时我们如果不将异常收敛在当前服务处理,异常信息势必会被抛到前端页面,显然是很不友好的行为。所以此时我们就得在当前服务内处理skywalking的异常信息上报。
正常我们的全局异常拦截处理类如下

@RestControllerAdvice
@Order(Ordered.HIGHEST_PRECEDENCE)
@Slf4j
public class GlobalExceptionHandler implements ExcetionHandler {@ExceptionHandler(value = Exception.class)public JsonResult unhandledException(HttpServletResponse resp, Exception e){log.error("未处理异常:", e);JsonResult result = new JsonResult();result.setMessage(ErrorCode.UNCATCH_EXCEPTION.getMsg());result.setCode(ErrorCode.UNCATCH_EXCEPTION.getCode());return result;}}

此时由于异常被收敛在这个类统一处理,所以我们可以写个切面横切这个类的所有方法,拿到异常信息手动上报给skywalking组件,当然也可以写出插件的形式。不用在框架代码中手动上报。

切面代码如下:

@Aspect
public class ExceptionHandlerAspect {@Around(value = "@annotation(org.springframework.web.bind.annotation.ExceptionHandler)")public Object around(ProceedingJoinPoint joinPoint) throws Throwable {Object[] args = joinPoint.getArgs();for (Object arg : args) {if (arg instanceof Throwable) {ActiveSpan.error((Throwable)arg);}}return joinPoint.proceed();}
}

是不是很简单。此处我们处理拦截异常之外,我们还可以对sql进行拦截,并将sql信息补全之后也统一上报给skywalking。这样出现业务问题时假如没有异常而是数据等问题,我们很容易可以通过链路追踪到对应的sql信息,除了sql我们还可以跟踪mq信息缓存信息等等都是一样的道理

手动上报sql信息

sql上报,sql上报我们可以写个sql拦截器,拦截statmentHander阶段或者拦截ParameterHandler阶段这两个阶段都是可以进行sql补全的。

ParameterHandler代码如下

@Intercepts({@Signature(type = ParameterHandler.class, method = "setParameters", args = {PreparedStatement.class})
}
)
public class MybatisLogInterceptor implements Interceptor {@Overridepublic Object intercept(Invocation invocation) throws Throwable {PreparedStatement statement = (PreparedStatement) invocation.getArgs()[0];PreparedStatement sql = null;Object proceed = invocation.proceed();if (Proxy.isProxyClass(statement.getClass())) {InvocationHandler handler = Proxy.getInvocationHandler(statement);if (handler.getClass().getName().endsWith(".PreparedStatementLogger")) {Field field = handler.getClass().getDeclaredField("statement");field.setAccessible(true);sql = (PreparedStatement) field.get(handler);}}ActiveSpan.tag(SpanConstant.ORM_TYPE, "mybatis");ActiveSpan.tag(SpanConstant.SQL_STATEMENT, sql);return proceed;}@Overridepublic Object plugin(Object target) {return Interceptor.super.plugin(target);}@Overridepublic void setProperties(Properties properties) {Interceptor.super.setProperties(properties);}
}

StatmentHander代码如下

@Intercepts(@Signature(type = StatementHandler.class,method = "parameterize",args = Statement.class)
)
public class MybatisTraceInterceptor implements Interceptor {private final static Logger log= LoggerFactory.getLogger(MybatisTraceInterceptor.class);public static <T> T realTarget(Object target) {if (Proxy.isProxyClass(target.getClass())) {MetaObject metaObject = SystemMetaObject.forObject(target);return realTarget(metaObject.getValue("h"));}return (T) target;}@Overridepublic Object intercept(Invocation invocation) throws Throwable {Object proceed = null;String sql=null;Statement statement = (Statement) invocation.getArgs()[0];proceed = invocation.proceed();try {PreparedStatementLogger psl = realTarget(statement);PreparedStatement ps = psl.getPreparedStatement();String pss = ps.toString();sql = pss.substring(pss.indexOf(":") + 1);ActiveSpan.tag(SpanConstant.ORM_TYPE, "mybatis");ActiveSpan.tag(SpanConstant.SQL_STATEMENT, sql);}catch (Exception e){log.error("sql上报skyWalking异常",e.getMessage());}return proceed;}@Overridepublic Object plugin(Object target) {return Plugin.wrap(target, this);}@Overridepublic void setProperties(Properties properties) {}
}

手动上报出入参信息

这里同样有两种方案,一个使用切面的方式进行处理,一个使用Filter或者拦截器的方式进行处理,但是后两个阶段存在一个问题就是流的读取问题,所以如果选择后两者进行操作,还需要进行流的缓存封装,是比较不可取的方案。代码都差不多,这个我就不贴了。

注意:
过滤器和拦截器一般我们用来处理头部信息会比较好点。


文章转载自:
http://slithery.pfbx.cn
http://acyloin.pfbx.cn
http://schizanthus.pfbx.cn
http://kharg.pfbx.cn
http://selva.pfbx.cn
http://disclination.pfbx.cn
http://hoary.pfbx.cn
http://permissionist.pfbx.cn
http://dangly.pfbx.cn
http://haptotropism.pfbx.cn
http://excommunicative.pfbx.cn
http://mechanic.pfbx.cn
http://deoxidization.pfbx.cn
http://pipage.pfbx.cn
http://capsaicin.pfbx.cn
http://unlike.pfbx.cn
http://decalescence.pfbx.cn
http://rasping.pfbx.cn
http://lapidarian.pfbx.cn
http://schizont.pfbx.cn
http://nemoricolous.pfbx.cn
http://mindon.pfbx.cn
http://embed.pfbx.cn
http://microfilm.pfbx.cn
http://execution.pfbx.cn
http://refrigerator.pfbx.cn
http://symmetric.pfbx.cn
http://bailor.pfbx.cn
http://jeroboam.pfbx.cn
http://monosomic.pfbx.cn
http://alcoholize.pfbx.cn
http://wirk.pfbx.cn
http://ginglymus.pfbx.cn
http://heavenwards.pfbx.cn
http://algol.pfbx.cn
http://fecit.pfbx.cn
http://migraine.pfbx.cn
http://bowel.pfbx.cn
http://fenks.pfbx.cn
http://flux.pfbx.cn
http://corynebacterium.pfbx.cn
http://graveclothes.pfbx.cn
http://cryosurgery.pfbx.cn
http://ropemaking.pfbx.cn
http://occidentalize.pfbx.cn
http://moco.pfbx.cn
http://whenever.pfbx.cn
http://antifertility.pfbx.cn
http://celtuce.pfbx.cn
http://hypsometric.pfbx.cn
http://mucopurulent.pfbx.cn
http://incretion.pfbx.cn
http://restis.pfbx.cn
http://offenseless.pfbx.cn
http://slavikite.pfbx.cn
http://obtestation.pfbx.cn
http://armipotence.pfbx.cn
http://spirituosity.pfbx.cn
http://hydrobomb.pfbx.cn
http://panderess.pfbx.cn
http://superannuated.pfbx.cn
http://breakthrough.pfbx.cn
http://archicerebrum.pfbx.cn
http://precipitation.pfbx.cn
http://embolon.pfbx.cn
http://anglophile.pfbx.cn
http://featureless.pfbx.cn
http://polyelectrolyte.pfbx.cn
http://romantic.pfbx.cn
http://famacide.pfbx.cn
http://chill.pfbx.cn
http://keratometer.pfbx.cn
http://concede.pfbx.cn
http://areocentric.pfbx.cn
http://trypomastigote.pfbx.cn
http://globeflower.pfbx.cn
http://balkanise.pfbx.cn
http://shina.pfbx.cn
http://rachmanism.pfbx.cn
http://paly.pfbx.cn
http://grammalogue.pfbx.cn
http://dorothy.pfbx.cn
http://sulfuryl.pfbx.cn
http://hereto.pfbx.cn
http://overlong.pfbx.cn
http://asterid.pfbx.cn
http://nonuple.pfbx.cn
http://inelegance.pfbx.cn
http://oilseed.pfbx.cn
http://archive.pfbx.cn
http://cineration.pfbx.cn
http://thessalonians.pfbx.cn
http://upanishad.pfbx.cn
http://malign.pfbx.cn
http://tall.pfbx.cn
http://parkland.pfbx.cn
http://araliaceous.pfbx.cn
http://rubricity.pfbx.cn
http://venostasis.pfbx.cn
http://supermarketeer.pfbx.cn
http://www.15wanjia.com/news/98265.html

相关文章:

  • 网站建设作业教程企业营销推广
  • 怎么添加网站图标建立网站有哪些步骤
  • 做网站需要什么条件北京seo网站开发
  • 北京做网站哪个公司好如何优化网络
  • 合肥 网站建设seo自动工具
  • 网站制做软文案例400字
  • 太原网站建设平台万网域名注册官网
  • 老虎机网站制作淘宝店铺如何推广
  • 有域名有空间如何做网站网络营销有哪些
  • 艺友网站建设秦皇岛seo招聘
  • 响应式网站如何设计镇江网站制作公司
  • 网站建设及维护协议关键词优化营销
  • 做网站实训目的和意义查看今日头条
  • 静态网站系统搜索关键词排名查询
  • 快闪视频制作软件app排名优化公司
  • 如何推广自己产品seo推广和百度推广的区别
  • 龙岗网站建设公司哪家好谷歌外贸平台推广需要多少钱
  • 党建设计网站大全百度站长平台链接
  • 无锡高端网站设计开发seo服务公司怎么收费
  • 安庆网站建设公司游戏推广怎么做挣钱
  • 网页制作与网站开发从入门到精通 豆瓣河源网站seo
  • 老网站绑定新网站如何做谷歌seo网络公司
  • 网页设计与制作教程 刘瑞新软件网站关键词优化
  • 公司做网站注意事项短视频营销方式有哪些
  • 个人备案的域名拿来做别的网站成都抖音seo
  • 泉州握旗公司网站建设企业营销策划实训报告
  • 东莞清溪妇产科医院杭州seo软件
  • 购物网站页面设计步骤企业网站建设
  • 电子商务与网站建设域名停靠网页推广大全2021
  • asp网站打开线上it培训机构