Announcement

👇Official Account👇

Welcome to join the group & private message

Article first/tail QR code

Skip to content

Lesson 5.1: 可观测性基础

学习目标

  • 理解可观测性的三大支柱
  • 知道什么时候用什么工具

1. 三大支柱

支柱数据特征工具
日志 (Logs)离散事件ELK, Loki, Devslog
指标 (Metrics)聚合数据Prometheus, Grafana
链路追踪 (Traces)请求生命周期Jaeger, OpenTelemetry

三者的关系

用户请求

[Trace: request-123]
    ├── Span: HTTP GET /api/users
    │   ├── Log: "query executed in 15ms"
    │   └── Metric: http_request_duration_ms{method="GET"} 15
    ├── Span: DB query
    │   ├── Log: "rows returned: 42"
    │   └── Metric: db_query_count{query="users"} +1
    └── Span: Cache lookup

2. Go 中的可观测性

go
// OpenTelemetry SDK(统一标准)
import (
    "go.opentelemetry.io/otel"
    "go.opentelemetry.io/otel/trace"
)

tracer := otel.Tracer("user-service")

func GetUser(ctx context.Context, id string) (*User, error) {
    ctx, span := tracer.Start(ctx, "GetUser")
    defer span.End()

    span.SetAttributes(attribute.String("user.id", id))
    // ...业务逻辑
}

推荐阅读

上次更新于: