springboot + javassist 日志收集器

DataXplorer是一个非常有价值的工具,它的核心任务是解决分布式系统中日志收集和分析的挑战。该工具的设计理念基于"数据"和"探索",旨在提供一种高度可定制且不侵入应用代码的方式来实现对日志数据的采集和分析。

DataXplorer基于Java技术,借助javassistSpring框架的集成,能够在不干扰应用程序正常运行的前提下,捕获和记录关键的日志信息,特别是Web请求。这使得它成为了一种非常灵活和可扩展的框架,能够适应各种复杂的系统架构和业务需求。

这个工具的出现解决了多个服务之间缺乏一致性日志收集方法的问题,摒弃了传统AOP方法的限制。它的优点在于其即插即用的特性,不需要对现有项目代码进行任何修改,从而降低了集成和维护的复杂性。

此外,DataXplorer还支持将收集到的日志数据发送至data-xplorer-server,进行高级的数据处理和持久化。这一特性为日志数据的集中化分析和用户行为建模提供了便利, 有助于实现更深入的业务洞察和决策支持。综合而言,DataXplorer在分布式系统中的日志管理方面提供了一种先进且高度可定制的解决方案,为数据驱动的决策提供了强大支持。

Dashboard

由于本人是前端小白,只做了一个简单的页面,提供了几个简单的报表, 启动项目后访问 http://ip:9090/admin/api/index

用户名密码都是 DataXplorer

Dashboard

原理

Standard - javayh-logger-agent

源码编译

git clone https://github.com/yanghaiji/DataXplorer.git

mvn clean package install

Agent 配置

  • 将上一步骤编译好的jdata-xplorer-agent-1.0-SNAPSHOT.jar放在指定的位置,如\usr\local\agent
  • 在启动脚本上加入-javaagent:\usr\local\agent\data-xplorer-agent-1.0-SNAPSHOT.jar的命令参数

日志

收集方式

自动收集

进行agent的配置进行自动的日志收集

22:17:05.317 [nioEventLoopGroup-3-3] INFO com.javayh.agent.server.handler.AgentServerHandler - 客户端地址: /127.0.0.1:60163
22:17:05.317 [nioEventLoopGroup-3-3] INFO com.javayh.agent.server.handler.AgentServerHandler - 客户端发送消息是: {"actionTime":7596,"appName":"agent-example","body":"sss=sss","createBy":"javayh-agent","createTime":123,"ip":"0:0:0:0:0:0:0:1","method":"GET","sourceType":0,"traceId":"b4d071fb-54c2-40f8-b025-f4362232f7d6","type":1,"url":"/agent/example/test/agent"}

手动埋点

通过使用LoggerReceived进行自定义的埋点

LoggerReceived.received("test自定义埋点", 1, "haiji", null);
22:17:05.316 [nioEventLoopGroup-3-3] INFO com.javayh.agent.server.handler.AgentServerHandler - 客户端地址: /127.0.0.1:60163
22:17:05.317 [nioEventLoopGroup-3-3] INFO com.javayh.agent.server.handler.AgentServerHandler - 客户端发送消息是: {"appName":"agent-example","body":"test自定义埋点","createBy":"haiji","createTime":123,"query":"test自定义埋点","sourceType":0,"traceId":"b4d071fb-54c2-40f8-b025-f4362232f7d6","type":1}

日志格式

目前只收集了一些基本信息,大家可以在LoggerCollector进行扩展,丰富自己的日志格式

{
    "actionTime": 23,
    "appName": "agent-example",
    "body": "",
    "createBy": "javayh-agent",
    "createTime": null,
    "ip": "0:0:0:0:0:0:0:1",
    "method": "GET",
    "traceId": "bd861b19-242a-4846-838f-62519fd180b4",
    "type": 1,
    "url": "/agent/example/test/agent"
}
2023-08-19 [http-nio-8080-exec-2] INFO  o.s.web.servlet.DispatcherServlet - Completed initialization in 1 ms
2023-08-19 [http-nio-8080-exec-2] INFO  c.j.a.example.web.ExampleController - ewohefo
2023-08-19 [http-nio-8080-exec-2] INFO  c.j.a.c.i.AgentLogInterception - 埋点日志 : {"actionTime":23,"appName":"agent-example","body":"","createBy":"javayh-agent","createTime":null,"ip":"0:0:0:0:0:0:0:1","method":"GET","traceId":"bd861b19-242a-4846-838f-62519fd180b4","type":1,"url":"/agent/example/test/agent"}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小杨同学~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值