Skip to content

Debugging

This guide covers debugging techniques and tools for TradeX services.

Terminal window
# Install Delve
go install github.com/go-delve/delve/cmd/dlv@latest
# Debug service
dlv debug ./cmd/marketdata/main.go
# Attach to running process
dlv attach <pid>
logger.Info("Processing order",
zap.String("order_id", orderID),
zap.String("symbol", symbol),
zap.Float64("price", price),
)
Terminal window
# Run with debugger
node --inspect-brk index.ts
# Or with Bun
bun --inspect index.ts
{
"type": "node",
"request": "launch",
"name": "Debug Service",
"runtimeExecutable": "bun",
"runtimeArgs": ["run", "dev"],
"console": "integratedTerminal"
}
Terminal window
# Run with debugger
python -m pdb -m uvicorn app.main:app
# Or use debugpy
python -m debugpy --listen 5678 -m uvicorn app.main:app

View traces in your observability platform:

import { trace } from '@opentelemetry/api';
const tracer = trace.getTracer('my-service');
const span = tracer.startSpan('process-order');
// ... code ...
span.end();

All services use structured logging:

logger.info('Order processed', {
orderId: order.id,
symbol: order.symbol,
price: order.price
});

View logs in centralized logging system or:

Terminal window
# View service logs
docker logs tradex-marketdata-service-dev
# Follow logs
docker logs -f tradex-marketdata-service-dev
  1. Check port availability
  2. Verify environment variables
  3. Check database connectivity
  4. Review service logs
  1. Check metrics (Prometheus)
  2. Review slow queries
  3. Check Kafka lag
  4. Monitor resource usage