二、业务监控方案
2.1、UMP业务监控
2.2、PFinder业务监控

告警规则配置:

二、统一日志
2.1、日志格式
|业务域|业务子域|业务场景|渠道来源|商家编码|青龙业主号或事业部编码|密度|结果(Y/N)|结果码|结果码描述|结果子码|结果子码描述|商家单号|订单号|运单号
2.2、举个例子
成功:|订单域|销售出|下单|50|ECP|EBU|1|Y|200|success|200|success|T20240704000086|ESL1230989|JDV002323失败:|订单域|退供出|下单|70|ECP|EBU|1|N|4007|fail|3-01-11020|可销售库存不足|T20240704000086||
三、编码实践
3.1、log4j文件配置
<property name="patternLayout">%d{yyyy-MM-dd HH:mm:ss.SSS}-%X{PFTID}-%-5p - [%t] %c -%m%n</property><Appenders>里添加RollingRandomAccessFile
<RollingRandomAccessFile name="businessFile" fileName="${log_path}/eclp-biz-eclp-isv-business.log"filePattern="${log_path}/eclp-biz-eclp-isv-business-%i.log"><PatternLayout charset="UTF-8" pattern="${patternLayout}"/><Policies><SizeBasedTriggeringPolicy size="1GB"/></Policies><DefaultRolloverStrategy max="5"/></RollingRandomAccessFile>
<AsyncLogger name="BusinessLogger" level="INFO" additivity="false" includeLocation="false"><AppenderRef ref="businessFile"/></AsyncLogger>
3.2、业务日志打印
/*** 业务日志*/private static final Logger blogger = LoggerFactory.getLogger("BusinessLogger");
blogger.info("|订单域|销售出|下单|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}",order.getSourceChannel(), order.getShopNo(), order.getDepartmentNo(), 1,result, code, message, subCode, subMessage,order.getIsvUUID(), context.getPin(), soNo);业务逻辑埋点打印业务日志
protected void doProcess(ProcessorContext processorContext) throws Exception {OrderContext context=buildOrderContext(processorContext);try {String soNo = isvSoReceiveService.transportOrder(context);processorContext.setAttachment(IsvProcessorConstant.PRCS_RTN_ORD_TRANSPORT_SO_NO, soNo);processorContext.setAttachment(IsvProcessorConstant.PRCS_RTN_SO_IS_REPEAT_ORDER, context.isRepeatOrder());processorContext.setAttachment(IsvProcessorConstant.PRCS_RTN_ORD_CREATE_SUCC_MSG, context.getCache(CachedKeyConstants.ORDER_CREATE_SUCCESS_ATTACH_MSG, String.class));processorContext.setBizNo1(soNo);} catch (Exception e) {printBusinessLog(context, e);throw e;} finally {fillLogContext(context, processorContext);}printBusinessLog(context, null);}
protected void printBusinessLog(OrderContext context, Exception e) {String result = "Y";String code = "200";String message = "success";String subCode = "200";String subMessage = "success";String soNo = "";Order order = context.getOrder();if (e == null) {soNo = order.getSoNo();} else {result = "N";if (e instanceof JdlOpenException) {JdlOpenException jdlOpenException = (JdlOpenException) e;code = jdlOpenException.getCode();message = jdlOpenException.getMessage();subCode = jdlOpenException.getSubCode();subMessage = jdlOpenException.getSubMsg();} else if (e instanceof SafJosException) {SafJosException safJosException = (SafJosException) e;code = "4001";message = safJosException.getMessage();subCode = safJosException.getCode();subMessage = safJosException.getZhMsg();} else {code = "4002";message = e.getMessage();subCode = "";subMessage = "";}}blogger.info("|订单域|销售出|下单|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}|{}",order.getSourceChannel(), order.getShopNo(), order.getDepartmentNo(), 1,result, code, message, subCode, subMessage,order.getIsvUUID(), context.getPin(), soNo);}
3.3、日志文件
4.1、监控项
4.2、监控大盘
5.1、成功率告警
6.1、商家搬仓




6.8、揽收时间校验失败

扫一扫,加入技术交流群

