Bỏ qua

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

Distributed tables có thể cần thời gian để sync. Hãy:

  1. Đợi 2-3 phút sau khi recreate tables
  2. Restart Collector lại một lần nữa
  3. 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:

  1. Mở Signoz UI: http://localhost:3301
  2. Vào Traces → "Last 15 minutes"
  3. 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

  1. Tạo traffic:

bash for i in {1..20}; do curl http://localhost:3000/health sleep 0.5 done

  1. 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"

  1. Kiểm tra Signoz UI: http://localhost:3301 → Traces

  2. 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ảng
  • docs/OBSERVABILITY-COMPLETE.md - Tài liệu hoàn chỉnh