Observability - Giải pháp cuối cùng
🎯 Tình trạng hiện tại
Đã hoàn thành:
- ✅ ClickHouse tables đã được tạo (local tables)
- ✅ Services đang gửi data đến Collector
- ✅ Collector đang nhận data
Vấn đề còn lại:
- ⚠️ Distributed tables có thể có vấn đề với single-node ClickHouse
- ⚠️ Collector vẫn báo lỗi về missing columns (có thể do cache)
🔧 Giải pháp tạm thời
Option 1: Đợi và kiểm tra lại (Recommended)
Distributed tables có thể cần thời gian để sync. Hãy:
- Đợi 2-3 phút sau khi recreate tables
- Restart Collector lại một lần nữa
- Tạo traffic và kiểm tra xem data có được lưu không (ngay cả khi có lỗi)
# Tạo traffic
curl http://localhost:3000/health
# Kiểm tra data có được lưu không
docker exec football-booking-backend-boilerplate-clickhouse-1 \
clickhouse-client --password clickhouse123 \
--query "SELECT count() FROM signoz_traces.signoz_index_v3"
Nếu count > 0 → Data đã được lưu vào local tables! Lỗi có thể chỉ là warning, data vẫn được ghi.
Option 2: Sử dụng local tables trực tiếp (Workaround)
Nếu distributed tables vẫn có vấn đề, có thể cấu hình Collector để ghi trực tiếp vào local tables (cần modify config).
Option 3: Kiểm tra trong Signoz UI
Ngay cả khi có lỗi trong logs, data có thể vẫn được lưu vào local tables và Query Service có thể đọc được:
- Mở Signoz UI: http://localhost:3301
- Vào Traces → "Last 15 minutes"
- Nếu thấy data → ✅ Hoạt động! (Lỗi chỉ là warning)
📊 Verify data đã được lưu
# Kiểm tra local tables (không phải distributed)
docker exec football-booking-backend-boilerplate-clickhouse-1 \
clickhouse-client --password clickhouse123 \
--query "SELECT count() FROM signoz_traces.signoz_index_v3"
# Nếu > 0 → Data đã được lưu!
🎯 Next Steps
- Tạo traffic:
bash
for i in {1..20}; do
curl http://localhost:3000/health
sleep 0.5
done
- Kiểm tra data trong ClickHouse:
bash
docker exec football-booking-backend-boilerplate-clickhouse-1 \
clickhouse-client --password clickhouse123 \
--query "SELECT count() FROM signoz_traces.signoz_index_v3"
-
Kiểm tra Signoz UI: http://localhost:3301 → Traces
-
Nếu thấy data trong UI → ✅ THÀNH CÔNG!
⚠️ Lưu ý
- Lỗi trong Collector logs có thể chỉ là warning
- Data có thể vẫn được lưu vào local tables
- Query Service có thể đọc từ local tables
- Quan trọng nhất: Kiểm tra xem có data trong Signoz UI không!
📚 Tài liệu
scripts/create-signoz-tables-manual.sh- Script tạo bảngdocs/OBSERVABILITY-COMPLETE.md- Tài liệu hoàn chỉnh