This commit is contained in:
lingxiao865
2026-02-10 08:54:10 +08:00
parent b230d23173
commit e394f2b51f
27 changed files with 345 additions and 146 deletions

View File

@@ -0,0 +1,22 @@
package com.example.demo001.config;
import io.opentelemetry.api.OpenTelemetry;
import io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.stereotype.Component;
@Component
class InstallOpenTelemetryAppender implements InitializingBean {
private final OpenTelemetry openTelemetry;
InstallOpenTelemetryAppender(OpenTelemetry openTelemetry) {
this.openTelemetry = openTelemetry;
}
@Override
public void afterPropertiesSet() {
OpenTelemetryAppender.install(this.openTelemetry);
}
}

View File

@@ -0,0 +1,37 @@
package com.example.demo001.config;
import io.micrometer.tracing.TraceContext;
import io.micrometer.tracing.Tracer;
import jakarta.annotation.Nullable;
import org.springframework.stereotype.Component;
import org.springframework.web.server.ServerWebExchange;
import org.springframework.web.server.WebFilter;
import org.springframework.web.server.WebFilterChain;
import reactor.core.publisher.Mono;
@Component
class TraceIdFilter implements WebFilter {
private final Tracer tracer;
TraceIdFilter(Tracer tracer) {
this.tracer = tracer;
}
@Override
public Mono<Void> filter(ServerWebExchange exchange, WebFilterChain chain) {
String traceId = getTraceId();
if (traceId != null) {
exchange.getRequest().mutate()
.header("X-Trace-Id", traceId)
.build();
}
return chain.filter(exchange);
}
private @Nullable String getTraceId() {
TraceContext context = this.tracer.currentTraceContext().context();
return context != null ? context.traceId() : null;
}
}

View File

@@ -9,3 +9,23 @@ oauth2:
client-id: oidc-client
client-secret: secret
management:
otlp:
metrics:
export:
url: http://192.168.1.14:9090/api/v1/otlp/v1/metrics #Prometheus otlp协议 http地址
step: 30s
opentelemetry:
tracing:
export:
otlp:
endpoint: http://192.168.1.14:4317/v1/traces #Jaeger otlp协议 grpc地址
transport: grpc
# endpoint: http://localhost:4318/v1/traces
# transport: http
logging:
export:
otlp:
endpoint: http://192.168.1.14:32664/otlp/v1/logs #Loki otlp协议 grpc地址
# transport: grpc

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml"/>
<appender name="OTEL" class="io.opentelemetry.instrumentation.logback.appender.v1_0.OpenTelemetryAppender">
</appender>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
<appender-ref ref="OTEL"/>
</root>
</configuration>