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.

prompt · Architecture · intermediate

Tiếng Việt

Xây dựng gRPC Server Unary và Stream Interceptors: OpenTelemetry distributed tracing, JWT claims validation và token bucket.

Nội dung có thể tái sử dụng

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