Bỏ qua

Observability - Next Steps để có data

✅ Đã hoàn thành

  1. ✅ ClickHouse connection string đã được fix
  2. ✅ Query Service đang chạy
  3. ✅ OTEL Collector đang chạy
  4. ✅ Databases đã tồn tại (signoz_traces, signoz_metrics, signoz_logs)

⚠️ Vấn đề hiện tại

ClickHouse chưa có bảng - Query Service sẽ tự động tạo bảng khi:

  • Có request đầu tiên đến Query Service API
  • Hoặc khi có data đầu tiên được gửi từ services

🚀 Flow tiếp theo

Bước 1: Trigger Query Service để tạo bảng

Query Service sẽ tự động tạo bảng khi có request. Có 2 cách:

  1. Mở browser: http://localhost:3301
  2. Đăng nhập hoặc tạo account (nếu lần đầu)
  3. Vào bất kỳ section nào (Traces, Metrics, Logs)
  4. Query Service sẽ tự động tạo bảng khi xử lý request đầu tiên

Cách 2: Gọi Query Service API trực tiếp

# Thử các endpoint này để trigger table creation:
curl http://localhost:8083/api/v1/services
curl http://localhost:8083/api/v1/dashboards
curl http://localhost:8083/api/v1/query_range

Bước 2: QUAN TRỌNG - Start Services

Services KHÔNG chạy trong Docker. Bạn cần start chúng bằng NX:

# Terminal 1: Start tất cả services
yarn dev

# Hoặc start từng service:
yarn dev:gateway      # API Gateway (port 3000)
yarn dev:booking      # Booking Service (port 3003)

Kiểm tra services đang chạy:

# Kiểm tra ports
lsof -i :3000  # API Gateway
lsof -i :3003  # Booking Service

Bước 3: Kiểm tra Services có gửi data

Khi start services, bạn nên thấy trong logs:

✅ OpenTelemetry initialized for service: api-gateway
   OTLP Endpoint: http://localhost:4318

Nếu không thấy → Kiểm tra environment variables:

# Trong .env hoặc .env.development
OTEL_EXPORTER_OTLP_ENDPOINT=http://localhost:4318

Bước 4: Tạo Traffic

# Test API Gateway
curl http://localhost:3000/health

# Gửi nhiều requests để có data
for i in {1..10}; do
  curl http://localhost:3000/health
  sleep 1
done

Bước 5: Kiểm tra bảng đã được tạo

Sau khi có request đến Query Service hoặc Signoz UI:

# Kiểm tra bảng trong signoz_traces
docker exec football-booking-backend-boilerplate-clickhouse-1 \
  clickhouse-client --password clickhouse123 \
  --query "SHOW TABLES FROM signoz_traces"

# Nếu thấy các bảng như:
# - distributed_signoz_index_v3
# - distributed_signoz_spans_v3
# → ✅ Bảng đã được tạo!

Bước 6: Kiểm tra trong Signoz UI

  1. Mở http://localhost:3301
  2. Vào Traces → Chọn "Last 15 minutes"
  3. Đợi 30-60 giây sau khi tạo traffic
  4. Bạn nên thấy traces!

🔍 Troubleshooting

Nếu vẫn không có bảng sau khi truy cập UI:

  1. Kiểm tra Query Service logs:
docker logs --tail 50 football-booking-backend-boilerplate-signoz-query-service-1 | grep -i "error\|table\|clickhouse"
  1. Kiểm tra ClickHouse connection:
docker exec football-booking-backend-boilerplate-clickhouse-1 \
  clickhouse-client --password clickhouse123 \
  --query "SELECT 1"
  1. Restart Query Service:
docker compose -f docker-compose.dev.yml restart signoz-query-service
sleep 60

Nếu services không gửi data:

  1. Kiểm tra services có chạy không:
lsof -i :3000
lsof -i :3003
  1. Kiểm tra OTEL Collector có nhận data không:
docker logs --tail 50 football-booking-backend-boilerplate-signoz-otel-collector-1 | grep -i "received\|exported"
  1. Kiểm tra network connectivity:
# Từ máy local, test kết nối đến collector
curl -v http://localhost:4318/v1/traces -X POST

📋 Checklist

Trước khi kiểm tra Signoz:

  • [ ] Signoz services đang chạy (docker ps | grep signoz)
  • [ ] Đã truy cập Signoz UI (http://localhost:3301) để trigger table creation
  • [ ] Services đang chạy (yarn dev hoặc nx serve)
  • [ ] Services có logs "OpenTelemetry initialized"
  • [ ] Đã tạo traffic (gửi requests đến services)
  • [ ] Đã đợi 30-60 giây sau khi tạo traffic
  • [ ] ClickHouse có bảng (check bằng SHOW TABLES)

🎯 Tóm tắt

Vấn đề chính:

  • ClickHouse chưa có bảng → Query Service sẽ tự tạo khi có request đầu tiên
  • Services chưa chạy → Không có data để gửi

Giải pháp:

  1. ✅ Truy cập Signoz UI để trigger table creation
  2. ⚠️ Start services bằng yarn dev (QUAN TRỌNG!)
  3. ✅ Tạo traffic
  4. ✅ Kiểm tra Signoz UI

📚 Tài liệu tham khảo

  • docs/OBSERVABILITY-FIX-GUIDE.md - Hướng dẫn fix chi tiết
  • docs/OBSERVABILITY-VIETNAMESE.md - FAQ tiếng Việt
  • docs/OBSERVABILITY-TROUBLESHOOTING.md - Troubleshooting guide