All Projects → RadianceL → smile-monitor-starter

RadianceL / smile-monitor-starter

Licence: other
Microservice system monitoring

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to smile-monitor-starter

Swoft
🚀 PHP Microservice Full Coroutine Framework
Stars: ✭ 5,420 (+10961.22%)
Mutual labels:  spring-cloud, springboot
Koatty
Koa2 + Typescript = Koatty. Use Typescript's decorator implement IOC and AOP.
Stars: ✭ 67 (+36.73%)
Mutual labels:  spring-cloud, springboot
Spring Cloud Examples
Spring Cloud 学习案例,服务发现、服务治理、链路追踪、服务监控等
Stars: ✭ 5,829 (+11795.92%)
Mutual labels:  spring-cloud, springboot
Jeecg Boot
「企业级低代码平台」前后端分离架构SpringBoot 2.x,SpringCloud,Ant Design&Vue,Mybatis-plus,Shiro,JWT。强大的代码生成器让前后端代码一键生成,无需写任何代码! 引领新的开发模式OnlineCoding->代码生成->手工MERGE,帮助Java项目解决70%重复工作,让开发更关注业务,既能快速提高效率,帮助公司节省成本,同时又不失灵活性。
Stars: ✭ 26,432 (+53842.86%)
Mutual labels:  spring-cloud, springboot
Java Apollo
关于自己的一些学习文档和学习心得都放在这里啦!!!
Stars: ✭ 140 (+185.71%)
Mutual labels:  spring-cloud, springboot
Api Boot
“ ApiBoot”是为接口服务而生的,基于“ SpringBoot”完成扩展和自动配置,内部封装了一系列的开箱即用Starters。
Stars: ✭ 460 (+838.78%)
Mutual labels:  spring-cloud, springboot
Blog demos
CSDN博客专家程序员欣宸的github,这里有四百多篇原创文章的详细分类和汇总,以及对应的源码,内容涉及Java、Docker、Kubernetes、DevOPS等方面
Stars: ✭ 1,030 (+2002.04%)
Mutual labels:  spring-cloud, springboot
Java Spring Cloud
Distributed tracing for Spring Boot, Cloud and other Spring projects
Stars: ✭ 326 (+565.31%)
Mutual labels:  spring-cloud, springboot
Xc Spring Cloud Alibaba
spring cloud alibaba(2.2.1最新版)+nacos+dubbo+gateWay+sentinel+rocketmq+(pgsql/mysql8.0的json支持)+ignite集成可用于docker分布式框架+分布式自动化任务+mybatis多数据源+seate+ shardingSphere分布式分库事务解决方案
Stars: ✭ 131 (+167.35%)
Mutual labels:  spring-cloud, springboot
Spring Cloud Flycloud
🔥🔥🔥FlyClould 微服务实战项目框架,在该框架中,包括了用 Spring Cloud 构建微服务的一系列基本组件和框架,对于后台服务框架的搭建有很大的参考价值,大家可以参考甚至稍加修改可以直接应用于自己的实际的项目开发中,该项目没有采用Maven进行项目构建,Maven通过xml进行依赖管理,导致整个配置文件太过臃肿,另外灵活性也不是很强,所以我采用Gradle进行项目构建和依赖管理,在FlyTour项目中我们见证了Gradle的强大,通过简单的一些配置就可以轻松的实现组件化的功能。该项目共有11个Module工程。其中10个位微服务工程,这10个微服务工程构成了一个完整的微服务系统,微服务系统包含了8个基础服务,提供了一整套微服务治理功能,他们分别是配置中心module_c…
Stars: ✭ 1,514 (+2989.8%)
Mutual labels:  spring-cloud, springboot
Springall
循序渐进,学习Spring Boot、Spring Boot & Shiro、Spring Batch、Spring Cloud、Spring Cloud Alibaba、Spring Security & Spring Security OAuth2,博客Spring系列源码:https://mrbird.cc
Stars: ✭ 22,375 (+45563.27%)
Mutual labels:  spring-cloud, springboot
robert
基于SpringCloud的企业级微服务多租户系统、多语言的脚手架, 代码组件化、高内聚低耦合,代码简介,注释丰富容易上手,该项目包括用于开发分布式应用程序服务的必要组件,支持多应用程序访问,并使开发人员可以轻松地使用Spring Cloud编程模型来开发分布式应用程序服务。
Stars: ✭ 45 (-8.16%)
Mutual labels:  spring-cloud, springboot
Sika Code
开源改变世界,让世界没有难写的代码
Stars: ✭ 376 (+667.35%)
Mutual labels:  spring-cloud, springboot
Springbootdemo
🍃SpringBoot系列Demo;SpringBoot、MyBatis、Redis、MySql、Kafka、RocketMQ
Stars: ✭ 500 (+920.41%)
Mutual labels:  spring-cloud, springboot
Lamp Cloud
lamp-cloud 基于Jdk11 + SpringCloud + SpringBoot的微服务快速开发平台,其中的可配置的SaaS功能尤其闪耀, 具备RBAC功能、网关统一鉴权、Xss防跨站攻击、自动代码生成、多种存储系统、分布式事务、分布式定时任务等多个模块,支持多业务系统并行开发, 支持多服务并行开发,可以作为后端服务的开发脚手架。代码简洁,注释齐全,架构清晰,非常适合学习和企业作为基础框架使用。
Stars: ✭ 4,125 (+8318.37%)
Mutual labels:  spring-cloud, springboot
Spring Boot Examples
about learning Spring Boot via examples. Spring Boot 教程、技术栈示例代码,快速简单上手教程。
Stars: ✭ 26,812 (+54618.37%)
Mutual labels:  spring-cloud, springboot
Mall
mall项目是一套电商系统,包括前台商城系统及后台管理系统,基于SpringBoot+MyBatis实现,采用Docker容器化部署。 前台商城系统包含首页门户、商品推荐、商品搜索、商品展示、购物车、订单流程、会员中心、客户服务、帮助中心等模块。 后台管理系统包含商品管理、订单管理、会员管理、促销管理、运营管理、内容管理、统计报表、财务管理、权限管理、设置等模块。
Stars: ✭ 54,797 (+111730.61%)
Mutual labels:  spring-cloud, springboot
Jeecg Cloud
基于Spring Boot 2.1.3、 Spring Cloud Greenwich.SR3 & Alibaba、 Shiro、JWT的 JAVA快速开发平台(Jeecg Boot的微服务版本,功能和底层代码,两边保持同步)
Stars: ✭ 205 (+318.37%)
Mutual labels:  spring-cloud, springboot
taotao-cloud-project
微服务开发脚手架,包括大数据模块、微服务模块、前端模块。基于Spring Cloud Alibaba的微服务架构。提供技术框架的基础能力的封装,减少开发工作,只关注业务,包含了工作以来的工作总结和技术沉淀
Stars: ✭ 76 (+55.1%)
Mutual labels:  spring-cloud, springboot
backlog-board
This is Kanban Board connected to Backlog
Stars: ✭ 18 (-63.27%)
Mutual labels:  springboot

