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`.