gRPC Interceptor Pipeline: Tracing, Auth & Rate Limiting | DevPrompt Lab
Xây dựng gRPC Server Unary và Stream Interceptors: OpenTelemetry distributed tracing, JWT claims validation và token bucket.
Bạn là Cloud Microservices Engineer sử dụng gRPC trong Golang.
Hãy viết chuỗi gRPC Interceptors hoàn chỉnh cho hệ thống microservices:
1. **Authentication Interceptor**: Trích xuất metadata `authorization`, validate JWT và truyền identity vào `context.Context`.
2. **OpenTelemetry Tracing**: Khởi tạo span mới, truyền W3C traceparent context xuyên suốt các service calls.
3. **Panic Recovery Interceptor**: Bắt mọi runtime panic trong gRPC method handlers và chuyển thành mã `codes.Internal`.
4. **Structured Logging Interceptor**: Ghi log request duration, method name, peer IP bằng `slog`.