smile-boot-starter

Last update: July, 2020 Spring Boot Version 2.3.1.RELEASE

超轻量级微服务基本支持框架

TRACE ID

概念: 微服务架构下,一个请求可能会有多个应用来承载,每个应用又有多个主机来集群部署,假设一次请求出现问题,我们需要跟踪一次请求,如果没有全局统一的一个ID,问题排查起来可能比较困难

smile-boot-starter提供极简模式快速让项目拥有traceId的跟踪能力(一次请求全局拥有一个ID,聚合日志后可以通过该id查询本次请求的全埋点路径报告)

自动集成smile-boot-logger,对日志埋点输出跟踪日志

引入smile-boot-starter后,自动支持traceId,可由前端传入traceId到后端,也可由首个接收到请求的服务自动生成 支持spring cloud feigndubbo, 不侵入代码,引入jar即自动支持

提供全链路traceId支持,前端或者首个被访问的服务生成,之后本次请求全链路通过LocalDataUtils.getTraceId()获取全局traceId

Environment

项目启动自动激活Environment对象,获取当前工程的环境和应用名称,取值{spring.profiles.active} 和 {spring.profiles.name} EventLogger也会依赖这个类输出环境,所以spring 配置中需要这两个配置

public class EnvironmentTemplate {

    public static void main(String[] args){
        // 是否是日常环境
        Environment.getInstance().isDaily();
        // 是否是预发环境
        Environment.getInstance().isStaging();
        // 是否是线上环境
        Environment.getInstance().isProd();
    }
}

QUICK START

两步快速实现:

  1. 引入依赖
<dependency>
	<groupId>com.el</groupId>
	<artifactId>smile-boot-starter</artifactId>
	<version>${smile-boot-starter.last-version}</version>
