java埋点数据库架构_微服务业务监控和行为分析怎么做?试试日志埋点

java埋点数据库架构_微服务业务监控和⾏为分析怎么做?试压延加工
试⽇志埋点
⼀、说明
互联⽹公司⼀般都会有专门的数据团队对公司的⼀些业务指标负责;为了拿到这些基本的业务指标,⼀般也要⼯程团队去配合做⼀些数据采集⼯作,于是埋点诞⽣了。
埋点的⽅式有很多种,本⽂主要介绍 ⽇志埋点 这种⽅式以及实现思路和案例。
⽇志埋点 就是通过程序打印 log ⽇志的⽅式进⾏业务/⾏为数据的记录
⼆、总体架构
通过 ⽇志埋点 来实现业务监控和⾏为分析主要需要以下4个步骤
1. 数据⽣成(埋点)
2. 数据收集
3. 数据解析(结构化)
4. 数据落盘
5. 数据使⽤(展⽰/分析)
三、⽅案说明
3.1. 数据⽣成
⽇志数据的⽣成直接使⽤ Logback 等⽇志框架就可以了,可以⾃⼰封装公共⽅法、aop、注解等⽅式来⽣成指定的埋点⽇志
但是为了便于后⾯的数据解析,⽇志数据需要规范先⾏
1. 所有的埋点⽇志必需约定好统⼀的格式,例如:{时间}|{来源}|{对象id}|{类型}|{对象属性(以&分割)}按上⾯的格式⽣成的⽇志为:
2019-11-07 10:32:01|api-gateway|1|request-寻路网
statistics|ip=171.221.203.106&browser=CHROME&operatingSystem=WINDOWS_10
2. 避免埋点的⽇志⽂件和系统本⾝输出的⽇志混淆埋点的⽇志输出的⽬录、⽂件等需要和应⽤本⾝的
⽇志分离,通过 Logback 的配置
就能实现
埋点案例
⽣成⽇志
⽹关埋点⽤户请求
3.2. 数据收集
关于⽇志数据的收集可选择的中间件⽐较多,除了图中的 FileBeat 之外还有 Flume、Fluentd、rsyslog 等;需要每台服务器都部署⼀个
收集中间件。
每台服务器部署⼀个就⾏了,就算⼀台服务器中启了多个微服务也是可以⼀齐收集
PS:⽇志收集后⾯的 消息队列 并不是必需的可以去掉,但是增加 消息队列 后有以下两个优点
1. 削峰填⾕:减轻后⾯⽇志解析的压⼒
2. 数据共享:⽇志数据除了提供给⽇志系统之外,可以增加消费端的同时提供给其他地⽅使⽤,如流计算等
3.3. 数据解析
使⽤ Logstash 的grok表达式解析⽇志数据并结构化,以上⾯的⽇志数据为例
2019-11-07 10:32:01|api-gateway|1|request-
statistics|ip=171.221.203.106&browser=CHROME&operatingSystem=WINDOWS_10家用食品搅拌机
结构化后的⽇志数据为:
{    timestamp: '2019-11-07 10:32:01',    appName: 'api-gateway',    resouceid: '1',    type: 'request-statistics',    ip: '171.221.203.106',    browser: 'CHROME
导电布双面胶3.4. 数据落盘
通过 Logstash 能⾃动创建 Elasticsearch 索引并以天为单位分⽚
可以通过索引模板来指定每个字段的类型和分词器等属性
3.5. 数据使⽤
⽇志数据落盘到 Elasticsearch 后,就可以通过聚合查询等⽅式实时显⽰监控数据或者分析⽇志数据
开关柜无线测温装置
监控案例单片机解码
四、总结
⽇志埋点 只是其中⼀种埋点⼿段⽽已,优点是系统⽆⼊侵且灵活;⽇志收集、解析、落盘等都可以灵活搭配选择不同的中间件,并且不需要修改源系统的代码;并且可以⽅便对接其他分析平台(例如: ⼤数据平台)
PS:业务监控是否可以不做⽇志埋点,直接查询业务的数据库呢?(不建议这样做)
1. 使⽤⽇志埋点能实现监控数据与业务数据分离,监控平台不会影响或增加业务数据库的压⼒
2. 使⽤⽇志埋点能⽅便实现实时业务数据预警举个栗⼦:⽇志收集后⾯添加流计算中间件,计算某个时间窗⼝内优惠卷⽇志的数量或者
⾦额⼤于某个阀值,则发出预警

本文发布于:2024-09-25 06:19:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/4/247459.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   业务   监控   增加
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议