soul网关-11-monitor插件

本文介绍了Soul网关的Monitor插件,用于监控自身运行状态,包括JVM信息、请求延迟和metrics。通过Aspect记录请求日志,展示了在普通Spring Boot项目中接入Actuator和Prometheus的步骤。Monitor插件利用counter、gauge等metrics统计接口,Prometheus负责拉取和展示这些指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前几篇笔记学习了soul网关的一些插件,今天来学习一下soul网关的monitor插件,它可以监控自身运行状态(JVM相关),请求的响应迟延,QPS、TPS等相关metrics。

首先看一下关于monitor插件的架构图

在这里插入图片描述

在架构图中出现了一些不太熟悉的东西,比如PrometheusMetrics。先来学习一下这两个概念。

使用Aspect记录日志

在日常的项目中,如果想在日志里面记录一下请求的具体参数、请求的耗时等,一般使用的方式是Aspect。

我们就以soul-example-http为例,看下怎么使用Aspect来记录/order/**接口的耗时

  • 1.确保pom.xml里面有以下两个依赖
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjtools</artifactId>
        </dependency>
  • 2.创建一个CostTimeAspect,记录日志获取OrderController里面每个接口的耗时,具体代码如下:
import lombok.extern.slf4j.Slf4j;
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.springframework.stereotype.Component;

@Component
@Slf4j
@Aspect
public class CostTimeAspect {

    @Around("execution(* org.dromara.soul.examples.http.controller.OrderController.*(..))")
    public Object handleOrderMethod(ProceedingJoinPoint proceedingJoinPoint) throws Throwable {
        long startTime = System.currentTimeMillis();
        Object res = proceedingJoinPoint.proceed();
        long timeCost = System.currentTimeMillis() - startTime;

        log.info("method: {}, cost: {}ms",
                proceedingJoinPoint.getSignature(), timeCost);
        return res;
    }
}
  • 3.启动soul-example-http服务,在浏览器里面调用http://127.0.0.1:8188/order/findById?id=5,可以得到正常返回

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值