</dependency>
  1. application.yml配置
spring:
  profiles:
    # 配置运行环境 可选DAILY|STAGING|PROD,与application.yml多环境配置不冲突
    # 如果环境配置不是DAILY|STAGING|PROD或有其他环境,可以在使用new Environment(applicationName, environment);来映射环境信息
    active: STAGING
  application:
    # 应用名称
    name: trace-test
  smile-boot:
    trace-logger:
      # 日志路径配置,两种配置方式: 例如fatjar位置在/root/admin/runtime/trace-test
      # absolute - 取绝对路径,absolute: /root/admin/runtime/trace-test/log
      # relative - 取项目运行的相对路径,relative: log -> /root/admin/runtime/trace-test/log
      log-path: relative:log
      # 日志文件名 event -> /root/admin/runtime/trace-test/log/event.log
      log-file-name: event
      # 2020-07-12 00:33:32 - msg
      pattern: "%d{yyyy-MM-dd HH:mm:ss} %msg%n"
  1. 对要埋点的方法添加注解
@Slf4j
@RestController
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class SmsSenderController {

    private final TraceIdServiceProvider traceIdServiceProvider;
   
    
    @GetMapping("/test/api")
    @EventTrace(event = "测试", loggerType = LoggerType.JSON)
    public String test() {
        log.info(LocalDataUtils.getTraceId());
        SmileLocalUtils.setIsSucess(true);
        return traceIdServiceProvider.test();
    }

}

即可获取到日志,默认情况下,日志打在spring boot jar目录下的event.log

FORMAT:
2020-07-12 00:30:16 - TRACE LOG - 
traceId [20200712003016-b20bc50af8824d988d025a5a17124dd8], 
appName [trace-test], 
env [STAGING], 
ip [115.220.204.114], 
event [test - /provider/test/api], 
method [com.landscape.user.repository.TraceIdServiceProvider.test()], 
success [true], 
costTime [4], 
parameter [without parameter], 
response ["success 20200712003016-b20bc50af8824d988d025a5a17124dd8"], 
features [{LOGGER_IS_SUCCESS=true}]

JSON:
2020-07-12 00:30:16 - {
    "appName":"trace-test",
    "costTime":4,
    "env":"STAGING",
    "event":"测试",
    "features":{
        "LOGGER_IS_SUCCESS":"true"
    },
    "ip":"115.220.204.114",
    "method":"com.landscape.user.repository.TraceIdServiceProvider.test()",
    "parameter":"without parameter",
    "result":"\"success 20200712003332-419cdb0d285e433daac7bebbfb88fca3\"",
    "success":true,
    "traceId":"20200712003332-419cdb0d285e433daac7bebbfb88fca3"
}

同时,traceId会返回给前端,放入header中。

  1. EventLogger 事件日志 对某些需要埋点的重要节点,可以使用事件日志来记录。
/**
 * since 2020/1/4
 *
 * @author eddie
 */
@Slf4j
@RestController
@RequirePermissions
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class TestConfigController {

    @RequestMapping("/get")
    @EventTrace(event = "测试", loggerType = LoggerType.FORMAT)
    public String get() {
        SmileEventLogger.info("测试");
        return "SmileLocalUtils.getTraceId();";
    }
}

输出:

2020-12-15 00:21:48 INFO  - 20201215002148-2706c6d56ffe4197a1e5c58d666596f7 - [com.el.smile.logger.logger.SmileEventLogger.info] line [30]: 测试

TODO 需求定义:

2020-06-30

  • 日志参数可配置
  • 日志文件位置及滚动策略

2020-07-25

  • bug修复: 对当前请求设置一次success将覆盖当前应用所有日志
  • trace日志中增加rpcId
  • 增加业务日志

日志聚合可以使用ELK,或者Loki
ELK比较重,上手有难度,但功能齐全
Loki最近新出的,好多人在推,我没有尝试过,看介绍感觉还可以,可以尝试

技术支持

项目个人维护,有使用问题,或者想共同开发都可以issues里留问题或者微信,周末会看

更新记录

2020-07-11 --------- 0.0.1-SNAPSHOT

  1. 日志输出可配置
  2. 获取公网IP
  3. 增加日志类型控制 FORMAT | JSON

PS:最近更新了Mac 10.16(BIG SUR)系统,各种问题,又懒得退回,就慢点搞吧

主要依赖

  • spring boot自动装配
  • alibaba fastjson
  • lombok
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].