转载请联系元天地公众号。监控一直是一个可以讨论很久的话题。除了系统监控,还有一个经常被忽视的。今天我们就来说说这个容易被忽视的业务监控。监控什么?作为开发人员,不仅仅是开发功能。对于你所负责的产品或模块,你需要对其有足够的了解,需要时刻关注它。你需要有初恋的感觉。.以电商最常见的下单功能为例,我想知道下单的成功率、平均下单耗时、有多少次因为库存不足而失败等。信息。有了这些业务指标信息,您将能够了解您负责的产品的当前状态,以及您需要进行哪些改进。至于监控哪些指标,就得看你的业务了。目的很明确,就是知道业务的状态,在特定的时间触发告警。实现方式是基于数据埋点的方式来记录数据,记录到本地磁盘文件,然后通过统一的日志采集程序进行采集存储,显示统计和告警。之所以基于埋点实现,是因为需要知道每个业务接口的执行结果,是成功还是失败,失败的原因是什么。我们为每个异常都定义了一个业务代码,根据业务代码就可以知道异常的原因。如果通过写日志的方式输出数据,记得将业务日志的数据文件分开,不要和系统日志一起输出,否则收集分析困难。可以和logback单独配置一个appender,我这里只输出我埋的业务数据,Json格式。<编码器>%m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}${LOG_HOME_PATH_BIZ}/${APP_NAME}.%d{yyyy-MM-dd}.log7ACCEPTDENY日志文件内容:{"biz":"confirm","bizCode":500,"domain":"storeOrder","bizId":"86081301","execTime":3,"count":"1","storeId":"1","userId":"740942"}{"biz":"确认","bizCode":500,"domain":"storeOrder","bizId":"86081301","errorMessage":"/byzero","execTime":14,"count":"1","storeId":"1","userId":"740942"}Annotation嵌入点BizLogannotations用于业务监控嵌入点。里面的具体配置字段说明如下:domain:域,比如order,paybiz:business,比如createOrder,cancelOrderbizId:业务ID,比如orderIdaddition:扩展信息addition可以配置多个additionFields获取数据你想埋葬。数据可以从请求参数中获取,也可以从对应的参数中获取。比如订单创建成功后,会返回订单ID。那么bizId就是从response参数中获取代码埋点。在某些场景下(支付回调、JOB任务等),通过注解来埋点并不是很好。我们可以使用代码埋点的方式来实现。我们使用阿里云的日志服务进行日志收集。直接配置logtail即可完成采集工作。界面操作非常方便。指标显示埋点统计显示指标报警数据采集到原始数据图表,你想关注哪些指标,什么时候报警,变得非常简单。例如某分钟内订单频繁失败,可以配置告警失败次数>N触发告警。当您收到警报后,您会立即排查订单失败的原因。作者简介:尹继焕,单纯的技术爱好者,?、《Spring Cloud微服务 入门 实战与进阶》的作者,公众号猩猩世界的创始人。