Announcement

👇Official Account👇

Welcome to join the group & private message

Article first/tail QR code

Skip to content

Lesson 5.4: 分布式追踪

学习目标

  • 理解 Trace 和 Span 的概念
  • 集成 OpenTelemetry

1. 核心概念

Service A (API Gateway)

    ├── Span: POST /api/order
    │   ├── Context Propagation (Trace-ID, Span-ID)
    │   │
    │   ├── Service B (Order Service)
    │   │   ├── Span: Validate Order
    │   │   ├── Span: Create Order (DB)
    │   │   └── Span: Publish Event (Kafka)
    │   │
    │   └── Service C (Payment Service)
    │       ├── Span: Process Payment
    │       └── Span: Update Balance

    └── Response

2. OpenTelemetry 集成

go
// 初始化 OTel
func initTracer() {
    exporter, _ := otlptracehttp.New(context.Background())
    tp := sdktrace.NewTracerProvider(
        sdktrace.WithBatcher(exporter),
        sdktrace.WithResource(resource.NewWithAttributes(
            semconv.SchemaURL,
            semconv.ServiceName("user-service"),
        )),
    )
    otel.SetTracerProvider(tp)
}

推荐阅读

上次更新于: