远程开发状态检查

远程开发时从进程、HTTP、浏览器、数据四个层面检查服务状态的方法。

#type / synthesis #status / evergreen #tech / dev #tech / ops

[!info] related notes

远程开发状态检查

远程开发时,服务跑在远端、浏览器在本地,排查问题需要从多个层面分别验证。把”状态”分成四类看,比盲目查日志更高效。

第一层:进程状态

服务有没有跑起来。

Docker Compose 管理的服务

docker compose ps
docker compose logs -f api
docker compose logs -f web
docker compose logs -f ai-service

直接运行的服务

ss -lntp
ss -lntp | grep 8080

ss -lntp 列出所有正在监听的 TCP 端口,比 netstat 更快。

tmux 窗口

如果服务跑在 tmux 窗口里,直接切过去看输出:

tmux select-window -t dev

第二层:HTTP 状态

服务起来了,但能不能正常响应。

健康检查接口

后端最好有 /health 端点:

curl http://localhost:8080/health
curl http://localhost:8000/health

云原生开发中,health check 是基础工程能力。没有的话建议加上。

前端页面

curl -I http://localhost:5173

只看响应头,确认返回 200。

API 接口

curl http://localhost:8080/api/users
curl -X POST http://localhost:8080/api/auth/login \
  -H "Content-Type: application/json" \
  -d '{"email":"test@example.com","password":"123456"}'

第三层:浏览器状态

SSH 端口转发建立后,本地浏览器打开 http://localhost:5173,用 DevTools 检查:

检查项位置
Network 请求是否成功DevTools → Network
Console 有没有报错DevTools → Console
SSE / WebSocket 是否持续连接DevTools → Network(WS 标签)
接口状态码DevTools → Network → 点击请求
前端环境变量是否正确Console 打印或 Network 请求 URL
Cookie / Token 是否正确DevTools → Application → Cookies

第四层:数据状态

服务正常但数据有问题。

PostgreSQL

psql "$DATABASE_URL"

Redis / Valkey

redis-cli -u "$REDIS_URL"

对象存储

通常通过后端接口测试,不建议前端直接拿 secret 测。

排查顺序

遇到问题时按从外到内的顺序排查:

浏览器报错?
  → 看 Network 和 Console
    → 请求发出去了吗?
      → 没发出去:前端代码 / 环境变量问题
      → 发出去了但报错:
        → 4xx:请求参数 / 认证问题
        → 5xx:后端服务问题
          → 看 docker compose logs
          → curl 直接测后端接口
          → 检查数据库连接
        → 连接失败:
          → SSH 隧道断了?重连
          → 后端没起来?看进程状态
          → 端口错了?ss -lntp 确认

健康检查端点建议

每个服务都暴露一个简单的 health 端点:

# Python / FastAPI
@app.get("/health")
def health():
    return {"status": "ok"}
// Go
func healthHandler(w http.ResponseWriter, r *http.Request) {
    w.Write([]byte(`{"status":"ok"}`))
}
// Node.js / Express
app.get('/health', (req, res) => {
    res.json({ status: 'ok' });
});

Docker Compose 中可以配置 healthcheck 自动检测:

services:
  api:
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/health"]
      interval: 30s
      timeout: 5s
      retries: 3
创建于 2026/7/6 更新于 2026/7/15