Class TraceAspect
java.lang.Object
io.github.xezzon.zeroweb.common.otlp.TraceAspect
此切面用于通过 OpenTelemetry 为服务方法自动添加分布式追踪。
它拦截所有被 Spring @Service 注解的类中的方法,
并为每个方法创建一个新的 Span,记录方法的执行信息,包括命名空间、类名和方法名。
异常发生时,Span 会记录异常信息,并在方法执行结束时(无论成功或失败)关闭 Span。
- Author:
- xezzon
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiontraceServiceMethods(org.aspectj.lang.ProceedingJoinPoint pjp) 拦截所有被 @Service 注解的类中的方法, 并为这些方法的执行添加 OpenTelemetry 追踪。
-
Constructor Details
-
TraceAspect
public TraceAspect()
-
-
Method Details
-
traceServiceMethods
拦截所有被 @Service 注解的类中的方法, 并为这些方法的执行添加 OpenTelemetry 追踪。
每个被追踪的方法将创建一个新的 Span。Span 的名称由类名和方法名组合而成, 并设置
code.namespace和code.function属性。 如果方法执行成功,Span 状态设置为StatusCode.OK。 如果方法执行抛出异常,异常信息会被记录到 Span 中,然后异常会被重新抛出。 无论方法执行结果如何,Span 都会在方法执行结束时关闭。- Parameters:
pjp- 封装了被拦截方法的执行点信息,通过它可以调用目标方法。- Returns:
- 目标方法的执行结果。
- Throws:
Throwable- 如果目标方法抛出任何异常,此异常会被重新抛出。
-