Enhance observability and error handling in NATS integration. Introduce comprehensive OpenTelemetry support with environment-based sampling and semantic attributes for tracing and metrics. Implement an advisory dead-letter queue (DLQ) handler for managing message delivery failures. Update NATS consumer to utilize structured logging and improve error handling strategies. Refactor configuration files for OpenTelemetry collector in both development and production environments, ensuring robust telemetry integration. Enhance documentation to reflect new features and best practices for observability.

This commit is contained in:
windyboy
2025-11-18 11:47:35 +08:00
parent 5d05237283
commit 7f44b5389d
31 changed files with 2546 additions and 476 deletions
+12 -3
View File
@@ -18,12 +18,21 @@
- **Generated code**: Never edit `/pkg/di/wire_gen.go` or other generated files
- **Linting**: `golangci-lint run ./...` required; fix all issues before PR
## Testing Guidelines
## Testing & Architecture
- **Unit tests**: Ginkgo BDD style next to implementation (`*_test.go`); declarative descriptions
- **Integration**: Testcontainers in `test/integration`; spin up NATS/TimescaleDB
- **Coverage**: Run `make coverage` before merging; address regressions
## Architecture
- **Structure**: Clean Architecture - `domain` (business logic), `app` (use cases), `adapter` (I/O), `infra` (framework deps)
- **Entry point**: `cmd/main`
- **Config**: `configs/config.<env>.toml`; secrets via `CAATSM_*` env vars
## Cursor Rules (.cursor/rules/do.mdc)
- **Expertise**: Go, microservices, Clean Architecture, test-driven development
- **Architecture**: Clean Architecture with domain-driven design, interface-driven development
- **Project Structure**: cmd/, internal/, pkg/, api/, configs/, test/ layout
- **Best Practices**: Short focused functions, explicit error handling, context propagation, goroutine safety
- **Security**: Input validation, secure defaults, retries/backoff, circuit breakers
- **Testing**: Table-driven unit tests, mock interfaces, separate fast/slow tests
- **Observability**: Production-ready OpenTelemetry with environment-based sampling, comprehensive resource attributes, semantic span conventions, and dual telemetry (OTEL + Prometheus)
- **Performance**: Benchmarks, minimize allocations, profile before optimization
- **Tooling**: Go modules, linting, CI automation